通过组合2列来形成唯一键的VLOOKUP

时间:2014-01-27 21:43:03

标签: excel vba excel-vba

对于下表,

excel table

我想在col C中查找值。由于col A和col B中的值不是唯一的,因此VLOOKUP失败。例如,VLOOKUP(1,table,3)返回5而不是1。

然而,cols A&的组合 B是独一无二的。例如,1blah = 5,而1foo = 1。

如何使用cols A&组合B作为返回col C中相应值的唯一键?

我不确定是否应该使用工作表函数或自定义VBA函数来实现。我尝试使用CONCATENATE生成唯一键,但这不起作用,因为这会导致数字和字符串的组合。

3 个答案:

答案 0 :(得分:7)

您可以使用数组公式:

=INDEX($C$1:$C$7,MATCH("1foo",$A$1:$A$7 & $B$1:$B$7,0))

只需在示例D1中选择,在公式栏中输入公式,然后按 CTRL + SHIFT + ENTER 进行评估< / p>

答案 1 :(得分:2)

我通常这样做的方法是连接由管道符(|)分隔的值。请参阅下面屏幕截图中的公式。

=A1&"|"&B1

然后你可以使用连接密钥进行vlookup。

=VLOOKUP("1|foo",$C$1:$D$7,2,FALSE)

答案 2 :(得分:0)

如果您的查找值是两个或多个关键字段(A2和B2)的串联,则可以使用VLOOKUP。然后,在LUT工作表中添加第一个排序列,其中的数组是相同键字段的串联。中提琴。