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,您的解决方案非常有效。非常感谢!)