Board logo

標題: vlookup 公式下拉後有的會抓到,有的會出現#n/a [打印本頁]

作者: 妤璇    時間: 2014-3-26 10:46     標題: vlookup 公式下拉後有的會抓到,有的會出現#n/a

我有工作表1和工作表2,在工作表1是出貨單,表2是合約標單
出貨單的項目名稱有設定下拉選單,只要選取下拉選單,單位及合約數量即可自動出現
但目前有個問題是我寫完公式後,有的會出現正確的結果,有的則會出現#N/A
我寫的公式如下
=IF(E9="","",VLOOKUP(E9,合約!$B$3:$D$2470,2,0))
查文說有可能是儲存格的格式,所以格式全改為通用格式
出現#N/A的地方還是#N/A
想請問還有什麼原因會造成部份可讀取,部份無法讀取。
作者: huijuang    時間: 2014-3-26 11:25

造成的原因有很多,建議你把檔案上傳上來看看
作者: owen06    時間: 2014-3-26 11:44

回復 1# 妤璇

    因為他比對不到資料的時候就會出現#N/A呀,有比對到資料就會秀出對應的數值,
    如果改成這樣,有比對到就會秀出對應數值,但沒比對到,就會空白:
    =IF(ISERROR(VLOOKUP(E9,合約!$B$3:$D$2470,2,0)),"",VLOOKUP(E9,合約!$B$3:$D$2470,2,0))

    記得OFFICE 2007以上有個IFERROR的函數,不過我沒2010的系統,沒辦法確定用法。如果沒錯的話是用:
    =IFERROR(VLOOKUP(E9,合約!$B$3:$D$2470,2,0),"")
作者: 妤璇    時間: 2014-3-26 13:43

本帖最後由 妤璇 於 2014-3-26 13:45 編輯

我要查詢的儲存格確定都有資料,所以才覺得很奇怪~.~
附件上傳了,麻煩各位前輩幫我看一下,謝謝!!
1、「出貨單」的單位及合約數量是參照「合約」工作表,有的可以讀取,有的出現#N/A。
       我自己在猜問題應該是出在「合約」或者「設備設定」裡頭,但完全看不出來是什麼問題。
       下拉選單的清單放在「設備設定」裡,是從合約裡整理出來的。
       無法讀取的儲存格,我有在「合約」中填滿黃色,但數量太多,無法一一比對,所以只有用一些些。
2、「出貨單」的K欄,是參照「出貨清單」的F欄數量,目的是要統計出貨清單中相同名稱的數量
      我用這個公式,會有數量有的沒加到的問題,請問有更好的公式嗎??
      =IF(ISERROR(VLOOKUP(E9,出貨清單!$E$3:$H$100000,2,0)),"0",VLOOKUP(E9,出貨清單!$E$3:$H$100000,2,0))+F9
作者: 妤璇    時間: 2014-3-26 15:31

問題在「設備設定」裡頭
我將「設備設定」重新整理,直接從合約」中複製過去,問題已解決,有可能是當初整理的小妹操作上有誤,或者有同事動過吧,非常感謝二位百忙之中能幫我
我決定用好的資料上鎖了。

我的第二個問題也讓我很頭痛,第一筆加上第二筆結果是正確的,再加上第三筆就變成減了…
是不是要加上SUM??或者我不該在後面加上+F9 ??
作者: huijuang    時間: 2014-3-26 16:22

回復 5# 妤璇

不知道第三筆變減←是何意
不過如果統計的話
可以用下列的公式看看行不行
=IF(ISERROR(SUMIF(出貨清單!E2:E2000,出貨單!E9,出貨清單!F2:F2000)),"0",SUMIF(出貨清單!E2:E2000,出貨單!E9,出貨清單!F2:F2000))+F9
作者: 妤璇    時間: 2014-3-26 16:46

使用 =IF(ISERROR(SUMIF(出貨清單!E2:E2000,出貨單!E9,出貨清單!F2:F2000)),"0",SUMIF(出貨清單!E2:E2000,出貨單!E9,出貨清單!F2:F2000))+F9
加總的數量就正確了,謝謝呢!!

我原本想要用=IF(E9="","",SUMIF(出貨清單!$E$3:$E$1048576,E9,出貨清單!$F$3:$F$1048576)+F9),想請問加上ISERROR的差別在哪??
作者: huijuang    時間: 2014-3-27 10:10

本帖最後由 huijuang 於 2014-3-27 10:13 編輯

使用sumif應該不用ISERROR
我做的時候是直接拿你之前的公式來改
所以忘了把ISERROR拿掉了

=IF(E9="","",SUMIF(出貨清單!$E$2:$E$2000,出貨單!E9,出貨清單!$F$2:$F$2000)+F9)
作者: Hsieh    時間: 2014-3-27 11:05

回復 4# 妤璇

VLOOKUP出現#NA的錯誤,不外乎找不到資料
以E3內容
點光 (3F~35F東南向.西北向陽台上方格柵)
用=COUNTIF(合約!B:B,出貨單!E9)可得到1,表示內容一定有對應到
但為何出錯?原因在於波浪號
公式改為=IF(E9="","",VLOOKUP(SUBSTITUTE(E9,"~","~~"),合約!$B$2:$C$2447,2,0))
就找到資料了
E14與E15是你清單資料鍵入錯誤
清單是-號,合約內容是下線_
[attach]17881[/attach]
清單來源應該與實際公式參照的範圍為內容,以避免資料輸入錯誤
作者: ML089    時間: 2014-3-27 13:57

回復 1# 妤璇


    * ~ 為VLOOKUP、MATCH ..等的特殊符號,造成查詢錯誤

以下函數使用時支援萬用字元,查詢文字中有 ? * ~ 等符號要注意使用

COUNTIF
HLOOKUP
MATCH
SEARCH
SUMIF
VLOOKUP

萬用字元可參考
http://office.microsoft.com/zh-tw/excel-help/HP005203612.aspx

出貨單!E9 = "點光 (3F~35F東南向.西北向陽台上方格柵)"
因字串內有 ~ 字元會造成查詢錯誤
J9
原公式 =IF(E9="","",VLOOKUP(E9,合約!$B:$D,3,))

改為 =IF(E9="","",VLOOKUP(SUBSTITUTE(E9,"~","~~"),合約!$B:$D,3,))
或改為 =IF(E9="","",LOOKUP(,0/(E9=合約!$B:$B),合約!$D:$D))


出貨單!E14 = "EMT導線管  1_1/2" (E51)"
合約!B1070 = "EMT導線管  1-1/2" (E51)"

請將 _ 改為 - 就對了

E15 : "Web 網路通訊伺服主機 573992 Ehternet Gateway TCP.IP_SCS"
問題同上
作者: 妤璇    時間: 2014-3-28 10:23

謝謝!!
我總覺得函數好難,可是超好用的,這次真的要認真的學了
作者: ML089    時間: 2014-3-29 21:21

回復 12# 妤璇

你要按各意見下方的回覆,系統才會通知該人員,不然你的意見容易被忽略過去。

有空多來本區觀摩別人的公式,很快就能進步
作者: 妤璇    時間: 2014-3-29 22:37

回復 13# ML089


    好,謝謝你!!




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)