用于将多值单元格映射到多值结果的Excel公式或数据库查找?

时间:2012-05-01 13:31:03

标签: excel

我在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表作为数据库进行查询?

1 个答案:

答案 0 :(得分: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