Google Sheets Найти частичные совпадения между двумя столбцами в нескольких словах строк в нескольких порядках - PullRequest
0 голосов
/ 11 ноября 2019

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

Я в основном анализирую данные о товарах и вынимаю список товаров, как правило, из двух разных источников. Затем я вручную сравниваю их, чтобы найти совпадения. Как вы можете себе представить, это очень утомительно.

Чтобы привести пример, я в настоящее время сравниваю два прайс-листа продуктов для волос, и оба содержат сотни продуктов. Мне нужно найти продукты, которые совпадают в обоих списках, а затем сравнить детали и т. Д.

Обычно я просто извлекаю столбец «имя» из обоих листов и помещаю их в новую электронную таблицу в столбцы А и В.

Проблема в том, что мы не включили UPC / EAN в эти списки и поэтому должны сравнивать названия продуктов.

Названия продуктов в этих списках, как правило, совершенно разные, со всеми словамив разных порядках и очень часто имеют разные слова .. например, если один и тот же продукт обнаружен в обоих списках, одна запись может быть «Шампунь для волос для увеличения блеска для волос 30 мл», а другая - «Шампунь для волос Rose Aoe 30 мл для волос»тот же продукт, но названия немного отличаются, а порядок совершенно другой.

Я ищу формулу, которая будет определять частичное совпадение в любом порядке (например, здесь это будет «объемный шампунь») и сообщатьмне, где они. Это должно быть из одного столбца в другой, например, из B в A - «, если в столбце« a »есть что-то, что частично соответствует« B »любым образом в любом порядке », а затем пометить его.

Если бы он мог как-то оценить, насколько он соответствует, то есть, может быть, от 1 до 100, что было бы идеально, так как он мог бы быть отсортирован по этому столбцу.

Большое спасибо занашли время, чтобы прочитать это

1 Ответ

0 голосов
/ 11 ноября 2019

пробовать:

=ARRAYFORMULA(TRIM(TRANSPOSE(QUERY(QUERY(QUERY(SPLIT(TRANSPOSE(SPLIT(
 QUERY(TRANSPOSE(QUERY(TRANSPOSE("♦"&ROW(A1:A)&" "&IFNA(REGEXEXTRACT(TO_TEXT(
 IF(IFERROR(SPLIT(A1:A, " "))<>"", LOWER(SPLIT(A1:A, " ")), )), 
 TEXTJOIN("|", 1, SORT(TRANSPOSE(SPLIT(TEXTJOIN(" ", 1, 
 LOWER(B1:B)), " ")), 1, 0))))),,999^99)),,999^99), "♦")), " "), 
 "select max(Col2) group by Col2 pivot Col1"), "offset 1", 0),,999^99))))

0

...