Deprecated: Constant E_STRICT is deprecated in /NF/home/kyoin0/shimizu/public_html/dokuwiki/inc/init.php on line 42
syokyu:s12

目次

第12回 EXCEL IF関数

戻る

今回はEXCELの関数の一つである「IF」(イフ)関数について解説をします。

教科書を持っている場合は、第4章11「条件判定と順位付け」P.152も合わせて参照してください。

練習問題のダウンロード

演習するために、以下の練習問題をクリックし、ダウンロードして開いてください。

練習問題 syokyu12example.xlsx

ファイル内の設問に回答し、moodle に提出してください。

関数のおさらい

まず最初に、EXCELの関数について復習をしておきます。

EXCELでは「関数」を利用すると、特定の処理を簡単に行えます。
関数は、セルに以下のような数式を書くことでその効果を発揮します。

= 関数名 ( 引数 , 引数 , 引数 … )
関数の基本形

名前 概要
関数名 関数の名称。
関数を指定して様々な処理を行えます。
SUM / AVERAGE / COUNTA など
引数 関数の計算に使用する値。
「ひきすう」または「いんすう」と呼びます。
複数書く場合はカンマ「,」で区切ります。
セル A1 / セル範囲 A1:B1
数値 123 / 文字列 "テスト" など

具体例

=SUM関数名( A1:C10引数 )
SUM関数の例

上の場合、A1セルからC10セルまでの範囲に書かれている数値を全て合計し、その結果を画面に表示します。

これが基本的な関数の書き方でした。

今回は関数のうちの一つである「IF」(イフ)関数を使った練習問題に取り組みます。

IF関数とは

IF関数を利用すると、特定の条件を満たしているかどうかを自動的に判定し、その結果に応じて画面に表示する内容を変えられます。

2種類の内容のうちのどちらかが画面に表示されるので、「YES/NO判定」や「合否・不合格判定」など、2択を自動的に行えるメリットがあります。

例えば、注意が必要な箇所に自動的にメッセージを出すようにすれば、データのチェックなどにも使えますので、ぜひIF関数を活用してください。

IF関数の書き方

IF関数は下のように3つの引数を必要とします。

=IF( 論理式 , 真の場合 , 偽の場合 )
IF関数の基本形

3つの引数はそれぞれ「論理式」「真の場合」「偽の場合」と呼ばれます。
それぞれについて、以下で解説します。

論理式とは

IF関数では判断の元になる「特定の条件」を定めるための式を「論理式」と呼びます。

=IF( 論理式 , 真の場合 , 偽の場合 )
論理式はこの部分

論理式」で定めた条件を満たしたら「真の場合」の処理、条件を満たさなかった場合は「偽の場合」の処理のどちらか一方の処理が実行されます。

真か偽か、どちらかが実行されるIF関数

論理式の書き方

論理式は具体的には、A1 > 1200A1 = B1*5%A1 = "男" のように書きます。 簡単に言うと ○>○ のような形式で、「右辺」と「左辺」を不等号などを使って「比較」するように書きます。

右辺と左辺

論理式の右辺と左辺には、それぞれ以下のようなものを書けます。

比較対象 説明
セル A3 指定のセルに書かれた値を比較します。
セルの場所を入力するか、対象セルを直接クリックします。
数値 1200 指定の数値と比較します。
数字を直接書きます。
数式 (A1+B4)*2 四則演算を行った結果と比較します。
引数の先頭に = は不要です。
関数 SUM(A1:D10) 関数の計算結果と比較します。
文字列 "好きな文字" 指定の文字に一致するかどうかで比較します。
文字列はダブルクォート " で囲います1)

比較

右辺と左辺をどのように比較するか指定する記号を「比較演算子」と言います。以下の種類があります。

比較演算子 説明
< 左辺は右辺より小さい
> 左辺は右辺より大きい
<= 左辺は右辺以下
>= 左辺は右辺以上
= 左辺と右辺は等しい
<> 左辺と右辺は等しくない

