具有动态多重条件的SUMIF / SUMIFS的Excel SUM

时间:2018-03-13 20:34:16

标签: arrays excel sumifs multiple-conditions

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

据我所知,人们可以使用一系列细胞来传递一个阵列,但我真的需要我的条件来自一个单元格。
似乎通过单元格引用传递一个常量数组只会将第一个元素传递给公式(即只有“红色”用作条件)以及我能找到的所有工作示例(here或{{3在条件中难以输入条件。

任何人都有运气吗?

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

2 个答案:

答案 0 :(得分:3)

更改"数组"在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应放在可能的最大选择数上。我只是在这里用它作为占位符,它可以更多没有问题但不会更少或者它将跳过更多。

enter image description here

根据您提供的公式。

=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))))

答案 1 :(得分:0)

对于包含{"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))