我有两个表,table2
和VLOOKUP
。我执行table2
函数以填充从table1
到table2
的3列。
出于某种原因,该公式不适用于第一行,并且即使它存在,也找不到General
的完全匹配。
我确保两列(用于比较)具有相同的格式(table1
)并且没有额外的间距。同样的条件也适用于其他记录,并且它在那里正常工作。
table1 - 您可以看到第一行缺少的匹配项。
table2 - 您可以看到匹配确实存在,但未在VLOOKUP
中反映出来。
为{{1}}找不到特定记录的匹配项还有其他原因吗?
答案 0 :(得分:1)
尝试直接评估您认为相等的两个单元格的相等性,例如,如果A2是您正在查找的值,则Sheet2!A100是您认为应匹配的值,请在单元格中尝试此操作:
=(A2=Sheet2!A100)
如果返回false,则表示vlookup中存在格式化问题或错误。
同时尝试使用“公式/评估公式”功能区命令逐步执行vlookup,以防突出显示错误。
答案 1 :(得分:1)
好的 - 这是一个用例的问题。对于“显然”相等的值,VLOOKUP
和INDEX-MATCH
正在返回 #N / A 。用=TRIM(CLEAN(SUBSTITUTE(A1,CHAR(160)," ")))
清除我的数据,但这不起作用。
然后,我比较了两个看起来像匹配值的单元格,并且评估为FALSE(A1=B1
导致 FALSE )。
然后,作为最后的手段,我编码检查了两个单元格中每个字符的每个ASCII值,我发现一个单元格中的“ - ”与另一个单元格中的“ - ”不同。第一个单元格的ASCII值为63,第二个单元格的ASCII值为45,看起来是相同的“ - ”。事实证明,63是一个“短划线”,45是你的标准短划线或减号。
评估字符串中每个字符的ASCII代码的方法是在使用LEN函数测试单元格长度后,将CODE函数与MID或RIGHT函数结合起来。
示例:
LEN(A1)
应该等于LEN(B1)
对于每个单元格中的第一个字符:
CODE(A1)
代码默认为左侧的第一个字符
CODE(MID(A1,2,1)
为第二个字符生成ASCII
CODE(MID(A1,3,1)
为第二个字符生成ASCII
等等
如果你有很多字符,你可以在CODE-MID函数旁边发布一个整数序列,并将position参数指向相关的整数,只需向下或向下复制
或者
您可以查找奇怪的非数字字符,只测试两个单元格。
答案 2 :(得分:0)
这是我遇到的一个问题:如果直接在公式F54
中输入要查找的值(1.016),我的VLOOKUP公式将返回正确的值(1)。
但是,如果我在列A
中引用了一个值作为要查询的值,则该公式将返回#N/A
,如单元格F55
所示。
(我实际上是在尝试VLOOKUP当前行的A值加上0.015,即VLOOKUP(A54+0.015, $A$3:$B$203, 2, FALSE)
)
但是,如果我使用ROUND
函数,那么VLOOKUP公式将起作用,如F56
所示。
答案 3 :(得分:0)
观察过这样的情况,直接比较失败(例如公式 =A1=B1
导致 FALSE
)但长度为 =LEN(A1)=LEN(B1)
和逐个字母的 ASCI 比较(=CODE(A1,1,1)
,{ {1}}、=CODE(A1,2,1)
等)显示没有区别。
有效的是调整 VLOOKUP 中查找值的格式。
例如
=CODE(A1,3,1)
-> =VLOOKUP(A1, ARRAY, COL_NUM, FALSE)
答案 4 :(得分:0)
我最近遇到了同样的问题,通过将 vlookup 公式更改为 =VLOOKUP([要查找的值], [查找表], [要在查找表中返回的列], 假 )。将最后一个输入参数设置为“false”会强制 Excel vlookup 函数执行精确匹配。