![vlookup для значения ячейки, разделенной запятыми, со ссылкой из другого листа](https://rvso.com/image/1586909/vlookup%20%D0%B4%D0%BB%D1%8F%20%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D1%8F%20%D1%8F%D1%87%D0%B5%D0%B9%D0%BA%D0%B8%2C%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D0%BE%D0%B9%20%D0%B7%D0%B0%D0%BF%D1%8F%D1%82%D1%8B%D0%BC%D0%B8%2C%20%D1%81%D0%BE%20%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%BE%D0%B9%20%D0%B8%D0%B7%20%D0%B4%D1%80%D1%83%D0%B3%D0%BE%D0%B3%D0%BE%20%D0%BB%D0%B8%D1%81%D1%82%D0%B0.png)
У меня есть лист1
**group** **Name**
red,white,blue
white, blue,red
blue,red
red,white,blue,pink
sheet2
Color Name
red joe
white jim
blue bill
с несколькими записями нужно выполнить множественный поиск имен для имени группы в sheet1 b1 не могу использовать Office 365 для textjoint. Есть ли другой способ?
решение1
Я бы сделал это с помощью VBA.
Откройте редактор VBA с помощью Alt+F11
Вставить > Модуль
Вставьте этот код:
Подзадача поиска_VBA() Dim c как диапазон Dim arr() как строка Dim i As Long Тусклый матч как долго Dim sResult как строка При ошибке GoTo errH Для каждого c в Sheets("Sheet1").Range("A2:A10") arr = Разделить(c, ",") Для i = 0 до UBound(arr) match = WorksheetFunction.match(Trim(arr(i)), Sheets("Sheet2").Cells(1).EntireColumn, 0) Если совпадение = 0 Тогда sResult = sResult & "Н/Д, " Еще sResult = sResult & Sheets("Лист2").Ячейки(совпадение, 2).Значение & ", " Конец Если совпадение = 0 Следующий sResult = Left(sResult, Len(sResult) - 2) c.Смещение(, 1).Значение = sРезультат sResult = vbNullString Следующий ээээ: Если Err.Number = 1004 Тогда Возобновить Далее ИначеЕсли Err.Number > 0 Тогда MsgBox Номер ошибки & " " & Описание ошибки, , "Ошибка" Конец Если Конец субтитра
- В коде замените
.Range("A2:A10")
фактический адрес данных в столбце «группа». - При необходимости измените
Sheet1
иSheet2
на фактические названия листов. - УдарятьF5