Удалить значения в ячейке на основе строковой части - PullRequest
0 голосов
/ 31 января 2020

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

Пример ячейки:

2006CE3, 2007CE3, 2012CE1, 2012CE3, 2013CE1, 2013CE3, 2014CE2, 2015CE3, 2016CE2, 2019FA, 2020SP

В частности, удалите все значения, содержащие "CE". В приведенном выше примере я хотел бы удалить 2006CE3, 2007CE3, 2012CE1, 2012CE3, 2013CE1, 2013CE3, 2014CE2, 2015CE3, 2016CE2, и оставить 2019FA, 2020SP

Ответы [ 2 ]

2 голосов
/ 31 января 2020

Попробуйте эту формулу, решение которой с помощью функции TEXTJOIN доступно для Office 365

В B2, введите формулу:

=TEXTJOIN(", ",1,INDEX(FILTERXML("<a><b>"&SUBSTITUTE(A2,", ","</b><b>")&"</b></a>","//b[not(contains(.,'CE'))]"),0))

enter image description here

2 голосов
/ 31 января 2020

Для этого с формулой один потребуется TEXTJOIN:

=TEXTJOIN(", ",TRUE,IF(ISNUMBER(SEARCH("CE",FILTERXML("<z><y>"&SUBSTITUTE(A1,",","</y><y>")&"</y></z>","//y"))),"",TRIM(FILTERXML("<z><y>"&SUBSTITUTE(A1,",","</y><y>")&"</y></z>","//y"))))

enter image description here

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