<> 記号を入力するには、それぞれキーボードで Shift+Shift+ キーを押すと良いでしょう(キーボード右下の方にあります)。

以上・以下・より大きい・より小さい の違い

以上 >=、以下 <= という比較は、右辺と左辺が等しい場合も成り立ちますが、より大きい >、より小さい < という比較は、一方が他方を上回っていないと成り立ちません。
たとえば「60点以上は合格」の場合、60点は合格ですが、「60点より大きいと合格」なら、60点は合格ではありません。61点から合格です。
イコール = が付いていたら、同値でも成り立つと考えると分かりやすいでしょう。

これら 右辺・比較演算子・左辺 を組み合わせて A1 < 1200SUM(A1:D1) >= 80 のように論理式を組み立てるのです。

そして、この論理式が成り立ったら「真の場合」の処理が、成り立たなかったら「偽の場合」の処理というふうに、どちらか一方が実行され、自動二択となるのです。

IF関数の概略図

論理式の具体例

論理式のいろいろな書き方を紹介します。

論理式 動作
A1>100 A1セルに書いてある値が100より大きい場合に真。(100以下の場合は偽)
B1<=60 B1セルに書いてある値が60以下の場合に真。(60を上回る場合は偽)
A1+A2+A3<=15 A1セルとA2セルとA3セルに書いてある値の合計が15以下の場合に真。
B1>A1*5 B1セルに書いてある値がA1セルの値の5倍を超えたら真。
AVERAGE(A1:A10)>=60 A1からA10セルの値の平均(AVERAGE)が60以上であれば真。
B2="合格" B2セルに「合格」と書いてある場合に真。
C2="" C2セルの内容が空の場合に真。
D2<>"" D2セルの内容が空でない場合に(つまり何らかのデータが書かれていたら)真。
COUNTA(A1:A10)=0 A1からA10セルの範囲に1つもデータが入力されていなければ真。

間違った論理式

なお論理式は比較を一度だけ行えます。3つ以上のものを比較することはできません。

=IF( 0 <= B4 < 60 , "不合格" , "合格" )
誤った論理式の例
比較を複数回行っており、エラーが発生します。

上の場合、B4セルの値が0以上60未満で「不合格」と表示する意図で書きましたが、比較を複数回行っているので正しく動作しません。

真の場合・偽の場合の書き方

「真」の場合や「偽」の場合には、それぞれ以下のような処理が行なえます。

=IF( 論理式 , 真の場合 , 偽の場合 )
この部分の書き方について

処理 処理内容
文字列を表示 "合格" 指定の文字を表示します。
文字の周囲はダブルクォート2) " で囲ってください。
数値を表示 1200 指定の数値を表示します。
数値の場合はダブルクォートで囲う必要はありません。
計算 A1+B5 計算結果を表示します。
他の関数を実行 SUM(A1:A4) 関数の計算結果を表示します。
何もしない 何も書かない 真の場合は TURE、偽の場合は FALSE と表示します。

書き方は、上記の「論理式」の場合とほとんど同じです。
「真」の場合や「偽」の場合には「比較演算子」を記入することはありません。

「真」と「偽」のそれぞれに処理を用意しておけば、論理式の条件を満たしているか、いないかで、2通りの処理のどちらかを行えます。

条件に応じて2種類の文字のどちらかを表示したり、2種類の計算のどちらかを実行したりできるわけです。

IF関数の具体例

IF関数の具体的な例をいくつか解説します。IF関数の実際の使われ方を把握しましょう。

例1

=IF( F4>=C4論理式 , "有利"真の場合 , "不利"偽の場合 )

上の例の場合、もし(IF)F4セルに書かれた値がC4セルに書かれた値以上(F4>=C4)なら「有利」、そうでなければ「不利」と画面に表示されます。

条件によって画面に表示されるメッセージが変わる例です。

