excel中公式“=SUM((LOOKUP(ROW($1:$16),IF($D$27:$D$42"",ROW($1:$16),""),$D$27:$D$42)=G27)*$E$27:$E$42)”是什么意思?

问题描述:

excel中公式“=SUM((LOOKUP(ROW($1:$16),IF($D$27:$D$42"",ROW($1:$16),""),$D$27:$D$42)=G27)*$E$27:$E$42)”是什么意思?

这公式蛮强大,
对D27:D42 等于 G27 的 对应E列 数据求和, 如有,合并单元格认为是同一个
数组公式按 Ctrl+shift +enter 结束

Lookup 的规则: 如果 找不到 ,就找小于等于查找条件的 最大值
=SUM((LOOKUP(ROW($1:$16),IF($D$27:$D$42"",ROW($1:$16),""),$D$27:$D$42)=G27)*$E$27:$E$42)
LOOKUP(ROW($1:$16),IF($D$27:$D$42"",ROW($1:$16),""),$D$27:$D$42)
求值为:
lookup({1,2,3,4,5,6.16},{1,2,3,4,"",6,"",.15,"",16},$D$27:$D$42)
如果 $D$27:$D$42 有空,Lookup会查找 "" 上一个值,假设第5个单元格D31 为空,则查找为4 对应的 值, 就是 D27:D42 的第4个, D30,
如果 $D$27:$D$42 为 A A A A 空格 A. ,
这个公式会返回 A A A A A A .,
作用是把合并单元格 填充为 上一个单元格 内容,
最后
=sum(({"A","A","A","A",.}="A")*E27:E42)
对D27:D42 的等于G27 的单元格求和, 合并单元格 默认等于上方最近单元格的值