offset降维打击:对所有列最后一个数字求和
你好,我是刘卓。欢迎来到我的公号,excel函数解析。今天来分享一个多维引用的案例,多维引用的好处就是可以“降维打击”,用高维对低维,就好比游戏中的黄金对白银。
不过你也不用觉得多维引用多么神秘,无非就是增加了容器。比如,平时引用一个区域,相当于把这个区域的数据存放在一个“抽屉”中。
而多维引用,相当于把这些数据分别存放在多个“抽屉”中,多个“抽屉”又存放在一个“柜子”中。简单来说就是容器套容器。当然,这只是我个人的理解,每个人的理解方式不同。
对所有饮料最后一次的采购数量求和

如果让你做,你会怎么做?先自己想一想。有些小伙伴可能会想到用lookup来做。求最后一个数字嘛,这是lookup的强项。公式如下:
=LOOKUP(9^9,B3:B10)+LOOKUP(9^9,C3:C10)+LOOKUP(9^9,D3:D10)+LOOKUP(9^9,E3:E10)
=SUM(N(OFFSET(A2,SUBTOTAL(2,OFFSET(A3:A10,,{1,2,3,4})),{1,2,3,4})))

OFFSET(A3:A10,,{1,2,3,4})这部分用offset把A3:A10分别偏移1,2,3,4列,得到了由B3:B10、C3:C10、D3:D10、E3:E10形成的多维引用,就相当于把这4个区域分别放入4个“抽屉”中,它们相对独立。
SUBTOTAL(2,OFFSET(A3:A10,,{1,2,3,4}))这部分用subtotal分别对多维引用的各个区域计数,也就是对4个“抽屉”存放的数据分别计数,得到的结果为{5,3,6,5}。也就是分别统计B3:B10、C3:C10、D3:D10、E3:E10这4个区域中数字的个数。
subtotal第1参数的2,相当于count,对于这个,相信各位小伙伴都清楚。
=SUM(N(OFFSET(A2,MMULT(COLUMN(A:H)^0,N(B3:E10>0)),{1,2,3,4})))


https://pan.baidu.com/s/1RPdzwbhirzhvebe1nfpVaQ