vlookup для значения ячейки, разделенной запятыми, со ссылкой из другого листа

vlookup для значения ячейки, разделенной запятыми, со ссылкой из другого листа

У меня есть лист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.

  1. Откройте редактор VBA с помощью Alt+F11

  2. Вставить > Модуль

  3. Вставьте этот код:

Подзадача поиска_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 Номер ошибки & " " & Описание ошибки, , "Ошибка"
  Конец Если

Конец субтитра
  1. В коде замените .Range("A2:A10")фактический адрес данных в столбце «группа».
  2. При необходимости измените Sheet1и Sheet2на фактические названия листов.
  3. УдарятьF5

Полученные результаты:
vba поиск разделитель запятая результаты

Связанный контент