Как заставить REGEXMATCH искать несколько терминов в диапазоне ячеек, а не в одной ячейке? - PullRequest
0 голосов
/ 03 марта 2019

Работая в листах Google, у меня есть следующая формула:

=if(REGEXMATCH(A1,B1),C1,"")

Идея состоит в том, что если какая-либо часть ячейки A1 содержит текст, указанный в B1, то на выходе будет C1, в противном случае,Ячейка оставлена ​​пустой.

Моя проблема в том, что мне нужно искать A1 не только для текста из B1, но и для ЛЮБЫХ совпадений из диапазона ячеек (скажем, B1: B10), а в случаесовпадение, вернуть соответствующее значение в столбце C. т. е. если он ищет A1 и находит термин из B4, то ему нужно вернуть C4 (а не C1, C2 и т. д.).

Однако

=if(REGEXMATCH(A1,B1:B10),(C1:C10,"") is not correct.

Я пытался VLOOKUP и INDEX & MATCH решить проблему с сопоставлением содержимого столбца B с C, но проблема с этими функциями заключается в том, что они непоиск по всей ячейке для одного значения, они просто пытаются сопоставить всю ячейку.

Второй вопрос: где в (правильной) формуле я бы поставил аргумент (?!) для обозначения без учета регистрапоиск

1 Ответ

0 голосов
/ 03 марта 2019
=ARRAYFORMULA(IF(REGEXMATCH(A1:A, B1:B), C1:C, ))

0

=QUERY(ARRAYFORMULA(IF(REGEXMATCH(A1, B1:B), C1:C, )), "where Col1 is not null")

00

=QUERY(ARRAYFORMULA(IF(REGEXMATCH(LOWER(A1), LOWER(B1:B)), C1:C, )), 
 "where Col1 is not NULL")

f

...