代码之家  ›  专栏  ›  技术社区  ›  GiANTOnFire

Excel SUMIFS,如果列a或列b包含指定值,则添加值

  •  2
  • GiANTOnFire  · 技术社区  · 9 年前

    我环顾四周,找不到解决方案,我甚至不知道这是否可能。

    我有两张工作表。我想 Sheet1!G5 显示中的值之和 Sheet2!D:D 哪里 Sheet2!A:A Sheet2!B:B 等于 Sheet1!D5 .

    我知道这有点复杂,就像我说的,我甚至不知道这是否可能,或者 SUMIFS 是要使用的正确公式。

    有关电子表格中的虚拟数据,请参见下图。。 基本上,我希望有人能够搜索有多少台台式机或多少台HP Elitedesk 800 G1(有更多不同型号的台式机、笔记本电脑和显示器等,但我只是在虚拟数据中没有它们……这就是为什么我希望能够搜索这两个字段。

    Sheet 1

    Sheet2

    1 回复  |  直到 9 年前
        1
  •  1
  •   Tom Sharpe    9 年前

    如果我的逻辑是正确的,你应该可以把两个单独的SUMIF加在一起,一个用于A列,另一个用于B列:-

    =SUMIF(Sheet2!A:A,D5,Sheet2!D:D)+SUMIF(Sheet2!B:B,D5,Sheet2!D:D)
    

    看起来,A列和B列中的任何一行都不可能有相同的内容,但如果是这样的话,您可以进行如下更正以避免重复计数:-

    =SUMIF(Sheet2!A:A,D5,Sheet2!D:D)+SUMIF(Sheet2!B:B,D5,Sheet2!D:D)-SUMIFS(Sheet2!D:D,Sheet2!A:A,D5,Sheet2!B:B,D5)
    

    第一个公式可以很容易地修改为使用两个以上的标准列(例如,如果您也想匹配序列号),但第二个公式不能。

    若要基于两列以上的列获得总量,其中一个字符串可以在同一行中出现多次,您需要一个数组公式,如

    =SUM(SIGN((Sheet2!A2:A10=D5)+(Sheet2!B2:B10=D5)+(Sheet2!C2:C10=D5))*Sheet2!D2:D10)
    

    必须输入 Ctrl键 转移 进来