2013-03-29 153 views
0

我有一個下拉列表(數據驗證),使用從單獨的工作表中提取數據的vlookup填充其他單元格。如果字段爲空,如「沒有輸入數據」,我想包含一條錯誤消息。不過,我得到的是「0」。下面是我使用的公式:Excel公式Iferror

=IFERROR(VLOOKUP(ChildName,Children,6,FALSE),"No data entered") 

然後我把它改爲一個ISERROR:

=IF(ISERROR(VLOOKUP(ChildName,Children,5,FALSE))=FALSE,"No data entered", VLOOKUP(ChildName,Children,5,FALSE)) 

這適當地提供錯誤消息,但現在我的下拉列表不填充其他單元格! 我在做什麼錯?謝謝!

回答

1

看你的公式,我看到了兩個值得注意的地方:

    在IFERROR
  1. 返回第6列中,ISERROR,第5!
  2. 在ISERROR中,當您發現某些內容時,您會顯示錯誤消息,正如您所說的=IF(ISERROR=FALSE,ErrorMsg,...)! 解決您的問題,簡單地使用這個公式:
    =IF(ChildName="","No data entered",IFERROR(VLOOKUP(ChildName,Children,6,0),"Cannot find "&ChildName))

啊,我明白了!看看這個問題 - Have Excel formulas that return 0, make the result blank。它顯示了所有的方法。

我的最愛是=IFERROR(1/1/VLOOKUP(ChildName,Children,6,0),"No data!")。只適用於數字。使用=IF(VLOOKUP(ChildName,Children,6,0),VLOOKUP(ChildName,Children,6,0),"No data!")

爲了安全起見,這個版本應該考慮到所有潛在問題護理:=IFERROR(IF(VLOOKUP(ChildName,Children,6,0),VLOOKUP(ChildName,Children,6,0),"No data!"),"No data!")

+0

感謝您的建議。第一點只是我清理公式,所以不是這樣。然而,第二點是,讓我覺得下拉不是填充其他單元格 - 它實際上仍然是,但正如你所指出的那樣,因爲他們有數據,我沒有理解。 – WixLove

+0

我不認爲你的公式適用於我,因爲我希望孩子的名字出現在下拉菜單中,然後用vlookup檢查另一個工作表中的不同單元格(不僅僅是孩子名)。所以如果a2爲空,我希望它填充單元格中的「無數據」,如果不爲空,則填寫該值。我有大約10個電池(A2-A12),我希望它檢查。我覺得IsError是最接近的,但是如果我將put = TRUE,那麼當單元格爲空時它不會填充。 – WixLove

+0

不確定我完全理解。所以用戶應該使用一個下拉菜單輸入A2 - 但是如果他什麼都不輸入,應該用「沒有值」代替?沒有宏的唯一方法是使用自定義格式'0,0,無數據「,@',但這對於任何後續公式都沒有用處。 –