2

我已经在谷歌上搜索了一段时间,似乎无法让它工作。我使用 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 AND colB AND 上匹配 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 可以告诉我这是否可能?它会为我节省很多工作!谢谢!

4

2 回答 2

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"}))
于 2013-06-18T15:52:15.567 回答
1

嗯,嗯,“或”确实使事情变得更长。请参阅相关问题。我想你可以使用=SUMPRODUCT(),但仍然有点长。但是,作为一个数组函数,您必须使用Ctrl++ ShiftEnter

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

免责声明:我尚未对此进行测试。

于 2013-06-18T13:29:46.527 回答