例2

=IF( A1="セール" , A2*0.8 , A2 )

上の例の場合、もし(IF)A1セルに「セール」と書かれていたら(A1="セール")、A2セルの値に0.8を掛けた数値(A2*0.8)を、そうでなければA2セルの値をそのまま(A2)画面に表示します。

つまりA1セルに「セール」と書いてあった時だけA2セルの値段から2割引きの数値が表示され、それ以外の時は割引きなしで表示されます。

条件によって異なる計算が行われる例です。

例3

=IF( D4="", "記入してください" , "" )

この例の場合、もし(IF)D4セルに何も書いていなかったら D4=""、「記入してください」と画面に表示されます。逆に何かが書いてあるなら、なんのメッセージも表示されません。つまり、D4セルが空欄の場合にだけ「何か書いてくれ」とうながす事ができます。

条件によって画面にメッセージが表示されたりされなかったりする例です。

このように、文字列が無く、空欄である状態は "" で表します。文字の周囲はダブルクオート " で囲い "好きな文字" のように表すというのが基本ルールですから、文字がまったく無いときは "" だというわけです。

この "" という書き方は「とあるセルに何も書いていない状態」を論理式で表す時に使えますし、IFで判定を行った結果「何も表示したくない」時にも使えます。

真の場合 や 偽の場合 を そもそも書かなかったらどうなる?

なお上記の処理で「判定結果には何も書かなくて良いんでしょ?」ということで、以下のように書いたとしましょう。するとおかしなことが起こります。

=IF( D4=""論理式, "記入してください"真の場合     )
不完全なIF関数
偽の場合の処理が省略されています

このように偽の場合の引数を完全に「省略」して「本当に何も書かない」と、真になった場合は「記入してください」と正しく表示されますが、偽になった場合は、画面上に FALSE と表示されてしまいます3)。注意しましょう。

そこで画面に何も表示したくないときは、上の例3のように "" を使うようにしましょう。

=IF( D4=""論理式, "記入してください"真の場合  , ""偽の場合    )
上記のIF関数を修正した例
偽の場合の処理を追記しました

練習問題

練習問題ファイルの「IFその1」シートを開いてください。

s12_06.jpg

「IFその1」シート

架空の商品の売上データが書かれています。「判定」欄でIF関数による処理を行います。

「合計」欄の数値が27,000以上の時には「○」が、「合計」欄の数値が27,000未満の時には「×」が表示されるよう設定してください。
「○」と「×」は、それぞれ「まる」「ばつ」と入力して漢字変換すると良いでしょう。

IF関数の具体的な入力方法については、いくつかの方法があります。

パターン1:手書き入力

