录入函数:
I3=SUM(VLOOKUP(H3,B3:F8,SEQUENCE(,4,2,1),0))
函数解释:
VLOOKUP 的第一个参数是查找值,即H3单元格中的查找值“张晓婷”;第二个参数是查找范围,即B3:F8;第三个参数是列索引号,用于指定从查找范围中返回哪一列的值;第四个参数是精确匹配或近似匹配的选项,这里使用的是0,表示精确匹配。
SEQUENCE(,4,2,1):SEQUENCE 函数用于生成一个序列数组。在这个例子中,SEQUENCE 函数的参数指定了生成数字2,3,4,5,用于VLOOKUP的第3参数;最后 SUM 函数计算这个行中的所有数值的总和。
录入函数:
I3=SUM((TOCOL(IF(C3:F8>0,B3:B8))=H3)*TOCOL(C3:F8))
函数解释:
这个思路是先把原来的二维成绩表转换成一维表来汇总求和。如果C3:F8中的成绩都大于0,返回学科,并用TOCOL转成一列后等于查询条件,得到一个逻辑值结果是TRUE(在WPS中等同于1),否则是FALSE(等同于0)。
TOCOL(C3:F8),把所有成绩转成一列,与上面的结束相乘,得到满足查询条件的结果,最后用SUM汇总。
录入函数:
=INDEX(BYROW(C3:F8,LAMBDA(X,SUM(X))),MATCH(H3,B3:B8,))
函数解释:
先用BYROW函数计算出每名学生成绩的汇总。
BYROW 是一个WPS新版本动态数组函数,它允许你对一组单元格的每一行应用指定的函数。参数 C3:F8 指定了一个矩形区域,该区域内包含了多行的数据。
LAMBDA 函数在这里定义了一个匿名函数,该函数接受一个参数 X。
在 LAMBDA 函数内部,SUM(X) 对参数 X 执行求和操作。这里的 X 代表了 BYROW 函数遍历 C3:F8 区域时,每一行的内容作为一个整体传递给 LAMBDA 函数。
综上所述,BYROW(C3:F8,LAMBDA(X,SUM(X))) 这个函数的作用是对 C3:F8 区域内的每一行数据分别求和,返回的结果将会是一个与原始数据区域高度相同的新数组,其中每个元素是相应行数据的和。 C3:F8 区域内是四列的数据,那么对于每一行来说,都会计算这四列数据的总和。
最后结合INDEX和MATCH来锁定位置,最后用SUM求和
以上就是全部十种解法,如有新的解决方法,留言继续补充……