Excel 进行区分大小写的vlookup

Excel 进行区分大小写的vlookup,excel,excel-formula,Excel,Excel Formula,有人知道如何使用excel进行区分大小写的vlookup吗?我的第一个想法是使用EXACT()函数来测试vlookup的结果: =IF(EXACT(VLOOKUP(A2,$C$2:$C$4,1,FALSE),A2),VLOOKUP(A2,$C$2:$C$4,1,FALSE),0) 其中A2=您希望查找的值,C2:C4是包含要查找的值的范围 这将返回vlookup的结果,并确认它与您希望查找的值的大小写匹配。如果它们与case匹配,它将返回vlookup结果,否则返回0 已编辑 事实上,这个答案

有人知道如何使用excel进行区分大小写的vlookup吗?

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

=IF(EXACT(VLOOKUP(A2,$C$2:$C$4,1,FALSE),A2),VLOOKUP(A2,$C$2:$C$4,1,FALSE),0)
其中A2=您希望查找的值,C2:C4是包含要查找的值的范围

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

已编辑


事实上,这个答案行不通。如果您的列表中包含“Bob”和“Bob”,则会找到第一个,并且只测试它。对不起,我没有想到这一点。

这似乎是vlookup的一个特点,这种情况并不重要——所以Bob和Bob是一样的。您可以使用code()转换为ASCII并查找代码。这将使查找更加复杂,code()只返回字符串中第一项的代码。

如果返回的值是数字而不是文本,并且查找表的第一列是唯一的(“bob”不会出现多次),则可以使用如下数组公式

=SUM(EXACT(A3:A6,"bob")*(B3:B6))
使用Control+Shift+Enter输入,而不仅仅是输入。它将B3:B6中的所有内容相加,其中A3:A6正好是“bob”。因为只有一个“bob”,所以它只对一个单元格求和。因为它使用SUM,所以返回字符串不起作用

如果“bob”出现不止一次,它将对所有值求和,这可能是您不想要的

更新

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

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

进入CSE。总和部分返回找到“bob”的行。您必须从中减去2,因为数据以A3开头(比数据开始的行少减去1)。INDEX函数使用该行并从B列中提取。

这里完整解决方案的关键问题是迪克·库斯莱卡(Dick Kusleika)观察到的:避免在发现区分大小写的匹配之前发现不区分大小写的匹配时停止搜索

该博客声称使用索引和匹配功能解决了这个问题(原始信息由Peo Sjoblom提供)。注释中也有一些替代方法。

较新的注释可以通过将不匹配项强制进入错误状态并忽略错误来选择第一、第二、第三等匹配项。使用修改此方法以选择区分大小写的查找

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))
如有必要,填写并纠正



⑨Excel 2010中引入了。早期版本中没有。

我昨天试过,珍妮说没用,但也许你会比我幸运。@dick谢谢。我在一张工作表上有一列,但另一列(我在另一张工作表中匹配的列,因此ur公式在我的情况下不起作用)也不会使用VLOOKUP,区分大小写与否。你可以考虑编辑你的问题,更多的关于数据是如何排列的信息。我相信有一个解决办法,是吗?这对我来说是新的。“你能给我举个例子吗?”迪克试试看。你需要什么样的例子任何有效的例子都可以。这个公式=VLOOKUP(1,Sheet1:Sheet3!A3:B7,3,FALSE)返回一个#值错误。由于第二个参数必须是一个连续的范围,我不确定如何引用多个sheets.FWIW上的范围,这是可行的,但前提是可以执行数组公式(按ctrl-shift-enter键输入公式)。我遇到的问题是,我用来创建excel文件的POI库不支持这些类型的公式。我没有找到其他使用非数组公式的解决方案,所以我被迫做了一个我不喜欢的解决方案,但这是我唯一的选择。我预处理所有值,并在每个小写字符前面添加unicode字符\u0096\u0097(对于需要区分大小写的每个字段)。这些字符是不可见的,但它们在excel中通过匹配进行比较。注释中建议的此公式似乎是最简单的解决方案:
=查找(1,1/精确(A1:A6,D1),B1:B6)