IF関数を手書きする方法です。慣れると素早く入力できます。

  1. 答えを表示したいセル(G4)に移動し、=IF( と入力します。
  2. 「論理式」、「真の場合」、「偽の場合」を以下のようにカンマ区切りで記入します。
    F4 >= 27000 , "○" , "×"
    それぞれカンマ , で区切って並べます。
    ここでは見やすいように、あえてスペースを混ぜていますが、詰めて書いてもOKです。
  3. 丸括弧を閉じて Enter キーを押すと完成します。

作成したIF関数は最終的に以下のようになります。

=IF(  F4>=27000論理式 , "○"真の場合 , "×"偽の場合  )
IF関数の完成形

もし(IF)、F4セルに書かれている値が27000以上 F4>=27000 なら「○」が、そうでなければ「×」が画面に表示されるという処理になります。

パターン2:「関数の挿入」ボタンを利用した入力

ひとつ下の商品も同様に処理します。ここでは「fx 関数の挿入」ボタンを使って入力する方法を解説します。

この方法はEXCEL初心者向けの入力方法です。

  1. 答えを表示したいセル(G5)に移動します。
  2. 数式バーにある「fx 関数の挿入」ボタンをクリックします。
  3. 関数のリストが表示されるので IF を選択し「OK」ボタンをクリックします。
    もしIF関数がリストに載っていない時は、「関数の分類」欄を「論理」に設定すると見つかります。
  4. 3つの入力欄が現れます。「論理式」欄に F5>=27000、「真の場合」欄に "○"、「偽の場合」欄に "×" と入力します。
    関数の引数画面への入力
  5. Enter キーを押すと、判定結果が出ます。
  6. 出来上がった数式を下方向にオートフィルして、残りの商品に関する数式も作成します。

「関数の挿入」ボタンを使って入力する動画

このように入力パネルを使った入力でもIF関数を作成できます。

関数の名称などをあまり覚えていなくても、リストから選ぶだけで入力できるので便利です。

その他、引数の数が多く、複雑な関数を入力する場合も、「fx 関数の挿入」ボタンを使って入力の補助を受けると楽に入力できます。

まさに初心者向きの方法と言えます。

計算結果のリアルタイム反映

関数の処理はリアルタイムで行われますので、元の値が変化すれば、IF関数の判定結果も変化します。

例えば下の例では「合計」欄の数値を書き換えていますが、入力値に合わせてIF関数の結果「○」と「×」が自動的に変化している様子が分かります。

元の数値を書き換えると
IFの結果も変化する動画

このように、刻々と値が変化する状況でもIF関数は常に正しい結果を返します。うまく活用してください。

練習1~3

回答が終わったら、続く「練習1」~「練習3」シートも同様の方法で回答してください。
シート内には回答のヒントになるメッセージがありますので参考にしてください。

人間が行うと面倒でミスを起こしやすい作業も、IF関数を使って簡単に行なえるのでぜひ活用してください。

三種類以上の分岐を行う場合

練習問題ファイルの「練習4」シートについて解説をします。

s12_02.jpg

「練習4」シート

この問題は、あるキャンペーンの処理を行うものです。
C4~C13セルの「性別」欄にIF関数で判定を行ってください。
1つ左の「性別ID」欄に書かれた数値に応じて「性別」欄には以下の3種類の結果が表示されるようにしてください。

なんと三択です! IF関数では処理できないように思えますが、どうでしょう。

具体的な処理方法について、下の項目で解説します。

三種類以上の結果を返す方法

IF関数は論理式で定めた条件を満たしているかどうかで、「真」か「偽」かの2通りの結果を返します。 1つのIF関数で3通り以上の結果返すことは仕様上できません。
ではどうするかと言うと、IF関数の中でもう一度IF関数を呼び出すことで3種類以上の結果を返せるようになります。

処理の流れは次のようになります。

IF関数による3分岐

今回の例の場合、以下の手順で処理します。

これで3種類の結果を返すことができるようになります。

この処理を数式に書き起こすと、以下のようになります。IF()の内部にさらにIF()が入っており、二重構造になっている様子がわかります。

=IF( B4=0 , "男", IF(B4=1,"女","入力ミス") )
3分岐するためのIF関数

このように次々とIF関数を呼び出す処理を続ければ、4種類、5種類と結果のパターンを増やすこともできます。

複数の関数を入力する方法

このあたりは、操作がややこしいので、注意してください!😂

上のような処理をする場合、IF関数の「真」「偽」の入力欄にさらにIF関数を書き込む必要があります。 手書きでIF関数を書き込んでも良いのですが、IF(論理式,真の場合の処理,偽の場合の処理) のような複雑な数式を書くのは難しいです。

関数を手書きするのが難しい場合は「fx 関数の挿入」ボタンを使うと便利です。
関数の挿入ボタンで関数を入力中に、さらに別の関数を挿入するには、左上にある「名前ボックス」部分から挿入したい関数を選択します。すると現在カーソルがある位置に、もう一つ別の関数を挿入できます。

関数入力中にここをクリックすると、
カーソル位置にさらに別の関数を挿入できます。

また複数の関数を使用している数式を「fx 関数の挿入」ボタンで編集している場合、画面上部の数式バーに表示される数式をクリックすると、編集する数式を選べます。下の動画ではクリックする場所によって関数の挿入パネルの内容が変化している様子が分かります。一時停止や早戻しなども使って操作の様子をじっくり観察しましょう。

編集する関数を切り替える操作を行う動画

このように関数を複数使った複雑な数式の修正作業をする場合には、「fx 関数の挿入」ボタンを使えば問題箇所を見つけやすくなるので活用してください。

具体的な入力方法

fx 関数の挿入」ボタンを使って、この問題の数式を入力する手順を解説します。

=IF( B4=0 , "男", IF(B4=1,"女","入力ミス") )

3分岐するためのIF関数(再掲載)

  1. 結果を表示したいセル(C4)を選択し「fx 関数の挿入」ボタンをクリックします。
  2. 関数リストが表示されるので、IF関数を選択します。(もしIF関数が一覧に掲載されていない場合は、「関数の分類」欄で「論理」を選択すると見つけられます)
  3. 「論理式」欄に B4=0、「真の場合」欄に "男" と入力します。
  4. 「偽の場合」欄をクリックし、画面左上の「▼」ボタンをクリックし、表示されるリストの中からIF関数を選択します。
    2つ目のIF関数が「偽の場合」欄に挿入されます。(入力パネルの内容は初期化されたような見た目になりますが、数式が消えたわけではないので安心してください)
  5. 「論理式」欄に B4=1、「真の場合」欄に "女"、「偽の場合」欄に "入力ミス" と入力します。
  6. 「OK」ボタンをクリックすると、数式が完成します。
  7. 出来上がった数式を下方向にオートフィルして、残りの数式を作成します。

これで完成です。具体的な操作方法は下の映像を確認してください。

回答までの操作を記録した動画

このようにEXCELでは複数のIF関数を使うことで、3種類以上の結果を返すことができるようになります。

また、この練習問題のように、想定外の値が入力された時には「入力ミス」のようなメッセージが表示されるようにしておくと、仕事であなたがうっかりデータ入力を間違えた場合も、事故を未然に防ぐ効果が期待できますので参考にしてください。

同様に「練習5」「練習6」シートの設問も同様の方法で回答してください。

複雑な条件の処理

ワークシート「IFその2」を開きましょう。

s12_08.jpg

「IFその2」シート

この問題は、ある会社の健康診断を行う際のグループ分けの表です。F列の「検診日」欄にIF関数を使った判定を行ってください。
「性別」欄と「年齢」欄を条件として、「検診日」欄には以下のように4種類の結果を表示してください。

男性の場合
女性の場合

この問題は、論理式の条件に「性別が男か女か」、「年齢が40歳以上か未満か」という2つの要素が含まれ、さらに結果が4種類に分かれるものとなっています。

条件が複雑に見えますが、「性別」と「年齢」という2つの要素を同時に処理しようとせず、個別に判断していけば処理しやすいでしょう。

以下のような処理の流れが考えられます。

IF関数による4分岐

IF関数(1)では、真の場合も偽の場合も両方とも別のIF関数を実行するのが特徴です。

具体的な入力方法は以下のようになります。

具体的な入力方法

fx 関数の挿入」ボタンを使って、以下のような数式を入力する手順を解説します。(長いので画面によっては改行されているように見える場合がありますが、実際に入力する際はつなげて1行で書いてください)

IF関数の「真の場合」と「偽の場合」に、それぞれ別のIF関数が格納されている様子が分かります。

=IF( C6="男"論理式, IF(D6>=40,"Aグループ","Bグループ")真の場合 , IF(D6>=40,"Cグループ","Dグループ")偽の場合 )

  1. まずIF関数(1)を作ります。
    結果を表示するセル(F6)をクリックし、「fx 関数の挿入」ボタンをクリックしてIF関数を選択します。
  2. 「論理式」欄に C6="男" と入力します。
  3. 「真の場合」欄をクリックし、画面左上の「▼」ボタンを押し、IF関数を選択します。
  4. IF関数(2)の編集作業に入ります。
    「論理式」欄に D6>=40、「真の場合」欄に "Aグループ"、「偽の場合」欄に "Bグループ" と入力します。
  5. 上部にある「数式バー」を確認し、一番左の =IF(C6="男" と書かれている IF 部分をクリックします。設定画面が最初のIF関数(1)のものに切り替わります。
  6. まだ入力されていない「偽の場合」欄をクリックし、画面左上の「▼」ボタンを押し、さらにIF関数を追加します。
  7. IF関数(3)の編集作業に入ります。
    「論理式」欄に D6>=40、「真の場合」欄に "Cグループ"、「偽の場合」欄に "Dグループ" と入力します。(男性の場合と似ていますが、グループ名がA→C、B→Dに変化しています)
  8. 「OK」ボタンをクリックすれば数式は完成です。
  9. 出来上がったF6セルをF28まで下方向にオートフィルします。マウスの「右ボタン」を押しながら下方向にオートフィルし、現れたメニュー内の「書式なしコピー」を選択すると、数式をコピーでき、かつ表の書式が壊れません。

回答までの操作を記録した動画

複数の関数を含む数式を作る場合、このように編集対象の関数を切り替えながら作業すると良いでしょう。

参考:別の回答方法

とりあえず上の手順で問題には回答できますが、異なるアプローチでこの問題に回答することもできます。
余裕がある方は下を参考にしても良いでしょう。

この問題では、性別を判断する論理式 C6="男" と年齢を判断する論理式 D6>=40 が必要です。しかしIF関数の仕様上、一回の比較しかできません。

そのような場合は、特別な関数 AND 関数と OR 関数を使う方法もあります。

AND や OR 関数は、IF 関数の「論理式」欄に入力することができ、複数の論理式をひとまとめにできます。 具体的には、AND や OR 関数のカッコの中に、カンマ , で区切って複数の論理式を記述できるのです。

AND OR を使った例

AND( A1 >=60条件1 , A1 <80条件2 )
AND関数は複数の条件を書けます

上の式は、AND 関数を使っています。
A1セルの値が60以上 かつ 80未満 の場合に成立します。
すべての条件が満たされた時に真になるので、条件は厳しめです。

OR( A1 >=60条件1 , A1 <0条件2 , C1="合格"条件3 )
OR関数も同様に、複数の条件を書けます

上の式は、OR 関数を使っています。
A1セルの値が60以上 または ゼロ未満 または C1セルに「合格」と書いてある場合に成立します。
どれか1つ以上の条件が満たされた時に真になるので、条件は緩めです。

  • AND関数は、論理式が全て満たされれた時に「真」となります。
  • OR関数は、論理式がどれか1つ以上満たされた時に「真」となります。

AND関数とOR関数の違い

このようにANDやOR関数を使えば、複雑な条件も1つの論理式で表現できるので、参考にしてください。

今回の問題をANDで解決する

この問題ではAND関数を使って各グループの成立条件を以下のように書く方法があります。

=IF( AND(C6="男",D6>=40)論理式 , "Aグループ"真の場合 , IF(・・省略・・)偽の場合  )

  • IF関数の論理式の欄に AND(C6="男",D6>=40) のようにAND関数が書き込まれている様子が分かります。
  • AND関数の中では性別と年齢を判断する C6="男"D6>=40 の論理式が両方とも書き込まれています。これにより、Aグループが成立する条件である「性別が男性で、かつ、年齢が40以上」を一度で記述できます。

このようにして、A~Dの4つのグループを1つずつ特定していく方法もあります。

条件が「○○かつ××」「○○または××」のように複雑な場合は、AND()OR() を使って表すこともできるというわけです。

完成例

少し式が長くなりますが、この AND() を使った数式でも同じ結果を得られます。

=IF(AND(C6="男",D6>=40),"Aグループ",IF(AND(C6="男",D6<40),"Bグループ",IF(AND(C6="女",D6>=40),"Cグループ","Dグループ")))
AND関数を使って4分岐する例

重複している条件があるので、いくつか論理式を省くと、もう少し短くすることもできます4)

=IF(AND(C6="男",D6>=40),"Aグループ",IF(C6="男","Bグループ",IF(D6>=40,"Cグループ","Dグループ")))
上の式をよりシンプルに表現した例

練習7の場合

最後の練習問題、練習7について簡単な補足しておきます。
ワークシート「練習7」を開きましょう。

この問題を完成させると、以下の動画のようになります(動画で動きを見てもらったほうが分かりやすいと思います)。
この動画では消費税率8%で計算しているので、計算結果が実際の問題と異なります。スミマセン😂

作成例
データ入力に応じて計算結果が自動的に出力されます。

掛け算や足し算を使って値段を計算していますが、今までと異なるのは、「数量の欄に何も書かないと、画面には何も表示されない」点です。
数量を入力すると、右側に自動的に計算結果が表示されている様子が分かると思います。

このような処理を行うには、以下のような計算を使うと良いでしょう。
たとえば、F10セルに数量の欄があるとします。

=IF( F10=""論理式 , ""真の場合 , なにか計算をする偽の場合 )

計算の前に上記のようなIF関数を挟むことで、F10セルに何も書かなければ、結果も空欄にしておけるわけです。

その結果、上の動画のように、一見何も書かれていないように見えるセルであっても、値の入力に反応して計算結果を表示できるようになります。

参考にしてください。

参考:複数結果を簡単に処理する新関数IFS

IF関数を使って3種類以上の結果を返すためにはIF関数を複数回使わなければならず、上で説明したように数式が複雑になる問題がありました。

そこでExcel2016から追加された「IFS」(イフエス)関数を使えば、このような3つ以上の分岐処理を1つの関数で行えます。
IF( IF( IF( … ) ) ) のような多重構造にしなくても良くなります。便利!😁

IFS関数は次のような書き方をします。

=IFS ( 論理式1 , 真の場合1 , 論理式2 , 真の場合2 , ・・・ 論理式n , 真の場合n )
IFS関数の基本形
3分岐以上の処理をシンプルに表現できます

  • 「論理式1」の条件を満たせば「真の場合1」、そうでない場合「論理式2」の条件を満たせば「真の場合2」……のように処理されます。
  • 「論理式」と「真の場合」のセットは最大127個まで指定できます。
  • どの条件も満たさない場合の結果を指定するには、最後の「論理式」に TRUE と書き、最後の「真の場合」に処理したい内容を書き込みます。
  • どこかの「論理式」に一致した場合は、それより後ろに続く「論理式」はすべて処理されない点に注意してください。(もし最初の論理式の条件を満たすと、残りの全ての論理式は処理されることがありません)つまり「一番厳しい条件から順に並べて書くべき」ということです。

IFS関数の使用例

たとえば、点数が90点以上で「秀」、80点以上で「優」、70点以上で「良」、60点以上で「可」、それ以外は「不可」という5つの結果を返したい場合、IFS関数を使うと以下のように書けます。

IFS関数による5分岐の例

=IFS(B3>=90,"秀",B3>=80,"優",B3>=70,"良",B3>=60,"可",TRUE,"不可")
IFS関数の使用例

なお行末あたりにある TRUE は「真」を表す特別なキーワードなのでダブルクォートで囲わないので注意してください。"TRUE" は間違いです5)

