Excel Vlookup從reference_row-1傳回值而非參考行

Excel Vlookup從reference_row-1傳回值而非參考行

作為主題,我正在 2 個 excel 文件之間進行 vlookup,公式返回值from reference_row-1(“Room”)而不是reference_row(DPS DPC)為什麼會發生這種情況以及如何修復它?

excel vlookup回傳錯誤

答案1

評論的方向Mark Fitzgerald是正確的,但還不完全正確。

正確的部分是第四個參數既沒有指定也沒有指定為 FALSE。

如果未指定,則預設為 TRUE。當指定為 TRUE 時,它也為 TRUE。無論哪種方式,您都會遇到這裡看到的問題,但是這裡還發生了其他事情,導致了您所得到的確切的令人不滿意的結果。

在解決這個問題之前,我應該指出,在像您這樣的使用中,您顯然需要完全匹配才能獲得正確的結果。因此,您必須新增第四個參數並將其設為 FALSE,以便它可以找到完全匹配。那麼我要解決的根本問題就不重要了,這是一個好處。

真正的問題來自於如何告訴 Excel 用來尋找的範圍:第二個參數。您正在使用C:V它告訴 Excel 使用這些列中的每個儲存格。有很多理由不這樣做,但這裡重要的一個與第四個參數的 TRUE 值有關。

當它為 TRUE 時,微軟告訴我們VLOOKUP()(以及一些其他函數,如果在不期望完全匹配時查找內容)將搜索數據,直到找到“大於”查找值的單元格,然後停止並返回值就在“大於”值之前。我要指出的是,這並不是真正的事實,但對於您的困難來說,它已經足夠接近了。

根據他們的說法,他們建議只有當查找列(此處為 C 列)按最低值到最高值(「AZ」)排序時,才會出現正確的結果。即使在你的情況下,這幾乎總是有效的(但可能是 99.99%)。不幸的是,很多人根本無法做到這一點而不弄亂他們數據中的其他一些功能。對於大多數人來說,他們只是希望根據其他條件進行排序,而不能按查找列進行排序。

那麼,你發生了什麼事?尋找正在 C 列中尋找「CA-whatever」。該標題是“條碼”......到目前為止(有點)很好。然後在儲存格 C2 中找到「大於」查找值(以「CA」開頭)的值。假設在儲存格 C2 中找到按字母順序排列在其和標題後面的內容。它立即停止並“撤退”回標題單元格。這是範圍中的第 1 行,它向右讀入 S 列並在該儲存格 (S1) 中找到「房間」。這就是它返回的內容。

事實上,如果 C2 沒有按字母順序超過查找值,它肯定會在到達 C380 之前找到一些東西,並在較早的點停止,後退一行,並返回該行的列 S 值。這也會是錯的,但它可能並沒有那麼明顯錯誤以至於你注意到它。畢竟,它會提供一些看起來正常的房間。一切可能看起來都不錯。然而,現在很可能有 4 個或 32 個,甚至 200-300 個錯誤值。

正如我在開始時提到的,無論如何您顯然都需要精確匹配,因此將第四個參數添加到查找中。使用FALSE,不使用TRUE。 FALSE 將強制它尋找完全匹配。

由於該問題是在兩年多前發布的,因此您似乎已經以某種方式解決了該問題。但也許這對其他人有用,有人可能會發現它甚至有助於解釋其他功能的添加結果,這些功能應該像MS 所說的那樣工作,但實際上就像我所說的那樣工作,儘管我對它的接觸只是一小部分整個主題!但任何進行查找的函數都可能遇到它。MATCH()並且XMATCH(),甚至是新XLOOKUP()功能。誠然,較新的函數僅在使用非精確匹配時才會遇到它,但由於它們確實如此並且人們確實以這種方式使用它們......而且還有其他時候會出現這種情況。

相關內容