みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルのif関数のエラー

エクセルでif関数を使ってデータ処理をしたのですが、上手くいき
ません。何がおかしいのかが分からない状態で困っています。
状況
 A B C D E
1 : + = ? 関数式

とセルに入力してあるとします。(A1=:,B1=+,C1==,D1=?)
関数式のセルに以下の様に入力しました。
=IF(ISBRANK(D1)=TRUE,E1="",VLOOKUP(D1,$A$1$B$15,2,FALSE))
目的はVLOOKUPだけではD1が空白の時にE1にNAMEと表示されるのを
避ける事でした。

そうすうとD1にA列の数字を入力すると、それに対するB列をE1に
表示するようになるのですが、D1が空白の時はB1が表示されて
しまってます。
 また一旦D1に入力した後、D1をデリートして空白にしてもE1には
もとの数値がそのまま表示されたままになってしまいます。

文章で表現している分、かなり分かりにくい説明になってしまって
いますが、お詳しい方いましたらアドバイスお願い致します。

投稿日時 - 2009-09-24 09:35:38

QNo.5314517

すぐに回答ほしいです

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

A1=:,B1=+,C1==,D1=?
このように説明されていますが何を意味しているの理解できません。
関数式はD1に入力してとのことで
=IF(ISBRANK(D1)=TRUE,E1="",VLOOKUP(D1,$A$1$B$15,2,FALSE))
を示しておられますがこのままでは#NAME?が表示されるのは関数式が正しくないからです。
初めにISBRANKはISBLANKの間違いですね。また、E1=""は間違いですね。IF 関数はD1が空白のときはE1を空白にしなさいとなるのですが、E1セルに式を書かれているのですから単に""とすればよく。関数を使ってE1セルを空白にしなさいとの指令を他のセルから行うことはできません。そのセルを空白にしたければそのセルに関数式を入力しておくことが必要です。
VLOOKUP関数の引数となるセルの範囲には$A$1:$B$15とセル番地の間に:を付けることが必要です。
FALSEとTRUEの使い方は、ここではA列でのデータが昇順に並べられているときにのみTRUEが使えますが通常はFALSEのままでよいでしょう。
D1セルへの入力の式は次の式でよいと思いますね。
=IF(ISBLANK(D1)=TRUE,E1="",VLOOKUP(D1,$A$1:$B$15,2,FALSE))
または
=IF(D1="","",VLOOKUP(D1,$A$1$B$15,2,FALSE))

投稿日時 - 2009-09-24 13:30:13

お礼

早速のご回答に感謝致します。

説明文が上手く表現できずに失礼致しました。
#NAME?が表示されるのは、数式が正しくないからなのですね。
また詳しいご説明に感謝致します。
 ご指摘の通り修正しましたら、上手く処理できました。

投稿日時 - 2009-09-24 15:12:12

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

突込みどころ満載です
>=IF(ISBRANK(D1)=TRUE,E1="",VLOOKUP(D1,$A$1$B$15,2,FALSE))
#1さんも言われている「E1=""」は「""」
範囲指定の間違い「$A$1$B$15」は「$A$1:$B$15」:が抜けてる
「ISBRANK」は「ISBLANK」では
「FALSE」は「TRUE」の方が良いと思いますが
=IF(ISBLANK(D1)=TRUE,"",VLOOKUP(D1,$A$1:$B$15,2,TRUE))
こういうことがしたいのでは?
しかし、定番は
=IF(COUNTIF($A$1:$A$15,D1)=0,"",VLOOKUP(D1,$A$1:$B$15,2,TRUE))
この様な感じになると思いますが、どうでしょうか?

以上 参考まで

投稿日時 - 2009-09-24 10:20:21

お礼

早速のご回答に感謝致します。

修正してみたら上手くいきました。非常に勉強になりました。
ありがとうございました。

投稿日時 - 2009-09-24 15:08:57

ANo.1

=IF(ISBRANK(D1)=TRUE,E1="",VLOOKUP(D1,$A$1$B$15,2,FALSE))
この式をE1に記入するのでしたら E1="" を""にする。
Excelの式は自分自身以外のセルの値を変えることはありませんからE1=は不要です。

投稿日時 - 2009-09-24 09:53:10

お礼

ご回答ありがとうございます。

投稿日時 - 2009-09-24 15:05:16

あなたにオススメの質問