arrays - 如果有多个条件则求和

标签 arrays excel if-statement sum

我正在寻找某种数组公式的总和,但我有点卡住了。

我在单元格 T2:T11 中有一列数据,我想要对其求和。每个单元格在 S2:S11 和 R2:R11 中都有两组针对它们的标准:

范围 R2:T11

  1. a - 1 - 22
  2. a - 2 - 15
  3. a - 3 - 87
  4. a - 4 - 82
  5. a - 5 - 68
  6. b - 1 - 45
  7. b - 2 - 46
  8. b - 3 - 47
  9. b - 4 - 04
  10. b - 5 - 51

现在,如果我只想对所有“b”和“1”求和,例如我会使用 SUMIFS 函数(答案 = 45),但是我想要求和的值可能是倍数,例如“b”和“1、2 和 4”(答案 = 95)。在此示例中,选项“a”和“b”位于单元格 I3:J3 中,选项 1、2、3、4、5 位于单元格 K3:O3 中。然后我得到了 x 与我想要求和的值:

范围 I3:O4

  1. a - b - 1 - 2 - 3 - 4 - 5
  2. ""- x - x - x - ""- x - ""

一旦我理解了原理,这将扩展到涵盖更多标准,并且公式将被向下拖动许多行,其中将有针对不同项目的 x(有时是“a”和“b”,有时是针对所有项目,有时反对任何人等)

我认为我需要某种 SUM(IF(... 函数作为数组,但我迷路了。

我设法让它适用于数字,但不适用于数字和字母在一起:

{=SUM(IF(S2:S11=(IF(K4:O4="x",K3:O3)),T2:T11))}

有谁可以提供建议吗?显然我已经尝试过谷歌搜索答案,但我没有找到它 - 如果这个问题已经在其他地方得到了回答,我深表歉意。

非常感谢

汤姆

最佳答案

您可以使用这个“数组公式”

=SUM(SUMIFS(T2:T11,R2:R11,TRANSPOSE(IF(I4:J4="x",I3:J3)),S2:S11,IF(K4:O4="x",K3:O3)))

使用CTRL+SHIFT+ENTER确认

您需要在其中一个条件上使用 TRANSPOSE,因为一个需要是“列”,一个需要是“行” - 您有两行,因此 TRANSPOSE 将其中一个转换为一个专栏。此版本不允许更多的多条件列,如果您需要可以切换到此版本:

=SUM(IF(ISNUMBER(MATCH(S2:S11,IF(K4:O4="x",K3:O3),0)),IF(ISNUMBER(MATCH(R2:R11,IF( I4:J4="x",I3:J3),0)),T2:T11)))

这更长,但可以扩展到在 Q2:Q11 中使用多标准,例如

关于arrays - 如果有多个条件则求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22837125/

相关文章:

c++ - 在C++中向数组添加索引和指定数字

java - 如何对 jxls 模板中的非连续单元格求和

python - 如何在 python pandas 中显示重复的 ID 和重复的数据

python - 列表理解来自列表中字典的扁平化值

c# - 如何通过比较两个数组来检索不同的字符串值?

javascript - 具有多个条件的 If 子句

python - 如何简化代码以检查 pandas 中的范围

r - r 中具有特定字符值的颜色单元格以导出到 xlsx

vba - 如何在 Excel VBA 中自动按下消息框的确定按钮?

Java:if 语句返回的样式问题?