簡體   English   中英

盡管存在匹配,Vlookup 仍返回 N/A

[英]Vlookup returns N/A despite of existing match

我有兩個表, table1table2 我執行VLOOKUP函數以將table2中的 3 列填充到table1

出於某種原因,該公式不適用於第一行,並且即使存在table2 ,也無法從table2找到完全匹配的內容。

我確保兩列(用於比較)具有相同的格式( General )並且沒有額外的間距。 同樣的條件也適用於其余的記錄,並且在那里正常工作。

table1 - 您可以看到第一行缺少的匹配項。表格1

table2 - 你可以看到匹配確實存在,但它沒有反映在table1表2

VLOOKUP找不到特定記錄的匹配項還有其他原因嗎?

嘗試直接評估您認為相等的兩個單元格的相等性,例如,如果 A2 是您要查找的值,而 Sheet2!A100 是您認為應該匹配的值,請在單元格中嘗試以下操作:

=(A2=Sheet2!A100)

如果返回 false,則您知道 vlookup 中存在一些格式問題或錯誤。

還可以嘗試“公式”/“評估公式”功能區命令來逐步執行您的查找,以防突出顯示錯誤。

好的 - 這是一個非常棒的用例。 對於“顯然”相等的值, VLOOKUPINDEX-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 函數旁邊發布一個整數序列,並將位置參數指向相關整數,然后向下或交叉復制

要么

您可以查找奇怪的非數字字符,然后為兩個單元格測試該字符。

這是我遇到的一個問題:如果我直接在公式中輸入要查找的值 (1.016),我的 VLOOKUP 公式將返回正確的值 (1),如單元格F54所示。

但是,如果我引用A列中的值作為要查找的值,則公式返回#N/A ,如單元格F55所示。

(我實際上是在嘗試 VLOOKUP 當前行的 A 值加上 0.015,即VLOOKUP(A54+0.015, $A$3:$B$203, 2, FALSE)

然而,如果我使用ROUND函數,則 VLOOKUP 公式有效,如F56所示。

Excel VLOOKUP 問題

已經觀察到這樣的情況,其中直接比較失敗(例如公式=A1=B1導致FALSE )但長度=LEN(A1)=LEN(B1)和逐個字母的 ASCI 比較( =CODE(A1,1,1)=CODE(A1,2,1) , =CODE(A1,3,1)等) 顯示沒有區別。

有效的是調整 VLOOKUP 中查找值的格式。

例如=VLOOKUP(A1, ARRAY, COL_NUM, FALSE) -> =VLOOKUP(TEXT(A1, "000"), ARRAY, COL_NUM, FALSE)

我最近遇到了同樣的問題,並通過將 vlookup 公式更改為 =VLOOKUP([value to lookup], [lookup table], [column to return in the lookup table], False ) 解決了這個問題。 將最后一個輸入參數設置為“false”會強制 Excel vlookup 函數執行精確匹配。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM