现在我有这些数据,我正在尝试过滤出单元格C3,C4等中包含的数据。
我没有问题,可以过滤1个单元格的正则表达式数据,如下所示
但是我不能对两个以上的单元格进行正则表达式匹配,例如,由于无法解析,所以似乎无法在单元格之间进行管道传输,我尝试在“ C3 | C4”中添加”。
和
我想要的想要的输出如下,但是我只能用硬编码来编码不是我想要的文本。我希望我有一些技巧可以对多个单元格中的文本进行正则匹配,以便可以对C3(Apple)和C4(Pear)单元格中的文本进行正则匹配,并显示所需的输出。
答案 0 :(得分:1)
您可以使用
=IF(C3<>"", FILTER(A2:A,REGEXMATCH(A2:A, TEXTJOIN("|", TRUE, C3:C4) )), "no input")
或者,您可以走得更远,使用Apple
字边界和围绕替代方案的分组结构,将Pear
或\b
匹配为整个单词:
=IF(C3<>"", FILTER(A2:A,REGEXMATCH(A2:A, "\b(?:" & TEXTJOIN("|", TRUE, C3:C4) & ")\b")), "no input")
如果您需要使搜索不区分大小写,只需在开始处附加(?i)
:
=IF(C3<>"", FILTER(A2:A,REGEXMATCH(A2:A, "(?i)\b(?:" & TEXTJOIN("|", TRUE, C3:C4) & ")\b")), "no input")
看看TEXTJOIN
documentation怎么说:
将多个字符串和/或数组中的文本组合在一起,并用指定的分隔符分隔不同的文本。
因此,当您将TRUE
作为第二个参数传递时,您不必担心范围是否包含空单元格,并且正则表达式不会被无关的|||
破坏。
测试:
答案 1 :(得分:1)