我有一本有两张床单的工作簿。一个工作表包含存储在表中的数据连接。这是一组与我的数据排列格式相同的样本数据。
数据表

另一个工作表包含前6列和最后一列的原始复制粘贴。如下所示。
原始数据

我正在执行这个查找:=VLOOKUP(M2,'Raw Data'!A1:G1195,6)和我返回0,但是,如果我将正在检查的列更改为=VLOOKUP(M2,'Raw Data'!A1:G1195,1),那么我将得到正确的结果,但是试图放置第6列(注释列),VLookUp只返回0。
之所以会有一个VBA标记,是因为我也试图通过宏完成这个任务,但是宏和这个手动查找都不能正确地返回正确的结果。(宏什么也不回)
编辑:经过进一步的检查,当我将FALSE作为第四个参数添加时,我现在返回#N/A,这意味着它根本找不到匹配的条目。我通过删除FALSE来处理它,它似乎完全引用了错误的行。
发布于 2019-08-29 15:18:54
VLOOKUP在第二个参数指定的范围的第一列中搜索第一个参数的值。在您的示例中,您使用列M作为要查找的值,使用列A作为要检查的值。这些不是匹配的。添加FALSE作为VLOOKUP的第四个参数说明了这一点,VLOOKUP强制进行精确匹配,发现根本不匹配,因为Raw Data列A中的任何内容都不匹配数据表的M列。
没有第四个参数为FALSE会改变行为以进行最接近的匹配搜索,这不是您想要的,而是在创建错误的结果。
不幸的是,由于VLOOKUP使用第一列,而Unique ID是原始数据中的最后一列,您在创建正确的VLOOKUP公式时面临一些挑战,因为您想要的列位于要查找的列的左边。如果您可以将Unique ID移动到Raw Data中最左边的列,那么它将按预期工作。您还可以创建一个隐藏的最左边列,该列复制列M。如果无法重新排列数据,则需要以不同的方式处理该问题。
一个很好的方法是将范围声明为一个命名范围(例如,raw_data),而不是使用单元格引用。如果要从数据库中提取数据,Excel将自动为范围指定名称,您也可以使用该名称。
https://stackoverflow.com/questions/57711651
复制相似问题