2013-07-21 29 views
1

我有一個excel 2010電子表格,有4列。爲什麼這個有效?探索VLOOKUP公式

A列:我銷售產品的UPC代碼列表。大約300條線。

列B:式(以後會更多)

柱C:的UPC代碼的另一個列表。這些UPC代碼大約有10,000行。

列d:對應於UPC代碼在C列

的庫存數的公式:

=VLOOKUP(A2,C:D,2,FALSE) 

的想法是我的供應商的UPC代碼檢索匹配我的UPC碼相應的庫存盤點。

所有數據都從其他電子表格粘貼到新的電子表格中,並被粘貼爲僅以確保沒有其他字符或格式被導入。

這個公式被拖到了所有300行。

我接收到錯誤#N/A在B欄,直到我在列A的值之前插入以下字符:

' 

注:'通過點擊細胞並鍵入'手動插入在上面的框中。

後立即這樣做的目的,在#N/A將改變從列D獲取相應的庫存

我的問題是,爲什麼這會起作用?爲什麼沒有'的方法不起作用?有沒有辦法在列A中的所有值之前快速添加'?注意:CONCATENATE(「'」,A2)由於某種原因不起作用。

回答

3

拉斐爾你有它 - 你的號碼存儲爲一個查找表中的文本,並作爲另一個數字。給每條線添加'將會修復它,但這是非常可怕的任務。點擊綠色箭頭也可以修復它,但是對於大型表格,優秀的默認方法會非常慢(並且它也會更改您的源數據,這對我來說是一個不允許的,因爲當您更新數據時,您必須再來一遍)。在這種情況下更改格式很少有幫助。

如果表中包含數字和查找值是數字存儲,如文本,你可以乘以1查找值:

=VLOOKUP(A2*1,C:D,2,FALSE) 

如果表包含「文本」和查找值數,你可以將它轉換爲像這樣的文本:

=VLOOKUP(TEXT(A1,0),C:D,2,FALSE) 
+0

+1爲字符串/數字解釋,-1爲無益的「技巧」在問題描述的情況下 - 查找值已經是一個數字,第一列表數組是字符串 – Aprillion

+0

death4pril,公平點,我有文字/數字錯誤的方式。可以用另一種方式翻轉它,但它需要一個數組公式(完成後按Ctrl + Shift + Enter){= VLOOKUP(A2,C:D * 1,2,false)}這個概念是相同的。如果沒有添加源數據,還有另外一種方法可以更新,我很高興得到更新 – RowanC

0

這是我的理論。在VLOOKUP中,如果查找值(A2)小於查找表(C:D)中的最小值,則返回N/A。當您在報價標誌(')前面添加A2時,不是數字。因此,例如,1002的UPC不再被視爲一千零二的數字,而是作爲字符串序列one-zero-zero-two。這可以讓VLOOKUP以不同的方式進行比較並避免N/A。

您可以嘗試列A中的Ctrl-1,並將其全部視爲文本。

+0

一個有效的理論。但是,它不起作用。如果這個理論是正確的,那麼爲什麼CONCATENATE(E2,A2)不適用於A列是UPC代碼而E列是'''的地方。連接的結果是完全相同的輸出,但當列A中粘貼這個新列時,它不適用於VLOOKUP。我的猜測是這是因爲A列的實際值必須包含''',而連接當你點擊它時,結果在單元格的值內沒有這個''''。 Tt只顯示在單元格的值中沒有'''顯示的UPC代碼。 –

+0

實際上,自從我進一步使用它之後,我會注意到,當我改變格式(即文本或常規數字)時,我收到了列左側的圖標。錯誤報告該號碼被存儲爲文本。我有一些選擇,其中之一是轉換爲一個數字。之後,它的作品就像魅力一般。謝謝你幫我解決這個問題! –

+0

這個理論是假的 - 參見[文檔](http://office.microsoft.com/en-001/excel-help/vlookup-function-HP010343011.aspx)甚至Excel本身的默認幫助文本 - 如果最後一個參數是'FALSE',只有精確匹配被發現,如果'TRUE',那麼數據需要被排序(A-> Z),對於TRUE +未分類的數據,VLOOKUP的行爲是完全沒用的 – Aprillion