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

解決済みの質問

Excelの関数を勉強始めました。複数ある場合は?

はじめてのExcelを使い出して勉強中です。
やっとIFの関数は理解できたのですが、複数ある場合の関数式がよく分かりません。

地震を例として、IF文?AND文?を使って下記のようなものを作りたいと考えています。

0.1~2.4 が入力された場合は、答えに「1~2」を
2.5~3.4 が入力された場合は、答えに「3」を
3.5~4.4 が入力された場合は、答えに「4」を
4.5~4.9 が入力された場合は、答えに「5-」を
5.0~5.4 が入力された場合は、答えに「5+」を
5.5~5.9 が入力された場合は、答えに「6-」を
6.0~6.4 が入力された場合は、答えに「6+」を
6.5~ が入力された場合は、答えに「7」を表示させるには、

どのような関数式を作れば良いのでしょうか。
どうぞ宜しくお願いします。

投稿日時 - 2013-12-05 01:25:38

QNo.8373678

困ってます

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

>複数ある場合の関数式がよく分かりません。

エクセルで関数を重ねて使うには,基本的に次の2つの方法があります。


方法1)重ね合わせ方式

=IF(A1="","", IF(A1<=2.4,"1~2", IF(A1<=3.4, 3, IF(A1<=4.4, 4,…,IF(A1<=6.4,"6+",7))) …)

といった具合に,
A1が空白なら空白
そうでないときA1が2.4以下なら1-2,
そうでないときA1が3.4以下なら3
そうでないときA1が4.4以下なら…
と,ひたすら「もし~なら,そうでないなら…」と分岐させていきます。

エクセルの関数初心者さんは,まずこうやってひたすら「自分の理解出来るIF関数だけひたすら重ねて」数式を書きたがる傾向があります。ただしエクセルの関数は,こうやって「重ね合わせできる段数」に数の限りがあります。
ご利用のエクセルのバージョンがご相談に明記されていないので具体的な説明は割愛しますが,バージョンによって重ねられる段数は違います。重ねられる段数を超えて関数を重ねようとすると,エラーになります。




方法2)継ぎ足し方式

=IF(AND(0.1<=A1,A1<=2.4),"1~2","") & IF(AND(2.5<=A1,A1<=3.4),3,"") & IF(AND(3.5<=A1,A1<=4.4),4,"") & … &IF(6.5<=A1,7,"")

といった具合に,
もし0.1~2.4なら「1~2」,それ以外は無言
もし2.5~3.4なら「3」,それ以外は無言

と,条件限定でコタエを表示させ,それを合体させて最終結果を表示させるやり方でもできます。
この方式は,方法1と違って各分岐について「関数を重ね合わせていない」事を理解してください。重ねてないので,エクセルの関数の重ね合わせの制約に関係なく,必要なだけ継ぎ足していく事が出来ます。

難しい事は何一つしていないとても簡単なやり方ですが,全ての条件を継ぎ足して延々ダラダラと数式を書き連ねていくのはメンドクサイです。



方法3)もっと合理的な関数を使う

既に寄せられている回答のように,対応表を用意してVLOOKUPを利用してみるなど,エクセルには「使えるようになると便利な関数」が沢山用意されています。その一つ一つをここで紹介するのは大変ですしご質問の趣旨でもありませんので,ネットなど活用して適宜調べてみてください。

投稿日時 - 2013-12-05 12:10:29

お礼

今までは重ね合わせ方式でしたが、継ぎ足し方式やVLOOKUPなど、1つの目的でもやり方は複数あるんですね。

非常に勉強になりました。ありがとうございます。

投稿日時 - 2013-12-05 15:15:03

ANo.3

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

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

回答(3)

ANo.2

こんにちは!
一例です。

↓の画像のように表を利用する方法もあります。

画像ではB2セルに
=IF(A2="","",VLOOKUP(A2,D:E,2,1))
という数式を入れオートフィルで下へコピーしています。

※ VLOOKUP関数のTRUE型の方法になります。m(_ _)m

投稿日時 - 2013-12-05 08:21:20

お礼

VLOOKUPを使うと簡単に作れるようになるるんですね。
ありがとうございます。

投稿日時 - 2013-12-05 15:15:45

ANo.1

 今仮に、元の数値を入力するセルのセル番号がA1セルであるものとしますと、答えを表示するセルには次の様な関数を入力されると良いと思います。

=IF(A1<0.1,"",LOOKUP(A1,{0.1,2.5,3.5,4.5,5,5.5,6,6.5;"1~2","3","4","5-","5+","6-","6+","7"}))

投稿日時 - 2013-12-05 02:03:49

お礼

,LOOKUPって、あるんですね。
ありがとうございます。

投稿日時 - 2013-12-05 15:16:18

あなたにオススメの質問