【问题标题】:Array as criteria in Excels COUNTIFS function, mixing AND and OR [duplicate]数组作为Excels COUNTIFS函数中的条件,混合AND和OR [重复]
【发布时间】:2014-12-19 20:41:10
【问题描述】:

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

【问题讨论】:

  • 请注意,您引用的副本没有正确答案标记为解决方案。这个问题可以。

标签: excel excel-formula


【解决方案1】:

你可以使用

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

【讨论】:

  • 哎呀,我不知道countifs可以接受数组条件。不错 +1
  • 为什么会这样? =) SUM 可以依靠的 COUNTIFS 返回什么?数组?正如我在原始帖子 COUNTIFS 中所写,使用数组作为标准返回值,但它们太低了。您知道 SUM 使用的 COUNTIFS 返回什么吗?谢谢!
  • 它返回一个包含 3 个值的数组 - 一个数组条件与其他两个条件的每个组合
  • 啊,太聪明了!谢谢,我会试试看哪种方法最快。
【解决方案2】:

嗯,嗯,“或”确实会使事情变得更长。请参阅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)

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

【讨论】:

  • 谢谢,有点用。它确实提供了正确的数量,但它比胶带粘性面上的蜗牛慢。一系列带有重复代码的 COUNTIFS 速度要快得多。令我惊讶的是,Excel 缺乏这种混合逻辑运算符和发送数组作为标准的能力。但重要的是它可以解决。我给你正确的答案,但建议其他人改为使用多个 COUNTIFS。干杯杰瑞!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-15
  • 2014-11-23
  • 2016-07-22
  • 2014-07-02
  • 2016-10-30
相关资源
最近更新 更多