我碰到过这种结合 sumif 和 subtotal 公式的解决方案,但我不明白它。
结合 SUMIF() 和 SUBTOTAL() 实现动态小计
有人能解释一下这组函数是如何协同工作的,以便其他没有经验的用户(比如我)能够理解吗?这个解决方案显然解决了这个问题,但如果没有更多的见解,很难适应不同的数据集。(我宁愿不发布我自己的具体问题,因为如果我这样做了,下一个有这个疑问的人也会有同样的问题!)
谢谢!
答案1
=SUMPRODUCT(SUBTOTAL(109,OFFSET(AW5,ROW(AW5:AW552)-ROW(AW5),,1)),--(AV5:AV552=AV558))
Sumproduct
- 将一个数组与另一个数组相乘,然后将它们相加。
Subtotal
- 给出对某个范围进行特定操作的小计 -以下是论点.109 = 总和
Offset
- 采用引用并使用偏移量来引用与其偏移的单元格。
row
- 给出参考的行号
这种--
表示法本质上强制 [true] 和 [false] 返回数组的 [1] 和 [0]。当你对 true 或 false 进行运算时,它们会变成数字,所以在这里你要先进行运算,然后反转符号。你可以改为*1
所以,如果我没有看错的话:
- Row-Row 返回与 AW5 偏移高度为 1 的数字数组
- 检查 AV5:AV552 是否与 AV558 匹配,为 0 和 1 的数组
- 对第一个数组求和并将其与第二个数组相乘。
这有帮助吗?