Повторное сопоставление в Google Sheet для определения ячеек, содержащих любую строку на другом листе - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть ColumnA, где каждая ячейка содержит несколько значений, разделенных запятой, например:

Elvis Costello, Madonna
Bob, Elvis Presley, Morgan Stanley
Frank, Morgan Stanley, Madonna Ford,
Elvis Costello, Madonna Ford

И я хочу определить, какие строки / ячейки содержат какие-либо точные термины в другом листе / столбце, например,

Elvis Presley
Madonna

И я нашел это простое решение, используя Regexmatch (последнее решение на этой странице) Есть ли способ REGEXMATCH из диапазона ячеек, например, из A1: A1000?

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

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

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

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

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

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

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

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

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

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

Проблема в том, что решение Regexmatch идентифицирует "Elvis Costello" и "Madonna Ford", и я хочу только идентифицировать ячейки / строки, которые включают точное соответствие, ie "Элвис Пресли" и "Мадонна", ie все, что находится между запятыми, должно быть точным совпадением с одним из условий поиска, а не только частично верно.

Надеюсь, это имело смысл:)

Спасибо всем!

1 Ответ

0 голосов
/ 16 апреля 2020

Я думаю, что, возможно, нашел ответ, все еще пытаясь проверить, правильно ли он.

Я добавил \ b до и после. Таким образом, в листе с примерами, переизданном в цитируемой части моего вопроса, я изменил ячейку:

Cell B3:
=TEXTJOIN("|",1,'vlookup city'!B$2:B$476)

и добавил еще одну ячейку, подобную этой:

Cell B2:
=concatenate("\b(",$B$3,")\b")

Все еще проверяя, все ли ложно флаги сняты. Спасибо

...