• ベストアンサー

エクセルについて

A列に判定する値が入っています。 A列の値が1~18ならば3、19~24ならば4、25~30ならば2、といったような条件のB列に返したいのですが簡単な式はありませんか?実際は条件が10以上あるので、IF関数とAND関数の組み合わせだとすごく長くなってしまいます。できれば短めの式でお願いしたいのですが・・・

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

表示する内容が固定なら 0 " " ←スペース一つ 1 3 19 4 25 2 31 Error という表を作成して =VLOOKUP(判定するセル座標,上記の表の絶対参照座標,2,TRUE) 表を作るのが嫌なら =LOOKUP(判定するセル座標,{0,1,19,25,31},{" ",3,4,2,"ERROR"}) で上記と同じ結果になります。

mipmip
質問者

お礼

ご回答ありがとうございます!!ちなみに、LOOKUP関数で{}のカッコのなかは、範囲として捉えられてるということですか??

その他の回答 (1)

  • NIWAKA_0
  • ベストアンサー率28% (508/1790)
回答No.2

やはり一覧表を作るのが、後で条件を追加したり、 同じ条件で別の値を返す式を作ったりできるので便利だと思いますよ。 あとのチェックもラクですし。 #1さんの一つ目の式も、LOOKUP関数で記述することが出来ます。 (こちらの方が私の好みです)   D列 E列 1  0 (空欄) 2  1  3 3  19  4 4  25  2 5  31 (空欄) で、例えばA1セルの値を判定する式は =LOOKUP(A1,$D$1:$D$5,$E$1:$E$5) と書くことが出来ます。 ただしこの表ですと1に満たない場合と31以上の場合はゼロが帰ってきます。 エラーとかにしたいなら、空欄の代わりになにか入れてください。 D列に入れる値に注意! 境界値付近で何度か「試運転」してみた方が良いと思います。 このやり方ですとD列とE列の間に別の返り値の一群を挿入しても、 式の修正の必要はありません。 (VLOOKUPだと、列番号を2から3に変更しないといけない)

mipmip
質問者

お礼

大変わかりやすかったです!ありがとうございます。

関連するQ&A

専門家に質問してみよう