Как найти и удалить несколько слов (в виде списка) из ячейки без использования макроса - PullRequest
0 голосов
/ 09 марта 2020

У меня есть строка в ячейке, которая представляет собой список слов, подобных этому:

a,b,c,d,e,f,g,h,f,c,a,h

Я хотел бы найти и удалить все слова, которые есть в этом списке:

c,f,h

Я могу использовать несколько SUBSTITUTE, но так как мой список длинный, вложенная SUBSTITUTE не удобна. Вот пример листа: https://docs.google.com/spreadsheets/d/11ZT3CMJ9vfUcOIvhXYLHUHHQm5tm1Tb1N9hi3LeI0WM/edit#gid = 0

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

Ответы [ 3 ]

3 голосов
/ 09 марта 2020

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

Составьте список слов, которые вы хотите заменить в столбце, например. A3:A9 и используйте следующую формулу для создания выражения.

=JOIN("|",A3:A9)

Затем используйте рабочий раствор из вашего упомянутого ответа (или любую формулу, которая соответствует вашим потребностям), чтобы получить окончательный результат.

=REGEXREPLACE(A1,"\b("&B3&")\b",)

enter image description here

1 голос
/ 09 марта 2020

Это вторая версия, основанная на предложениях @marikamitsos, я добавил строку ", .. $" в последнюю позицию партнера, потому что в конце текста в a1 нет запятой.

=RegexReplace(RegexReplace(A1&",","\b(" & SUBSTITUTE(A3&",",",",",|") & ")(\b|$)",""),",$","")

enter image description here

0 голосов
/ 09 марта 2020

В дополнение к предыдущему ответу вы также можете попробовать

=textjoin(",", 1, ArrayFormula(regexreplace(split(A2, ","), textjoin("|",1,A5:A8),)))
...