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