COUNTIFS基于复杂的标准

时间:2013-09-19 20:30:32

标签: excel excel-formula

      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”没有被视为数组公式,但我对如何解决它感到茫然。

任何参赛者?

3 个答案:

答案 0 :(得分:2)

我认为你可以使用这个:

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

使用通配符*指示值可能不同的位置。

答案 1 :(得分:1)

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

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

这计算从1到5的行,其中A是'M',B以'33'结尾,C包含'R'。请注意,只计算C3:C5,原始公式没有帮助。

答案 2 :(得分: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所做),只是最后2个字符是33 - 如果您需要检查有4个字符使用此版本:

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