1

我在 Excel 中有两个工作表。

一个是映射,例如

A Aardvark
B Bear
C Cow
D Dog

另一个是我想自动完成其第二列的表。第一列包含单个值,或以逗号分隔的多个值:

A
A, C
D, B
C

我在第二列中想要的结果是

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 回答