Excel 如何对包含特定文本字符串的表列中的单元格进行计数(count.IF';不起作用)

Excel 如何对包含特定文本字符串的表列中的单元格进行计数(count.IF';不起作用),excel,Excel,我需要计算表列中包含特定文本字符串的单元格数。我使用的是这个公式,效果很好: =COUNT.IF(TB_table_name[col_name];“*string_to_be_found*”) 但我只需要计算过滤过的细胞。 我在互联网上找到了可能的解决方案(使用SUMPRODUCT),但只针对普通单元格,而不是表格列 这就是我的桌子: 正如您所看到的,同一单元格中有许多值(这是因为它是由MS表单中的调查自动生成的)。因此,我需要搜索要计数的特定字符串 使用“COUNT.IF”我得到以下结果:

我需要计算表列中包含特定文本字符串的单元格数。我使用的是这个公式,效果很好:

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

但我只需要计算过滤过的细胞。 我在互联网上找到了可能的解决方案(使用SUMPRODUCT),但只针对普通单元格,而不是表格列

这就是我的桌子:

正如您所看到的,同一单元格中有许多值(这是因为它是由MS表单中的调查自动生成的)。因此,我需要搜索要计数的特定字符串

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

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


拜托,你能帮我弄清楚吗?相信我,我已经尝试了很多东西,但都没有成功,而且似乎很容易实现:(

诀窍是结合使用
SUMPRODUCT
找到的几个想法

您可能发现(或与之类似的一个)为以下公式提供了指导:

=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*"))
这会转化为您的问题空间,如下所示:

=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*"))
如果您没有使用通配符搜索,这将非常好地工作。但这是您需要的。因此,在其中显示
SUMPRODUCT
中的通配符需要使用
-->/code>操作符。因此,结果是将两个答案组合在一起,您将得到:

=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])))))

请注意,
要查找的字符串
没有通配符
*
说明符。这由
查找
函数负责。

Hi@PeterI,您的解决方案非常有效。非常感谢!)