我一直在寻找网上的每个地方,每个人似乎只是建议像SUMPRODUCT
这样的替代方案,但是,我想使用通配符。通配符在COUNTIF
中正常工作,但在我见过的其他替代方法中没有。
如何搜索列中的每个第n个单元格并返回找到确切子字符串的次数(即COUNTIF(range, string)
,其中 范围 每第n个单元格和 字符串 可以是"*somestring"
,"some string*"
,"*somestring*"
或{{ 1}})
答案 0 :(得分:2)
是的,SUMPRODUCT
是一个选项 - 比如你希望每个第5个单元格从A2开始(即A2,A7,A12等),你可以使用这个公式计算那些单元格中“文本”的实例(可能在其他文本中)
=SUMPRODUCT((MOD(ROW(A2:A1000)-ROW(A2),5)=0)+0,ISNUMBER(SEARCH("text",A2:A1000))+0)
将5更改为您想要的 n - 如果您使用此语法,它始终以范围中的第一个单元格开头。
ISNUMBER(SEARCH
部分为您提供相当于“通配符”的搜索(此处不能使用实际的通配符)
更新
如果你想要等同于“text *”,那么使用LEFT功能,例如
=SUMPRODUCT((MOD(ROW(A2:A1000)-ROW(A2),5)=0)+0,(LEFT(A2:A1000,LEN("text"))="text")+0)
和RIGHT可用于相当于“* text”。
如果你想要相当于“t?xt”的话会比较棘手。第一个公式中的SEARCH函数将允许您搜索“t?xt”,但这将是其他文本,因此如果您希望整个内容为“t?xt”,您可以添加另一个检查,例如
=SUMPRODUCT((MOD(ROW(A2:A1000)-ROW(A2),5)=0)+0,ISNUMBER(SEARCH("t?xt",A2:A1000))+0,(LEN(A2:A1000)=4)+0)
那只会计算包含“text”,“toxt”,“t5xt”等但不包含“text2”的单元格