• ベストアンサー

VLOOKUP関数 正しい値が返されない

sheet1にデータリストを入力、sheet2のA1にコード番号を入力し以下の表にSheet1の対象データを参照するというところ(VLOOKUP関数のみ)まではよかったのですが、元データに空欄の時は「データなし」と表示過去の質問を参照して下のような式に変更しました。 =IF(ISERROR(VLOOKUP($A$1,範囲,列番号,"")),”データなし”,(VLOOKUP($A$1,範囲,列番号,FALSE))) はじめは正しく表示はされたのですが、A1に違う値を入力し直しても値が変化しません。 エラー表示はでませんが、数式がどこか間違っているのでしょうか。 どなたかお知恵をお貸しください。

質問者が選んだベストアンサー

  • ベストアンサー
  • dejiji-
  • ベストアンサー率38% (327/858)
回答No.1

ISERROR関数は、対象セル内にエラー表示された場合に答えを返してきますので、セル内が[#VALUE][#N/A][#REF!][#DIV/O!][#NUM!][#NAME?][#NULL!]の7つのエラーに対して反応しますから、この場合はISBLANKを使い、空白セルに対して反応させる必要があると思いますが。 ISERRORの変わりにISBLANKに変更したらどうでしょう。確認していないのでなんとも言えませんが。

mb2
質問者

お礼

すばやい回答ありがとうございます。 早速ISBLANKに変更しました。 一挙解決です。 >ISERROR関数は、対象セル内にエラー表示された場合に答えを返してきますので、セル内が[#VALUE][#N/A][#REF!][#DIV/O!][#NUM!][#NAME?][#NULL!]の7つのエラーに対して反応・・・ なるほど。勉強になりました。 本当にありがとうございました。

その他の回答 (1)

回答No.2

試していませんが、 =IF(ISERROR(VLOOKUP($A$1,範囲,列番号,FALSE)),”データなし”,(VLOOKUP($A$1,範囲,列番号,FALSE))) なんて事ではないですよね?

mb2
質問者

お礼

すばやい回答ありがとうございます。 確かにその点も怪しいなぁと思ったので修正してみました。 該当のセルは見に行くのですが、「データなし」表示がでず、空欄のまま(=VLOOKUPのみと同じ数値を返してくる)でした(・_・、) No1の方の「ISBLANK」で解決しました。

関連するQ&A