0
      A     B     C 

1     M     2233  1R
2     M     1122  1 
3     B     3311  0R
4     S     3333  0 
5     M     0033  1R

从下表中,我想计算 C 列中包含“R”的每一行,但前提是 A 列包含“M”并且 B 列的最后两个字符是“33”。所以我想得到的输出是2(C1+C5)。请注意,B 列的格式为文本。

到目前为止,我已经尝试将 COUNTIFS(A1:A5,"=M",B1:B5,MID(B1:B5,3,2)="33",C3:C5,"=*R") 作为数组公式没有运气。

我知道一个问题是 MID(B1:B5,3,2)="33" 没有被视为数组公式,但我不知道如何解决它。

有接盘侠吗?

4

3 回答 3

2

你可以使用这个我认为:

=COUNTIFS(C1:C5,"*R*",A1:A5,"M",B1:B5,"*33")

使用通配符*来指示值可以不同的地方。

于 2013-09-19T20:36:41.220 回答
1

这里至关重要的是 B 列的格式 - 通配符不适用于数值,因此如果 B 列是数字,则只能使用 COUNTIFS,即这个公式:

=COUNTIFS(A1:A5,"M",B1:B5,"??33",C1:C5,"*R")

如果这不起作用,因为 B 列是数字,然后像这样尝试 SUMPRODUCT

=SUMPRODUCT((A1:A5="M")*(RIGHT(B1:B5,2)="33")*(RIGHT(C1:C5)="R"))

这并没有明确确保 B 列有 4 个字符,最后两个字符为 33(就像 COUNTIFS 一样),只是最后两个字符是 33 - 如果您需要检查是否有 4 个字符,请使用此版本:

=SUMPRODUCT((A1:A5="M")*(RIGHT(B1:B5,2)="33")*(RIGHT(C1:C5)="R")*(LEN(B1:B5)=4))

于 2013-09-19T21:00:18.793 回答
1

以下给出了您所追求的结果:

  =COUNTIFS(A1:A5,"=M",B1:B5,"=*33",C1:C5,"=*R*")

这将计算从 1 到 5 的行,其中 A 为“M”,B 以“33”结尾,C 包含“R”。请注意,仅计算 C3:C5 对您的原始公式没有帮助。

于 2013-09-19T20:39:19.610 回答