- ベストアンサー
Excel2003 IF関数について
お世話様になります。質問をさせて下さい。 Excel2003を使用しており、IF関数にて下記の点を求めたいのですがご指導願います。 ------------------------------------------------ 行A 行B 【リスト】 【ポイント】 (A1) トマト (B1) 1 (A2) さくらんぼ (B2) 2 (A3) キャベツ (B3) 1 ------------------------------------------------ シート1に、上記のような【リスト】・【ポイント】という名前を指定した表を作ってあります。 シート2のセルA2に、トマトorキャベツと入力した場合は「1」ポイント、それ以外は「2」を自動的に表示させたいのですが、 まだ何も入力をしていないセルにも下記のような式をいれておくとすべて「1」が表示されてしまいます。 =IF(OR(A2=リスト!$A$1,A2=リスト!$A$3,),1,2) そもそもこのような式ではなく、A1・A3の場合は「1」で、A2の場合は「2」と指定すればよいのでしょうか? よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>上記と同様まだ入力していないところに「#N/A」と出てしまいます。 >こういうのは表示させないようにする方法があるのでしょうか?? たとえば、さくらんぼとキャベツの間に1行挿入して、 (A1) トマト (B1) 1 (A2) さくらんぼ (B2) 2 (A3) 0 (B3) (A4) キャベツ (B4) 1 このようにしておきます。A3は0にしておき、B3には何も書きません。 未入力のところは 0 になります。 セルの書式設定で、ユーザー定義を選び、種類に # と入力しておけば、0も表示されなくなります。
その他の回答 (3)
> まだ何も入力していないところに「1」が表示されてしまうんです。 #1さんの式をお借りするなら、 =IF(ISBLANK(A2),"",VLOOKUP(A2,リスト!$A$1:$B$3,2,FALSE)) とすればよいです。 ただ、 =IF(ISBLANK(A2),0,VLOOKUP(A2,リスト!$A$1:$B$3,2,FALSE)) として、 B列の表示書式を「#,##0;;」とすれば「0」は表示されなくなりますし、 B列の値を別の式の参照元にしてもエラーが起きません。
お礼
ご説明ありがとうございます! こういうやり方もあるんですねーー。勉強になります。 たしかにエラーが起きなくなりました。 また明日会社で実際にやってみる際に参考にさせていただきます^^ 本当にありがとうございました!
- shinkun0114
- ベストアンサー率44% (1553/3474)
ふと気づきましたけど、シート2の名前は「リスト」になってますよね?
- shinkun0114
- ベストアンサー率44% (1553/3474)
ためしにやってみましたけど、トマト・キャベツ以外の場合はちゃんと2になりますよ? あるいは、そこまできちんとリストを作ってあるなら、VLOOKUP関数を使ってみてはいかがでしょう。 =VLOOKUP(A2,リスト!$A$1:$B$3,2,FALSE) お試しください。
補足
さっそくのご説明ありがとうございます! わたしの書き方が悪くて申し訳ないのですが、 トマト・キャベツ以外のときに「2」は表示されるのですが、 1年かけてこの表を使っていく予定なので、 たとえば100行目などの下のほうまで式を入れておくと、 まだ何も入力していないところに「1」が表示されてしまうんです。 見映えだけの問題なのですが何か解決方法がないかなーと思いまして。 VLOOKUPのご指導もありがとうございます! さっそくこちらもやってみたのですが、 上記と同様まだ入力していないところに「#N/A」と出てしまいます。 こういうのは表示させないようにする方法があるのでしょうか??
お礼
たびたびありがとうございます! なるほどー!そんなやり方があったんですね。 無事に何も表示されなくなりました! 詳しくご説明をいただきましてありがとうございました^^ 仕事で使うため困っていたのですが助かりました。 また何かありましたらよろしくお願いいたします。