【问题标题】:Use two list of criteria in sumproduct在 sumproduct 中使用两个标准列表
【发布时间】:2015-04-16 19:40:31
【问题描述】:

我想通过使用两个标准列表来分析下表

如果 A 包含列表 1 中的元素并且 B 包含列表 2 中的元素,我想对列 C 求和。我可以考虑使用公式:

=SUMPRODUCT((A:A=列表 1) * (B:B=列表 2) * (C:C))

我的公式得到 2 (a,x,1 + b,y,1),但我想得到 3 (a,x,1 + b,y,1 + a,y,1)。

谁能帮帮我?

【问题讨论】:

    标签: excel excel-formula excel-2010


    【解决方案1】:

    这样的事情应该可以工作:

    =SUM(SUMIFS(C:C,A:A,{"a","b"},B:B,"x"),SUMIFS(C:C,A:A,{"a","b"},B:B,"y"))
    

    您可以编写更紧凑的数组公式,但如果每个列表中只有两个变量,那么这还不错。

    【讨论】:

    • 我应该在我最初的帖子中这样写:我需要一个用于任意数量的变量/标准的通用公式。
    【解决方案2】:

    如果您可以使用数组公式而不是 sumproduct 公式(我发现它们更易于阅读,但在编辑时确实存在输入错误的风险),试试这个:

    =SUM(IF(ISERROR(MATCH(B1:B6,G2:G3,0)),"",(IF(ISERROR(MATCH(A1:A6,F2:F3,0)),"",C1 :C6))))

    这通过创建一个包含 A 列的新数组来工作,其中匹配 List1 的行显示 C 列中的值,不匹配 List1 的行显示“”。然后使用这个新数组创建一个 B 列的新数组,其中与 List2 匹配的行显示我们的“新列 A 数组”中的值(包括 C 列中的值以及一些“”),以及行与 list2 不匹配的显示“”。由于结果是一个数组,因此必须对其求和以提供结束的单一答案。

    由于这是一个数组公式,当您输入它时,您需要按以下方式完成(每次编辑单元格时):

    CNTRL + SHIFT + ENTER

    而不仅仅是

    输入

    请注意,虽然您可以选择索引中的所有列 A / B,但这通常是不可取的,因为(在我的理解中)数组公式将搜索所有列,包括使用范围之外的区域。这会大大降低性能,因此出于您的目的,您可能必须使用其他一种面向未来的方法(例如索引任意大的“A1:A500”,或创建某种形式的间接公式,其中包含对最后一个的搜索)行,其中包含数据)。

    【讨论】:

      【解决方案3】:

      在 C1 中试试这个公式:

      =COUNTIF(F:F,A1)+COUNTIF(G:G,B1)
      

      所有值 = 2 符合您的 AND 标准(在 List1 中 AND 在 List2 中)

      【讨论】:

      • 我看不出这如何帮助解决我的问题:我不想填充 C 列,我想添加列 C 的每个单元格,其中 A 列中的相应值在 List1 中AND 列 B 中的对应值在 List2 中。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-14
      • 1970-01-01
      相关资源
      最近更新 更多