2013-11-28 42 views
0

我正在寻找一种将单元格中的字符串与带有通配符的字符串数组进行比较的函数。例如,在\my\path\a A1将被\my\path\?\my\*\a查找与通配符匹配的数组的文本的单元格

到目前为止,我使用match函数相匹配的,是他们像

match(A1, {"\my\path\?", "\my\*\a"}, 0} 

可以用吗?为匹配#N/A为不匹配,1:

回答

1
=MATCH({"\my\path\?","\my\*\a"},A1,0) 

输入作为数组式(Ctrl + Shift + Enter键)将返回包含用于阵列中的每个条目的结果的数组。


去哪里从那里取决于什么导致你想要的:

要计算匹配模式的数量(输入作为数组公式):

=SUM(IFERROR(MATCH({"\my\path\?","\my\*\a"},A1,0),0)) 

要检测任何模式匹配,如TRUEFALSE(作为数组公式输入):

=SUM(IFERROR(MATCH({"\my\path\?","\my\*\a"},A1,0),0))>0 
+0

对不起,我不太了解数组公式。你能否详细说明一下?如果在一个单元格中的内容是\ my \ path \ x或\ my \ xx \ a,那么当我在另一个单元格中应用此函数时,它应该产生1 – bxx

+1

使用公式'= SUM(IFERROR(MATCH({“\我的\路径\?“,”\ my \ * \ a“},A1,0),0))'(作为数组公式输入:即按Ctrl-Shift-Enter键完成输入一起,而不仅仅是“输入”)。这将返回公式中匹配'A1'值的模式数。例如,如果'A1' ='\ my \ path \ x'或'\ my \ xx \ a',它会返回'1'。如果'A1' ='\ my \ path \ a'它返回'2',因为该字符串匹配_both_模式。 –

+0

谢谢你。很有帮助。 – bxx

相关问题