我需要计算包含特定文本字符串的表列中有多少个单元格。我正在使用这个公式,它工作得很好:
=COUNT.IF(TB_table_name[col_name];"*string_to_be_found*")
但我只需要计算过滤后的细胞数。我已经在互联网上找到了可能的解决方案(使用SUMPRODUCT),但只适用于普通单元格,而不适用于表格集合。
这是我的表格类型:
正如您所看到的,在同一单元格中有许多值(发生这种情况是因为它是由MS表单中的调查自动生成的)。因此,我需要搜索要计数的特定字符串。
使用"COUNT.IF“我得到的结果是:
请注意,单元格中的值不是随机的,而是预定义的-当然,序列不能相同,但可能的术语列表是相同的。
你能帮我解决这个问题吗?相信我,我已经尝试了很多方法,但都没有效果,这似乎是一件很容易实现的事情:
发布于 2020-03-31 13:54:51
诀窍是将您在使用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
函数处理的。
https://stackoverflow.com/questions/60950911
复制相似问题