数组作为Excels COUNTIFS函数中的条件,混合AND和OR

时间:2013-06-18 13:00:25

标签: excel excel-formula

我已经谷歌搜索了一段时间,似乎无法让它工作。我使用Excel 2010并希望在AND和OR运算符的混合上计算行数。

我想做的是这样的事情

COUNTIFS($A:$A,"string1" , $B:$B,"string2" , $C:$C,{"stringA","stringB","stringC"})

这意味着在COUNTIFS函数中混合使用AND和OR运算符。 Col A和col B必须匹配字符串条件,但col C必须仅匹配作为条件给出的数组中的一个值。匹配colA和colB以及col C中的一个数组值。

另一种方法是为数组中的每个值创建一个COUNTIFS函数,如

COUNTIFS($A:$A,"string1" , $B:$B,"string2" , $C:$C,"stringA") + COUNTIFS($A:$A,"string1" , $B:$B,"string2" , $C:$C,"stringB") + COUNTIFS($A:$A,"string1" , $B:$B,"string2" , $C:$C,"stringC")

然而,这是很多重复的代码,这让我感到困扰!逻辑解决方案是将数组作为C列的条件传递。此外,我的数组包含三个以上的值......

当我在Excel中执行此操作时,接受公式并计算几行,但结果是低的。这不是我期待的结果。

那里有任何Excel-Pro可以告诉我这是否可行?它会为我节省很多工作! 谢谢!

2 个答案:

答案 0 :(得分:3)

你可以使用

=SUM(COUNTIFS($A:$A,"string1",$B:$B,"string2",$C:$C,{"stringA","stringB","stringC"}))

你也可以使用与sumproduct相似的数组结构

=SUMPRODUCT(($A:$A="string1")*($B:$B="string2")*($C:$C={"stringA","stringB,"stringC"}))

答案 1 :(得分:1)

嗯,好吧,'或'确实会让事情变得更长。查看related question。我想你可以使用=SUMPRODUCT()但仍然有点长。作为一个数组函数,你必须使用 Ctrl + Shift + Enter

=SUMPRODUCT(($A:$A="string1")+0,($B:$B="string2")+0,((($C:$C="stringA")+($C:$C="stringB")+($C:$C="stringC"))>0)+0)

免责声明:我还没有测试过。