与excel vlookups匹配的精确案例

时间:2011-10-12 09:42:10

标签: excel excel-formula

我有一个包含“唯一”ID的电子表格。问题是它们只是区分大小写,这意味着我有:a06D000000QO5uW& a06D000000QO5uw。

我想对这些ID执行vlookup并撤回相关值。使用我发现的这篇文章可以进行区分大小写的匹配:

http://support.microsoft.com/kb/214264

我发现的问题是因为vlookup嵌套在Exact函数中,它返回它找到的第一个匹配,这可能不是我追求的那个。如果我使用文章中的数据样本,它看起来像:

Name    Age     Joe
Mary    32  
joe     48  
Bob     53  
Sue     27  
Joe     30  

看起来像:

=IF(EXACT(C1,VLOOKUP(C1,A1:B6,1,FALSE))=TRUE,VLOOKUP(C1,A1:B6,2,FALSE),"No exact match")

问题似乎是测试“Joe”的vlookup首先遇到“joe”并且因为它不区分大小写返回作为匹配 - 意味着它永远不会到达“Joe”。然后确切的函数失败,因为它试图测试“乔”对“乔”。

这有什么办法吗?我真的想避免沿着VBA路线走下去,因为我们混合了Mac和Window用户,所以我想把它保留给公式。

2 个答案:

答案 0 :(得分:4)

您的问题(使用此确切示例)涵盖here

  • 数组公式(按 Ctrl Shift Enter )如果没有匹配,将一起返回30对抗乔(NA)。 =INDEX(B1:B6,MATCH(1,--EXACT(A1:A6,C1),0))
  • 同一篇文章中提到的更直接的公式是=LOOKUP(1,1/EXACT(A1:A6,C1),B1:B6)

enter image description here

答案 1 :(得分:2)

我认为有一种更好的方法,因为它不使用数组公式。

=INDEX($B$2:$B$6,MATCH(TRUE,INDEX(EXACT(C1,$A$2:$A$6),0),0))