1

Excel に 2 つのワークシートがあります。

1つはマッピングです。たとえば、

A Aardvark
B Bear
C Cow
D Dog

もう1つは、2番目の列を自動的に完成させたいテーブルです。最初の列には、単一の値、またはコンマで区切られた複数の値が含まれます。

A
A, C
D, B
C

2列目に欲しい結果は

Aardvark
Aardvark, Cow
Dog, Bear
Cow

最初の列のセルに単一の値しか含まれていない限り、Excel VLOOKUP を使用すると簡単です。

ただし、複数の値を処理せず (というか、それらを単一の値と誤解しています)、結果を返します

Aardvark
#NA
#NA
Cow

どうすれば望ましい結果を得ることができますか? おそらく、より複雑な数式、別の Excel 関数、配列テーブル、または Excel で MS-SQL クライアントを使用して Excel テーブルをデータベースとしてクエリするのでしょうか?

4

1 に答える 1

3

UDF アプローチ:

Function MultiVL(v As Range, tbl As Range)

    Dim arr, rv As String, x As Integer, res

    rv = ""
    arr = Split(v.Value, ",")
    For x = LBound(arr) To UBound(arr)
        res = Application.VLookup(Trim(arr(x)), tbl, 2, False)
        rv = rv & IIf(rv <> "", ", ", "") & IIf(IsError(res), "?", res)
    Next x

    MultiVL = rv

End Function
于 2012-05-01T16:19:09.787 に答える