前回、関数はこの5つさえ知っておけばだいたいOKと書きました。
【Excel/関数】関数はこの5つさえ知っていればOKだと思う~(私にもできたんだから)あなたにもできる!エクセル関数を使いこなそう① ~
①IF
②COUNTIF
③SUMIF
④VLOOKUP
⑤LEFT,RIGHT,MID(文字列取り出し関数)
今回はそのうちの ① IF関数 をざっくり解説。
IF関数はエクセルを開けば使わない日はないくらいよく使います。超スタメンです。
■ IF関数とは
もし条件△△だったら〇、条件△△ではなかったら✕ という条件により二通りの答えを返す条件分岐関数です。
書き方はこうです。
= IF ( 条件 , 〇, ✕ )
条件がOK!(TRUEまたは真といいます)なら〇を返し、それ以外の場合は✕(FALSEまたは偽といいます)を返します。
たとえば、テストの点数が80点以上なら合格、80点未満なら不合格の場合は以下のようになります。
B列に点数、C列にIF関数を入力しています。C列の左にC列の関数を表示しています。
条件の部分は B2>=80 つまり「セルB2の値が80以上である」
セルB2の値は80なので「合格」の答えを返しています。
5行目を見ているとセルB5の値は65なので 条件「>=80」を満たしていないので「不合格」の答えを返しています。
関数の挿入から行うと、以下の図のようになります。
■条件が複数ある場合
IF関数は入れ子にすることができます。入れ子は7個が上限・・・と思っていたらそんなことはなかった。
Excel2003までは7個が上限、エクセル2007・2010では64個までだって!
上の例の続きで点数が80点以上ならA、65点以上ならB、50点以上ならC、35点以上ならD、35点未満ならEをやってみる。
=IF(B2>=80,”A”, IF(B2>=65,”B”,IF(B2>=50,”C”,IF(B2>=35,”D”,“E”))))
セルB2の点数を判定し、「B2が80点以上ならA」、80点以上でない場合は次の青い部分のIF式に流れます。青い部分で「65点以上の場合はB」となります。
そうでない場合は紫のIF式に入ります。紫の部分で「50点以上の場合はC」となります。
そうでない場合は緑のIF式に入ります。緑の部分で「35点以上の場合はD」となります。
そうでない場合は赤の部分が適用となります。
セルB2の値が「20」の場合は「E」が答えとして帰ります。
入れ子が3個だけれども。これでも見にくい!入れ子が64個までできるとはいえ、64個なんてもはや判読不能ではないか。
なお、左から順に条件式の判定となるので、次のようにすると正しい答えが得られません。
=IF(B2>=35,”D”,IF(B2>=50,”C”,IF(B2>=65,”B”,IF(B2>=80,”A”,”E”))))
セルB2の値が「60」の場合、答えは「C」となってほしいのに、最初の「>=35」が当てはまってしまうので、答えが「D」となってしまいます。
点数が低い順からやりたい場合は以下のようにすると最初の式と同じ答えになります。
=IF(B2<35,”E”,IF(B2<50,”D”,IF(B2<65,”C”,IF(B2<80,”B”,”A”))))
■ IF式の中でほかの関数を使う
IF式の中で関数を使うこともできます。
スーパー各社、商品の売上合計個数が50以上だったらランクA、50未満だったらランクBとしたい場合。E列にIF式を入力しています。式の内容は青い吹き出しに表示しています。SUM関数を使っています。
=IF(SUM(B2:D2)>=50, “ランクA”, “ランクB”)
商品の売上個数が50個以上、それを満たさなくても高級メロンの売り上げが10以上だったらランクAとすることとします。
その場合の式は以下のようになります。
=if(OR(SUM(B2:D2)>=50,D2>=10),”ランクA”,”ランクB”)
OR関数とSUM関数を使っています。めでたくAスーパーもランクAになりました。高級志向のお客様が多いんですね。
なお、商品の売上個数が50個以上、かつ高級メロンの売り上げが10以上という厳しい条件にする場合はOR関数をAND関数にします。
=if(AND(SUM(B2:D2)>=50,D2>=10),”ランクA”,”ランクB”)
ランクAのスーパーはなくなってしまいました。
■ IF関数の親戚 IFERROR
各スーパーに目標に対する売り上げで達成率を出します。
Cスーパーは諸事情により目標がありません。
すると、エラー#DIV/0が出てしまいます。0では割れません!というエラーですね。
回避するために、IFERROR関数を使って以下の式にしました。
=IFERROR(C4/B4,”-“)
そうするとセルD4はエラーではなく「-」が表示されます。
IFERROR関数は以前はなかったので(Excel2007で登場したそうです)、前は
=IF(ISERROR(C4/B4),”-“,C4/B4)
と、IFとISERROR(※)を組み合わせてやっていました。IFERRORの登場でべんりになりました。
※ISERROR:引数がエラーの場合はTRUE(真)を返し、エラーでない場合はFalse(偽)を返す関数
■ IF関数の進化系 IFS
今回IFについてネットを見ていて初めて知ったのですが、IFSという関数があるそうです。Excel2019、またはOfficeサブスクリプションを利用している場合使用できるとのこと。今まで入れ子にしていたIF式を簡潔に書くことができます!最大127個の条件を設定できるとのこと(ははは。どんだけ~)
使い方
=IFS( 条件1, 条件1が真の場合, 条件2, 条件2が真の場合, 条件3, 条件3が真の場合 )
左から順に条件にあてはまるかを判定していき、条件が当てはまる場合は指定された答えを返します。条件1が当てはまる場合は条件1が真の場合の答えを返し、当てはまらない場合は条件2の部分に流れます。条件2が当てはまる場合は条件2が真の場合の答えを返します。当てはまらない場合は条件条件3に・・・と順に条件を判定していきます。
じゃあ、条件すべてに当てはまらない場合は?というと、条件すべてに当てはまらない場合は #N/A(※) が返ります。条件すべてが当てはまらない場合の答えも用意したいんだけど…という場合は、条件の部分に「TRUE」を入力するとすべて「TRUE(真)」になるのですべての場合を受け止めます。
※#N/A:値が見つかりませんよ、というエラー値。ノーアサインと読むそうな。(ずっとノンアンサーだと思っていた( ゚Д゚)
ん?Not Available(ノットアヴェイラブル)という読み方もありエヌエー、Not
Answered という説もあり。色々なんすね。
使用例です。
B列の点数が90点以上の場合は「A」、85点以上の場合は「B」、80点以上の場合は「C」、75点以上の場合は「D」、それ以外、つまり75点未満の場合は「E」とします。
「それ以外は」の部分の条件式に TRUE を使っています。
= IFS ( B2 >=90 , “A” , B2>=85 , “B” , B2>=80 , “C” , B2>=75 , “D” , TRUE , “E” )
TRUEの部分に1でも同じ結果となります。TRUEは1、FALSEは0だそうな。
= IFS ( B2 >=90 , “A” , B2>=85 , “B” , B2>=80 , “C” , B2>=75 , “D” , 1 , “E” )
いやあ、今回自分でも知らなかったことを色々発見。勉強になったなあ(*’▽’)
関数はこの5つさえ知っていればOK!シリーズ
- 【Excel/関数】関数はこの5つさえ知っていればOKだと思う~(私にもできたんだから)あなたにもできる!エクセル関数を使いこなそう① ~
- 【Excel/関数】ザックリ解説COUNTIF関数~(私にもできたんだから)あなたにもできる!エクセル関数を使いこなそう③ ~
- 【Excel/関数】ザックリ解説SUMIF関数~(私にもできたんだから)あなたにもできる!エクセル関数を使いこなそう④ ~
- 【Excel/関数】ザックリ解説VLOOKUP関数~(私にもできたんだから)あなたにもできる!エクセル関数を使いこなそう⑤ ~
- 【Excel/関数】ザックリ解説 文字列操作関数~(私にもできたんだから)あなたにもできる!エクセル関数を使いこなそう⑥ ~
コメント