【问题标题】:Excel SUM of SUMIF/SUMIFS with dynamic multiple criteria具有动态多个条件的 SUMIF/SUMIFS 的 Excel 总和
【发布时间】:2018-08-22 06:06:29
【问题描述】:

我需要通过单元格引用传递一个多条件列表(一个常量数组),而不是将其硬输入到我的公式中。
所以,而不是这个:
=SUM(SUMIFS(sum_range,criteria_range,{"red","blue"}))
但我需要使用这个: =SUM(SUMIFS(sum_range,criteria_range,$A1)) 其中 $A1 是 {"red","blue"}

我知道可以使用一系列单元格来传递数组,但我确实需要我的条件来自单个单元格。
似乎通过单元格引用传递一个常量数组只将第一个元素传递给公式(即只有“红色”用作条件),我能找到的所有工作示例(herehere)都是将条件硬输入到公式中。

任何人都幸运吗?

编辑:我应该补充一点,我的数据集包含空白行,因此它不是连续的,一般来说,我正在寻找一种不太复杂的解决方案,该解决方案在大多数情况下都可以工作,并且限制和注意事项尽可能少.

【问题讨论】:

  • 那么你用什么公式有效呢?实际公式不是伪公式。
  • =SUM(SUMIFS(W$12:W$448,$I$12:$I$448,$I474,$J$12:$J$448,$J474,$K$12:$K$448,{"red","blue"})) 是我所在的位置。这适用于非连续数据。
  • 然后更改为 SUMPRODUCT 并用我的公式替换数组即可。

标签: arrays excel sumifs multiple-conditions


【解决方案1】:

将A1中的“数组”改为逗号分隔的列表:

blue,purple

没有引号或{}

将 SUM 更改为 SUMPRODUCT 并将其用作标准:

TRIM(MID(SUBSTITUTE(A1,",",REPT(" ",99)),(ROW(INDEX(AAA:AAA,1):INDEX(AAA:AAA,LEN(A1)-LEN(SUBSTITUTE(A1,",",""))+1))-1)*99+1,99))

$20 应放置在尽可能多的选项中。我只是在这里将它用作占位符,它可以更多没有问题,但不能更少,否则它会跳过更多。


根据您提供的公式。

=SUMPRODUCT(SUMIFS(W$12:W$448,$I$12:$I$448,$I474,$J$12:$J$448,$J474,$K$12:$K$448,TRIM(MID(SUBSTITUTE(A1,",",REPT(" ",99)),(ROW(INDEX(AAA:AAA,1):INDEX(AAA:AAA,LEN(A1)-LEN(SUBSTITUTE(A1,",",""))+1))-1)*99+1,99))))

【讨论】:

  • 哇!我没有看到它来了!这是一个非常聪明的公式(我仍在尝试破译它)。但是,它不适用于非连续数据,这是我的情况。我应该提到,也许...
  • 是的,总是包含所有信息。请编辑您的问题以包含所有要求。
  • @YeO 查看编辑。再次记住将 A1 更改为 Red,Blue 没有引号也没有 {}
  • 好的...确实有效。但是,在您的示例中取出 1 个单元格,例如 G7,它完全关闭:结果为 28。
  • @YeO 查看新编辑。所以结局很重要。现在它只会迭代有单词的次数。
【解决方案2】:

使用包含{"red","blue"} 的单元格A1,然后我设置了一个命名范围Condition,我将=EVALUATE($A1) 分配给了它,现在我可以像这样传递我的条件:
=SUM(SUMIFS(W$12:W$448,$I$12:$I$448,$I474,$J$12:$J$448,$J474,$K$12:$K$448,Condition))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-25
    • 2017-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-29
    相关资源
    最近更新 更多