通常不需要在工作表上寻求帮助,但我认为我的大脑已经因过度思考而坍塌。
试图填充整个列的数组公式,根据来自另一列的条件,对两个其他列进行总和计算。如果这听起来很奇怪,请查看此示例表格。
发票有编号。客户付款有“Into”银行账户,还与之相关联的发票编号,因此我知道哪个付款对应于哪个发票。有时会分批进行付款。我想为每张发票以及单独的帐户总结所有付款。我知道如何使用sumifs来做到这一点。我想要实现的技巧是在第一个单元格中使用一个数组公式来完成此操作。感谢所有的帮助。
通常不需要在工作表上寻求帮助,但我认为我的大脑已经因过度思考而坍塌。
试图填充整个列的数组公式,根据来自另一列的条件,对两个其他列进行总和计算。如果这听起来很奇怪,请查看此示例表格。
发票有编号。客户付款有“Into”银行账户,还与之相关联的发票编号,因此我知道哪个付款对应于哪个发票。有时会分批进行付款。我想为每张发票以及单独的帐户总结所有付款。我知道如何使用sumifs来做到这一点。我想要实现的技巧是在第一个单元格中使用一个数组公式来完成此操作。感谢所有的帮助。
现在,您的SUMIFS
公式可以在MAP
函数中正常工作,如下所示:
MAP
函数在公司发票中的循环中起作用,为每个发票执行一个自定义函数LAMBDA
。您的SUMIFS
公式是这个自定义函数的主体,需要进行一些小的更改才能正常工作:与发票筛选器相关的条件F8
需要替换为来自lambda的发票输入参数,我将其命名为invoice
。
最后但同样重要的是,MAP
函数本身适用于整个发票列,甚至包括空单元格。为了避免这种行为,将列引用包装在ARRAY_CONSTRAIN
函数中,并设置要评估的所需行数和列数。在这种情况下,它是单列,可以使用COUNTA
函数计算出行数,该函数应用于整个发票列。
图像中显示的公式完成了上述所有操作。
我已经添加了一列来合并两个表中需要匹配的条件。
我使用了一个arrayformula来扩展组合条件,然后在另一个arrayformula内部使用了sumif来执行实际上是在arrayformula内部进行的sumifs操作。
表1(油漆估算)
=ARRAYFORMULA(IFERROR(IF(E2:E<>"",E2:E&"First Coat",0),"E"))
=ARRAYFORMULA(IFERROR(SUMIF(Progress!B2:B,T2:T,Progress!G2:G),0))
表2(进度)
=ARRAYFORMULA(A2:A&E2:E)
可以使用SUMIFS返回一个数组,例如在L3中
=SUMIFS(A3:A8,B3:B8,F3:F8,C3:C8,"A")
请注意,通常期望单个条件的地方,我使用了F3:F8,因此公式返回所需的6个值的数组
未经测试,因为我目前正在使用iPad,它似乎不喜欢Google文档....
=SUMIFS($A$3:$A$8,$B$3:$B$8,$F$3:$F$8,$C$3:$C$8,"A")
- Catu