別のシートからの参照を使用して、カンマで区切られたセル値を検索する 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 のグループ名の名前を複数検索したいのですが、textjoint に Office 365 を使用できません。他の方法はありますか?

答え1

VBA を使用して実行します。

  1. Alt+を使用してVBAエディタを開きますF11

  2. 挿入 > モジュール

  3. 次のコードを貼り付けます:

サブルックアップ_VBA()

  範囲として暗黙の c
  arr() を文字列として暗くする
  暗く長く
  暗く一致 As Long
  Dim sResult を文字列として返す

  エラー発生時 GoTo errH
  Sheets("Sheet1").Range("A2:A10") の各 c について
    arr = Split(c, ",")
    i = 0 の場合、UBound(arr)
      一致 = WorksheetFunction.match(Trim(arr(i)), Sheets("Sheet2").Cells(1).EntireColumn, 0)
      一致 = 0 の場合
        sResult = sResult & "N/A, "
      それ以外
        sResult = sResult & Sheets("Sheet2").Cells(match, 2).Value & ", "
      終了条件
      一致 = 0
    sResult = 左(sResult, Len(sResult) - 2)
    c.Offset(, 1).Value = sResult
    sResult = vbNullString
えーっと:
  Err.Number = 1004の場合
    再開 次へ
  それ以外の場合はErr.Number > 0
    MsgBox Err.Number & " " & Err.Description, , "エラー"
  終了条件

終了サブ
  1. コードでは、.Range("A2:A10")「グループ」列のデータの実際のアドレスに変更します。
  2. 必要に応じて、Sheet1と をSheet2実際のシート名に変更します。
  3. 打つF5

結果:
vba ルックアップ区切り文字コンマの結果

関連情報