- 締切済み
Excel 長すぎるif関数
こんにちは。Excelを使って、条件によって表す表示を変える場合、 例えばa1のセルには0~100までの任意の数字を入れるとして、b1のセルにa1の数字に応じていろいろな表示をしたい場合(具体的には100ならAを表示、90~99ならB、70~89ならC、55~69ならD・・・といったように)、if関数を使うと思いますが、 =if(a1=100,"A"1,if(a1>=90,"B",if(a1>=70,"C",if・・・・)))というように長々と続きますね。条件が少ないうちはいいのですが、条件が多くなると、大変複雑な式になり、入力もしづらいし、頭も使うし、閉じる括弧の数もわからなくなるし、作成に時間もかかりますよね。2つ以上の条件が重なる(例えばA1が90~99の範囲でかつa2がAならb1にB1と表示するなど)など複雑になってくるともうお手上げです。 これらを短時間で要領よく作成する方法はないでしょうか?次の観点で教えてください。 1 if以外の良い関数はあるか?または良い機能はあるか?それとも複雑であってもif関数が妥当なのか? 2 (if関数が妥当であるとして)複雑なif文の作成を簡単にできる方法があるか?あるいはそんなソフトがあるか? 3 やっぱりそういうのはVBAとかで作った方がいいのか?(できれば使いたくないのですが。)
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- jun-pei
- ベストアンサー率50% (1/2)
まだまだ私も勉強中の身ですが、自分の勉強の為にもお答えさせてくださいね。 No.1さんが言うように確かに、いくつか方法があると思います。 ご質問の内容から察すると、条件を設定するための欄を別のところに設けて、b1への入力値に応じて、その欄の中から条件の合うものを選択する、という感じが適していて、それはVLOOKUP関数でなくても、LOOKUP関数で十分なのかなと思いました。 ちょっと長くなって申し訳ないのですが… (1)まずこれはどこでも構わないのですが、仮にセルC1に100、C2に90、C3に80…という具合に、C10まで条件の最低の値を設定したとします。 (2)次にセルD1に1位(A…だとセル名と混同してしまうので)、セルD2に2位、と、A1の入力に応じて表示させたい結果を設定しておきます。 (3)B1に=LOOKUP(A1,C1:C10,D1:D10)と入力する。 これでできるんじゃないでしょうか? Excel、まだ私も勉強中ですが、驚くほど、あの手この手があるようですよ。
- imogasi
- ベストアンサー率27% (4737/17069)
>if関数を使うと思いますが・・ そんなことはありません。関数をあまり使ったことがない人が、IF文を使った質問が多い。 1も2も3の質問も見当はずれです。ビジネスではVLOOKUPは必須・有用な関数です。日桂PC21などには、エクセルの関数の記事にはいつものってます。 VLOOKUP関数のTRUE型が適しているでしょう。 表の作り方について、区切りの近辺の1を加えるかどうかに工夫がいりますが、表さえ作れば=VLOOKUP(A1,$B$1:$C10,2,TRUE)のようになります。 表はB1:C10にある場合で、範囲はB列、コードはC列に対応表を作ります。 $は略さないように。 VLOOKUP関数は、VBAでもWorksheetFunctionで使えます。
- mshr1962
- ベストアンサー率39% (7417/18945)
方法はいくつかあります。 CHOOSE関数を使う方法 =CHOOSE(A1/10+1,0~9の結果,10~19の結果,....,100の結果) VLOOKUP関数を使う方法 下記の表を作成して 0 0~9の結果 10 10~19の結果 ・ ・ 100 100の結果 =VLOOKUP(A1,表の範囲,2,TRUE)