このようにIFS関数を使うと、結果の分岐処理を比較的簡単に表現できます。ただし、Excel2016より前の古いバージョンではIFS関数は使用できませんので注意してください。

ちなみに同じ処理を通常のIF関数で書くと、以下のようになります。

=IF(B3>=90,"秀",IF(B3>=80,"優",IF(B3>=70,"良",IF(B3>=60,"可","不可"))))
同じ処理を従来のIF関数で表現した例

従来のIF関数で行うよりも、IFS関数を使った方がより直感的な数式の見た目になるかと思います。(従来の方法でも意外と長くはなりませんでしたが…😅)

参考:長い数式を複数行で書く

処理が複雑になると、数式は長くなり、処理内容が見にくくなるかと思います。

そのような場合は、数式を複数行で書くと見やすくなるでしょう。

複数行を使って数式を書くためには、以下のような操作をします。

  • 数式バー右端にある ボタン(または Ctrl+Shift+U キー)を押して、数式バーの面積を増やします。
  • 数式編集中に Alt+Enter キーを押すことで、数式バーの中で改行できます。
  • もし数式バーの高さが不足していると感じたなら、数式バーの下端をつかんでドラッグすると、高さを手動で調整できます。

数式バーの面積を増やすボタン

数式バーの面積が増えた状態
複数行を使った編集がしやすくなります。

