华丽丽地越过了多维引用的MakeArray(Excel函数集团)
先看看这个:九九乘法表新玩法
里面有个MakeArray的解法,但其实,MakeArray的强大之处还不止于此,比如,人家可以华丽丽地越过多维引用。
比如下图所示,需要对每天记录中的最大值进行求和,传统的多维引用公式有点烧脑……
=SUM(MAXIFS(OFFSET(B1:D1,ROW(1:8),),OFFSET(B1:D1,ROW(1:8),),"<>"))
这里,绝对不可以想当然地使用=SUM(MAX(OFFSET(B1:D1,ROW(1:8),))),想着先用Offset引用出从B1:D1向下偏移1、2、3……8行的每一行数据,再在外面套一个Max,对这每一行进行一个最大值的计算,因为Offset除第一个参数以外,其他四个参数中只要有一个用了Row或Column函数,其结果就是多维引用,绝大部分多维引用无法在一个平面内正常显示,只有通过MaxIfs函数进行处理。
但是,MakeArray就可以!
=SUM(MAKEARRAY(8,1,LAMBDA(r,c,MAX(OFFSET(B1:D1,r,)))))
公式中的Row(1:8)被r代替,而r是Lambda所定义的一个值,用在了MakeArray里,就变成了第一个参数所对应的值。
然后,就没有多维引用了!
Ps,这里Index也可以用:
=SUM(MAKEARRAY(8,1,LAMBDA(r,c,MAX(INDEX(B2:D9,r,)))))