如何在每个第n个单元格中使用Excels COUNTIF并保留通配符function

我一直在找网上的每一个地方,每个人似乎只是build议一个像SUMPRODUCT的替代,但是,我想使用通配符。 通配符在COUNTIF工作正常,但在其他我看到的替代scheme中却不行。

如何search列中的每一个第n个单元格,并返回一个精确的子string被find的次数(即COUNTIF(range, string) ,其中范围每个第n个单元格string可以是"*somestring""some string*""*somestring*""some?string"

是的, SUMPRODUCT是一个选项 – 比如说你想要每一个从A2开始的第5个单元格(即A2,A7,A12等),你可以使用这个公式来计算那些单元格中的“文本”的实例(可能在其他文本中)

=SUMPRODUCT((MOD(ROW(A2:A1000)-ROW(A2),5)=0)+0,ISNUMBER(SEARCH("text",A2:A1000))+0)

将5改为任何你想要的 – 如果你使用这个语法,它总是从第一个单元格开始。

ISNUMBER(SEARCH部分给你相当于一个“通配符”search(你不能在这里使用实际的通配符)

更新

如果你想要相当于“文本*”,那么使用LEFT函数,例如

=SUMPRODUCT((MOD(ROW(A2:A1000)-ROW(A2),5)=0)+0,(LEFT(A2:A1000,LEN("text"))="text")+0)

和RIGHT可以用于相当于“* text”。

如果你想要相当于“txt”,这将是棘手的。 在第一个公式的searchfunction将允许您search“txt”,但这将是其他文本,所以如果你想要整个内容是“txt”,你可以添加另一个检查,例如

=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”