この方法で数式を見やすく編集しましょう。

例えば 6 複雑な条件の処理 で使用したIF関数は以下のようなものでした。

=IF( C6="男", IF(D6>=40,"Aグループ","Bグループ"), IF(D6>=40,"Cグループ","Dグループ") )

年齢と性別で4つのグループに分ける処理

長くて見にくいので、改行を使って以下のように表現すると見やすくなるでしょう。

=IF( C6="男",
  IF(D6>=40,"Aグループ","Bグループ"),
  IF(D6>=40,"Cグループ","Dグループ")
)

改行を使って書き直した例
真の場合も偽の場合も
さらにIF関数を使用している様子がよく分かります。

実際の画面ではこのように見えます。

上の項で紹介した IFS関数 なども1行で書くと長くなりがちです。改行を使って書けば見やすくなることでしょう。

=IFS(
  B3>=90,"秀",
  B3>=80,"優",
  B3>=70,"良",
  B3>=60,"可",
  TRUE,"不可"
)

IFS関数を改行を使って書き直した例
各条件と処理内容が見やすくなりました。

数式バーを広く使って、数式を見やすく書くと良いでしょう。参考にしてください。

まとめ

条件に応じて処理を使い分けるような作業は、IF関数を活用して自動化し、作業の効率化を図りましょう。

