Excel - одна ячейка, несколько входов, разделенных запятыми, и одна ячейка, разделенных запятыми - PullRequest
0 голосов
/ 27 июня 2019

У меня проблема с vlookup множественными значениями, разделенными запятыми в одной ячейке, и выводом, разделенным запятой в одной ячейке.

Я попытался сделать это с помощью функций и обрезки текста и попытался разделить его на другие листы и ничегоработает.

Here what I want to achive

Требуется ли VBA для решения этой проблемы?

Ответы [ 2 ]

1 голос
/ 27 июня 2019

Вы можете использовать эту формулу:

=TEXTJOIN(",",TRUE,INDEX($F$2:$F$4,N(IF(1,MATCH(FILTERXML("<t><s>"&SUBSTITUTE(A2,",","</s><s>")&"</s></t>","//s"),$E$2:$E$4,0)))))

Это формула массива. Для ввода / подтверждения формулы массива , удерживая нажатой ctrl + shift , нажимая , введите . Если вы сделаете это правильно, Excel поместит фигурные скобки {...} вокруг формулы, отображаемой на панели формул.

enter image description here

0 голосов
/ 27 июня 2019

Если у вас Office 365 Excel, вы можете использовать TEXTJOIN в качестве формулы массива:

=TEXTJOIN(", ",TRUE,IFERROR(INDEX(E:E,N(IF({1},MATCH(TRIM(MID(SUBSTITUTE(A2,",",REPT(" ",99)),(ROW($XFD$1:INDEX($XFD:$XFD,LEN(A2)-LEN(SUBSTITUTE(A2,",",""))+1))-1)*99+1,99)),D:D,0)))),""))

Будучи формулой массива, она должна быть подтверждена с помощью Ctrl-Shift-enter вместо Enter при выходе из режима редактирования.

enter image description here


Если у вас нет Office 365, вы можете использовать UDF ЗДЕСЬ и формулу выше, чтобы вызвать его.

...