做一个区分大小写的vlookup

有没有人知道如何做excel的区分大小写的查找?

较新的AGGREGATE¹函数可以通过强制非匹配成为错误状态并忽略错误来拾取第一,第二,第三等匹配。 使用EXACT函数修改此方法以select区分大小写的查找。

nam date code bob 19-Oct-2015 001 BOB 02-Nov-2015 002 boB 28-Oct-2015 002 Bob 24-Oct-2015 004 bOB 27-Oct-2015 005 bOb 21-Oct-2015 006 

从中挑选BobBOB

 =INDEX(B$2:B$7, AGGREGATE(15, 6, ROW($1:$6)/EXACT($A$2:$A$7, $E2), 1)) 

根据需要填写并正确填写。

区分大小写的VLOOKUP


¹AGGREGATEfunction是在Excel 2010中引入的。它在早期版本中不可用。

Dick Kusleika观察到,完整解决scheme的关键问题是:避免在大小写敏感的匹配之前发现不区分大小写的匹配时停止search。

在Excel中的博客条目敏感查找声称有一个使用INDEX和MATCH函数的解决scheme(原始信息由Peo Sjoblom提供)。 评论中也有一些select。

这似乎是vlookup的一个特点,案件并不重要 – 所以鲍勃是一样的鲍勃。 你可以使用code()来转换成ASCII码和查找代码。 这会使你的查找更加复杂,而code()只返回string中第一项的代码。

如果你返回的值是一个数字而不是文本,并且你的lookup_table的第一列是唯一的('bob'不会出现多次),那么你可以使用这样的数组公式

 =SUM(EXACT(A3:A6,"bob")*(B3:B6)) 

用Ctrl + Shift + Enterinput,而不只是input。 它将B3:B6中的所有内容相加,其中A3:A6正好是“bob”。 由于只有一个“bob”,所以只能加一个单元。 因为它使用SUM,所以返回string将不起作用。

如果“鲍勃”不止一次出现,它会将所有你可能不想要的值相加。

更新

如果您正在查找的值不是数字,则可以使用数组公式来查找该行,然后在其周围包装一个INDEX函数。 假设您的数据是A3:B6,并且您希望根据列A中的精确匹配从列B中提取数据。

 =INDEX(A3:B6,SUM(EXACT(A3:A6,"bob")*(ROW(B3:B6)))-2,2) 

inputCSE。 SUM部分返回find“bob”的行。 您必须从中减去2,因为数据以A3开始(减去一个小于数据开始的行)。 INDEX函数使用该行并从B列拉取。

我的第一个想法是使用EXACT()函数来testingvlookup的结果:

 =IF(EXACT(VLOOKUP(A2,$C$2:$C$4,1,FALSE),A2),VLOOKUP(A2,$C$2:$C$4,1,FALSE),0) 

其中A2 =您希望查找的值,C2:C4是包含要查找的值的范围。

这将返回vlookup的结果,并确认它匹配您希望查找的值的情况。 如果匹配大小写,则返回vlookup结果,否则返回0。

EDITED

其实这个答案是行不通的。 如果你的列表包含“鲍勃”和“鲍勃”,它会发现第一个,只有testing。 对不起,我没有想到这一点。