課題

以上の内容を踏まえて、EXCEL練習問題のすべてのワークシートの設問に解答して下さい。

解答が終わったら、学生番号 氏名 IF関数.xlsx というファイル名で保存し、moodle に提出してください。

提出期限は、次回の授業日いっぱいとします。

学習支援システム moodle
https://cclms.kyoto-su.ac.jp/

以上で今回の作業は終了です。大変おつかれさまでした6)

戻る

1)
ダブルクォートはShift+2で入力できます。
2)
キーボードのShift+2キーで入力できます。
3)
IF関数では、「真の場合」や「偽の場合」の引数を省略して何も書かないと、上で示した表の4行目である「何も書かない」ケースに該当するので、真の場合は「TRUE」、偽の場合は「FALSE」が画面に表示されるという仕様です。変な仕様ですね……。
4)
Aグループの条件を決めた後、それ以外の人については、男性ならBグループが確定。さらにそれ以外の人はすべて女性とみなし、年齢によってCグループとDグループを識別しています。
判断回数をちょっと減らしているだけのようですが、もしも大量の計算を行わなければならないような時には「ちりも積もれば山となる」で、小さな差が大きな差へとつながったりしますので侮れません。😆
5)
「TRUE」という文字そのものの真偽を判定することになり(意味不明ですね。条件ですらありません)、意図しない結果につながるでしょう。
6)
今回はEXCEL編最大の山場だったかもしれません。来週からはもう少し簡単になるはずです。