如何计算包含特定文本字符串的表列中的单元格(COUNT.IF不起作用)

时间:2020-03-31 12:46:23

标签: excel

我需要计算一个包含特定文本字符串的表列中有多少个单元格。我正在使用此公式,效果很好:

=COUNT.IF(TB_table_name[col_name];"*string_to_be_found*")

但是我只需要计算过滤的单元格。 我发现可以在Internet上找到解决方案(使用SUMPRODUCT),但只能解决常见问题,不能解决表格问题。

这是我拥有的那种桌子: enter image description here

如您所见,在同一单元格中有很多值(之所以发生是因为它是由MS Forms中的调查自动生成的)。因此,我需要搜索要计数的特定字符串。

使用“ COUNT.IF”,我得到以下结果:

enter image description here

请注意,单元格中的值不是随机的,而是预定义的-当然顺序可能不相同,但可能的术语列表是

请,您能帮我解决这个问题吗?相信我,我尝试了很多事情,但是没有任何效果,而且似乎很容易实现:(

1 个答案:

答案 0 :(得分:2)

诀窍是将您在SUMPRODUCT中发现的一些想法结合起来。

您可能发现this reference(或类似的名称)为这样的公式提供了指导:

=SUMPRODUCT(SUBTOTAL(3,OFFSET(B2:B7,ROW(B2:B7)-MIN(ROW(B2:B7)),,1))*(B2:B7="Quality"))

这样翻译成您的问题空间:

=SUMPRODUCT(SUBTOTAL(3,OFFSET(TB_table_name[col_name],ROW(TB_table_name[col_name])-MIN(ROW(TB_table_name[col_name])),,1))*(TB_table_name[col_name]="*string_to_be_found*"))

如果您不使用通配符搜索,这将非常好用。但这就是您所需要的。因此,在this answer中,它表明SUMPRODUCT中的通配符需要使用--运算符。因此,结果是将两个答案结合在一起,您将得到:

=SUMPRODUCT(SUBTOTAL(3,OFFSET(TB_table_name[col_name],ROW(TB_table_name[col_name])-MIN(ROW(TB_table_name[col_name])),,1))*(--(ISNUMBER(FIND("string_to_be_found",TB_table_name[col_name])))))

请注意,string_to_be_found没有通配符*指定符。 FIND函数解决了这个问题。

相关问题