【问题标题】:IF ARRAY FormulaIF 数组公式
【发布时间】:2017-02-22 15:09:59
【问题描述】:

我正在尝试使用单独的电子表格查找多部分 IF 语句的 SUM

=SUM(IF(AND([Doc.xlsx]Sheet1!$B$7:$B$348="APPL*", C15=[Doc.xlsx]Sheet1!$C$4:$BG$4),[Doc.xlsx]Sheet1!$I$7:$J$348))

注意:C15 = "A1"

我已经尝试将这个公式分解为这两个独立的部分:

=IF(C15=[Doc.xlsx]Sheet1!$A$4:$BG$4,TRUE)

=IF([Doc.xlsx]Sheet1!$B$7:$B$348 = "APPL*",TRUE)

但是,这些都失败了。

如何使用列标题和行标题等两个条件找到单个输出?

这是我正在使用的图像。我需要使用列标题和行标题对网格中条件满足的所有数字求和。

【问题讨论】:

  • 您的总和区域与标题的列数不同。还要查看 SUMPRODUCT() 它会很好地解决这个问题,但只有总和区域的列数相同。

标签: arrays if-statement excel-formula


【解决方案1】:

根据我的 cmets,必须对输入范围具有统一的输出;与行标题相同的行数和与列标题相同的列数。

然后这将找到两者相交的位置并将相应的相交相加。

启用数组公式后不能使用AND()OR() 函数。分别使用*+ 来完成同样的事情。

比如:

=SUM(IF((A2:A12=B15)*(B1:K1=B16),B2:K12))

作为数组公式,退出编辑模式时需要使用 Ctrl-Shift-Enter 确认,而不是 Enter。如果操作正确,Excel 会在公式周围加上{}

但是你可以用 SUMPRODUCT() 做同样的事情,而不需要 Ctrl-Shift-Enter。

=SUMPRODUCT((A2:A12=B15)*(B1:K1=B16),B2:K12)

SUMPRODUCT 不需要 Ctrl-Shift-Enter 进入,而是正常的进入方法。还是数组类型的公式。


现在到第二部分 IF/SUMPRODUCT 不使用通配符,因此您需要使用 SEARCH(),这将允许使用通配符。

=SUM(IF((ISNUMBER(SEARCH("APPL*",[Doc.xlsx]Sheet1!$B$7:$B$348)))*(C15=[Doc.xlsx]Sheet1!$C$4:$BG$4),[Doc.xlsx]Sheet1!$C$7:$BG$348))

SUMPRODUCT:

=SUMPRODUCT((ISNUMBER(SEARCH("APPL*",[Doc.xlsx]Sheet1!$B$7:$B$348)))*(C15=[Doc.xlsx]Sheet1!$C$4:$BG$4),[Doc.xlsx]Sheet1!$C$7:$BG$348)

【讨论】:

  • 感谢 Scott,这对您有很大帮助。不过,我的通配符也遇到了问题……不幸的是,我的行标题相似但不相同,因此需要通配符。 =SUMPRODUCT(('[Doc.xlsx]Sheet1'!$A$7:$A$348="Appling*")*('[Doc.xlsx]Sheet1'!$B$4:$AM$4=C15),'[ Doc.xlsx]Sheet1'!$B$7:$AM$348)
  • 您如何将此“ISNUMBER(SEARCH(”) 添加到 SUMPRODUCT 公式中?这是我所拥有的,我返回的结果是“0”。=SUMPRODUCT(('[Doc.xlsx]Sheet1'! $A$7:$A$348=(ISNUMBER(SEARCH("Appling*",'[Doc.xlsx]Sheet1'!$A$7:$A$348))))*('[Doc.xlsx]Sheet1'!$ B$4:$AM$4=C15),'[Doc.xlsx]Sheet1'!$B$7:$AM$348)
猜你喜欢
  • 1970-01-01
  • 2021-08-26
  • 2018-02-09
  • 2022-01-24
  • 1970-01-01
  • 2022-01-12
  • 1970-01-01
  • 2015-10-03
  • 1970-01-01
相关资源
最近更新 更多