Фильтр с помощью REGEXMATCH на листе Google, чтобы отфильтровать содержащий текст в ячейках - PullRequest
1 голос
/ 08 октября 2019

Сейчас у меня есть эти данные, и я пытаюсь отфильтровать данные, содержащиеся в ячейках C3, C4 и т. Д.

У меня нет проблем с фильтрацией данных регулярного выражения для 1 ячейки, как показано ниже

enter image description here

но я не могу выполнить regexmatch для более чем двух ячеек, как, например, например, кажется, что я не могу создать конвейер между ячейкамитак как я получу ошибку разбора, я попытался добавить в "C3 | C4" тоже.

enter image description here

и

enter image description here

Требуемый вывод, который я хотел получить, как показано ниже, но я мог только жестко закодировать содержащий текст, который не является тем, что я ищу. Я надеюсь, что у меня может быть несколько советов для повторного сопоставления текста в более чем 1 ячейке, чтобы оно могло повторно сопоставить текст в ячейках C3 (Apple) и C4 (Pear) и показать желаемый результат.

enter image description here

Ответы [ 2 ]

1 голос
/ 08 октября 2019

вам нужно использовать TEXTJOIN для динамического списка в столбце C:

=IF(TEXTJOIN( , 1, C3:C)<>"", FILTER(A2:A, REGEXMATCH(LOWER(A2:A), 
 TEXTJOIN("|", 1, LOWER(C3:C)))), "no input")

0

1 голос
/ 08 октября 2019

Вы можете использовать

=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 говорит:

Объединяет текст из нескольких строк и / или массивов с указанным разделителем, разделяющим различные тексты.

Итак, когда вы передаете TRUE какВторой аргумент: вам не нужно беспокоиться, если диапазон содержит пустые ячейки, и регулярное выражение не будет разрушено посторонними |||.

Test:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...