我需要计算一个包含特定文本字符串的表列中有多少个单元格。我正在使用此公式,效果很好:
=COUNT.IF(TB_table_name[col_name];"*string_to_be_found*")
但是我只需要计算过滤的单元格。 我发现可以在Internet上找到解决方案(使用SUMPRODUCT),但只能解决常见问题,不能解决表格问题。
如您所见,在同一单元格中有很多值(之所以发生是因为它是由MS Forms中的调查自动生成的)。因此,我需要搜索要计数的特定字符串。
使用“ COUNT.IF”,我得到以下结果:
请注意,单元格中的值不是随机的,而是预定义的-当然顺序可能不相同,但可能的术语列表是
请,您能帮我解决这个问题吗?相信我,我尝试了很多事情,但是没有任何效果,而且似乎很容易实现:(
答案 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
函数解决了这个问题。