Есть ли способ REGEXMATCH из диапазона ячеек от A1: A1000, например? - PullRequest
1 голос
/ 13 июня 2019

В основном я пытаюсь найти способ поиска по списку фраз и выделить / извлечь или идентифицировать любую фразу или ячейку, содержащую фразу или слово, из отдельного столбца / списка.

Для помещенияв этом контексте у меня есть список "поисковых терминов", которые активировали мои объявления Google, этот список содержит фразы или выражения, которые люди вводили в поисковую систему Google.

У меня также есть список "минус-слов", которые я использовал для блокировки показа объявлений при вводе определенных слов или фраз в Google.Например, если в моем списке "минус-слов" есть слово "питомник", объявление не должно показываться, если кто-то вводит фразу "лучший питомник рядом со мной"

. Затем я поместил оба этих списка вэлектронная таблица Excel в отдельных столбцах, поэтому в одном столбце содержатся поисковые термины, а в другом столбце - минус-слова.

Я хочу выполнить поиск по всем поисковым запросам и выделить ячейку, если есть слово илиФраза в этой ячейке соответствует фразе из списка минус-слов.В приведенном выше примере ячейка, содержащая фразу «лучший питомник рядом со мной», будет выделена или извлечена, поскольку фраза «питомник» находится в списке отрицательных ключевых слов.

REGEXMATCH в листах Google, однако, делает это,Я не знаю, как выбрать несколько выражений, он допускает несколько выражений, но только с помощью, скажем, (A1 | A2 | A3), проблема в том, что у меня более 1000 ячеек, поэтому я хотел бы выбрать способвсе они одновременно, например (A1: A1000)

, вот ссылка на Google Sheet, если возможно, я бы предпочел сделать это в Excel.https://docs.google.com/spreadsheets/d/1yLTswjrpwf2owhX4YxPavUY441WlQsnzv3StoP-ilmc/edit?usp=sharing

Ответы [ 2 ]

1 голос
/ 13 июня 2019
=ARRAYFORMULA(IF(REGEXMATCH(A2:A, TEXTJOIN("|", 1, C:C)), A2:A, ))

0


=ARRAYFORMULA(IFERROR(REGEXEXTRACT(A2:A, TEXTJOIN("|", 1, C:C))))

0


=ARRAYFORMULA(TRIM(TRANSPOSE(QUERY(TRANSPOSE(IF(REGEXMATCH(IFERROR(
 SPLIT(A2:A, " ")), "^"&TEXTJOIN("|^", 1, C:C)), A2:A, )),,999^99))))

0


=ARRAYFORMULA(TRIM(TRANSPOSE(QUERY(TRANSPOSE(IF(REGEXMATCH(IFERROR(
 SPLIT(A2:A, " ")), "^"&TEXTJOIN("$|^", 1, C:C)&"$"), A2:A, )),,999^99))))

0


=ARRAYFORMULA(IF(IF(TRIM(TRANSPOSE(QUERY(TRANSPOSE(IF(REGEXMATCH(IFERROR(
 SPLIT(A2:A, " ")), "^"&TEXTJOIN("$|^", 1, C:C)&"$"), A2:A, )),,999^99)))<>"", 
 TRIM(TRANSPOSE(QUERY(TRANSPOSE(IF(REGEXMATCH(IFERROR(
 SPLIT(A2:A, " ")), "^"&TEXTJOIN("$|^", 1, C:C)&"$"), A2:A, )),,999^99))),
 TRIM(TRANSPOSE(QUERY(TRANSPOSE(IF(REGEXMATCH(A2:A, 
 "^"&TEXTJOIN("$|^", 1, C:C)&"$"), A2:A, )),,999^99))))<>"",
 IF(TRIM(TRANSPOSE(QUERY(TRANSPOSE(IF(REGEXMATCH(IFERROR(
 SPLIT(A2:A, " ")), "^"&TEXTJOIN("$|^", 1, C:C)&"$"), A2:A, )),,999^99)))<>"", 
 TRIM(TRANSPOSE(QUERY(TRANSPOSE(IF(REGEXMATCH(IFERROR(
 SPLIT(A2:A, " ")), "^"&TEXTJOIN("$|^", 1, C:C)&"$"), A2:A, )),,999^99))),
 TRIM(TRANSPOSE(QUERY(TRANSPOSE(IF(REGEXMATCH(A2:A, 
 "^"&TEXTJOIN("$|^", 1, C:C)&"$"), A2:A, )),,999^99)))), 
 TRIM(TRANSPOSE(QUERY(TRANSPOSE(IF(REGEXMATCH(IF(REGEXMATCH(A2:A, "\s"), A2:A, ), 
 TEXTJOiN("|", 1, C:C)), A2:A, )),,999^99)))))

0

0 голосов
/ 17 июля 2019

Существует гораздо более простой способ сделать это.Не переусердствуйте.

Допустим, вы хотите найти совпадение в списке городов.

  1. Поместите список городов в одну вкладку.
  2. Сделайте их в нижнем регистре для облегчения поиска, так как все поисковые термины в нижнем регистре.Вы можете сделать это, добавив новый столбец и используя функцию LOWER.
  3. Вернитесь в свою ячейку со списком поисковых фраз.
  4. В любой пустой ячейке изКстати (в верхнем ряду - хорошее место), введите следующую формулу: ФОРМУЛА СПИСКА ГОРОДОВ: = TEXTJOIN ("|", 1, 'vlookup city'! B $ 2: B $ 477) (если ваша вкладка называется 'vlookup city 'и ваши города находятся в столбце B этой вкладки)

  5. Добавьте новый столбец рядом с вашими условиями поиска или выберите существующий, в который вы хотите поместить "найденное соответствие""info.

  6. В этом новом столбце добавьте эту формулу (если ваши данные начинаются со строки 4 и вы поместили формулу списка городов в ячейку G3 :) = REGEXMATCH (A4, G $ 4)

  7. Заполните формулу до конца списка.Вы можете дважды щелкнуть по маленькому синему квадрату в правом нижнем углу ячейки или переместить и перетащить его до самого конца списка.

Ba-ding!Он будет искать любое из этих названий городов в любом месте поисковой фразы.

Если поисковая фраза содержит хотя бы один соответствующий термин, она вернет «True».

Затем вы можете добавить дополнительные функции в формулу, чтобы она возвращала что-то еще.Например: = IF (REGEXMATCH (A4, G $ 4), «совпадение найдено», «совпадение не найдено»)

Это сверхлегкое решение, которое не слишком сильно замедляет работу листа и легко

введите описание изображения здесь

https://docs.google.com/spreadsheets/d/1XAIDB98r2CGu7hL3ISirErDPNlgT6lVt-TCG0qI1uTE/edit?usp=sharing

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