質問: 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とかで作った方がいいのか?(できれば使いたくないのですが。)
回答: >if関数を使うと思いますが・・ そんなことはありません。関数をあまり使ったことがない人が、if文を使った質問が多い。 1も2も3の質問も見当はずれです。ビジネスではvlookupは必須・有用な関数です。日桂pc21などには、エクセルの関数の記事にはいつものってます。 vlookup関数のtrue型が適しているでしょう。 表の作り方について、区切りの近辺の1を加えるかどうかに工夫がいりますが、表さえ作れば=vlookup(a1,$b$1:$c10,2,true)のようになります。 表はb1:c10にある場合で、範囲はb列、コードはc列に対応表を作ります。 $は略さないように。 vlookup関数は、vbaでもworksheetfunctionで使えます。