事務作業の省力化や資料作成に役立つ、Excelの使い方を紹介

Excelの機能を最大限に生かして、業務の省力化や経営状況を分析できる資料の作成方法を解説します。

IFS 関数 と SWITCH 関数を使って条件を分岐させる(その2)

IFS関数SWITCH関数は、Excel2016から追加された新しい関数です

 

IFS関数SWITCH関数はそれぞれ特徴がある

 IFS関数SWITCH関数には、それぞれ特徴があります。

  • IFS関数は、判定対象を複数指定できる
  • SWITCH関数は、条件に合致する「値」がない場合に表示する "規定値" の引数が用意されている。(※ IFS関数でも論理式を設定することで可能)
  • SWITCH関数は分岐(検索)条件が "完全一致" の場合しか使えない(※ 「~より大きい」などの条件は使えない)
  • IFS関数ワイルドカード「等しくない」「~より大きい」などの "完全一致" 以外の条件も使える

 

「IF関数」「IFS関数」「SWITCH関数」の違い

 3つの関数は、ほとんど同じ内容ですが若干の違いがあります。

 SWITCH関数 "分岐目的" であれば、引数の仕組みが簡単で「該当なし」の引数も用意されているので使い易いと思います。

 しかし、SWITCH関数 "完全一致" の条件にしか使えず、「*」や「#」などのワイルドカードも使えません。

 

「セルB4 が "〇" だったら、"●" を表示 、もし "△" だったら、"▲" を表示、それ以外は "■" を表示」で条件を分岐させる数式を作成

  • 条件は「セル "B4" に入力されている "値" は何か」
  • 表示させる「結果」は「●」と「▲」の2つ
  • 条件に当てはまるものがない時の規定値は "■"

  ※ 一致条件は「完全一致」のみ

 

 3つの関数で数式を作成して比較
  1. IF関数
  2. IFS関数
  3. SWITCH関数

 

1.IF関数の場合

 IF関数の場合、単独では複数の条件を設定することができないので、ネスト(入れ子)構造にします。  

   f:id:k-ohmori9616:20200807121848p:plain

 

2.IFS関数の場合

 IFS関数は "複数の条件" を設定できるので、ネスト(入れ子)構造にする必要がないので、IF関数よりは簡潔な数式になります。

 しかし、"条件" の「B4=""」を繰り返し設定する必要があるので、数式が少し複雑になります。

 規定値は「最後の条件(論理式)を "TRUE" に設定」して "■" を表示させます。

   f:id:k-ohmori9616:20200807121920p:plain

 

3.SWITCH関数の場合

 SWITCH関数は条件が「1つ」の場合は、最も簡潔な数式にすることができます。

 規定値も「引数」に用意されているので、最後に入力するだけです。

   

   f:id:k-ohmori9616:20200807121951p:plain

 

検索値(条件)が "1つ" の場合は、SWITCH関数が使い易い

 「〇〇が、△△の場合は、●●にする」のように、検索(分岐)条件が1つの場合は、数式が簡潔になるので便利です。

 また、引数に「規定値」があるので、条件に合うものがない場合は「該当なし」のようにメッセージを表示することができます。(※ IFS関数でも"論理式の一つにする"ことで可能)

 

SWITCH関数を使って、「日付」をもとに「曜日」を表示する

 SWITCH関数を使って「日付」に対応する「曜日」を表示させる数式(関数)を設定します。

  1. 条件(論理式)に "WEEKDAY関数" を使って、参照するセルに入力されている「日付」に基づいて "1~7" の値を返します
  2. 引数 "値1" に「1」を設定し、条件に合う場合「日曜日」を表示
  3. 引数 "値2" に「7」を設定し、条件に合う場合「土曜日」を表示
  4. 該当する(条件に合う)ものがない場合、規定値の「平日」を表示    

   f:id:k-ohmori9616:20200807110621p:plain

 

IFS関数を使うと、数式が少しになってしまう

 同様のことは、IFS関数でも可能です。

 しかし、IFS関数の場合は結果ごとに "条件" を設定する必要があるので、今回のように "条件が1つ" で、結果として「土曜日」と「日曜日」の2つを表示させるためには "条件(論理式)" を繰り返し(2つ)入力する必要があります。

 また、条件に当てはまらない場合に規定値として「平日」を表示させるには、条件を「TRUE」として論理式を設定します。

  1. 「条件1」に 「 "1" の場合は "日曜日" 」を設定
  2. 「条件2」「 "7" の場合は "土曜日" 」を設定
  3. 「条件3」「 "TRUE" の場合は "平日" 」として「規定値」を設定

   f:id:k-ohmori9616:20200807111836p:plain

 

 テストの点数に応じて「ランク(1位、2位、3位)」を表示する

 テストの結果に応じて「1位」「2位」「3位」の順位を表示させます。

 RANK関数を使って、選択範囲内の「順位」の値を返して "条件" にします。

 

条件が「完全一致」なので、SWITCH関数が使えます

 "順位" は、完全一致の条件になるのでSWITCH関数を使うことができます。

  1. RANK関数で「点数」の範囲に "順位" を付ける
  2. RANK関数の値が「1」なら「1位」を表示、「2」なら・・・
  3. 条件に合致しない場合は規定値の「 ""(空白)」を表示

   f:id:k-ohmori9616:20200807125059p:plain

 

テストの点数に応じて「合格」「不合格」を表示

 「75点以上を合格」「75点未満は不合格」のような「~より大きい」という条件の場合は、完全一致ではないのでSWITCH関数を使うことはできません 

 

SWITCH関数で使えない条件
  • 「~より大きい」を表す「>=」
  • ワイルドカードを表す「 ※ 」
  • 「等しくない」を表す「 <> 」

 上記のような場合には、SWITCH関数を使うことができないので、IFS関数(IF関数)を使います。

 また、「条件が複数」の場合も同様にIFS関数を使うことになります。

 

IF関数「75点以上を合格」の条件を設定

 IF関数「~以上」 "完全一致 以外の条件を設定することができます。

   f:id:k-ohmori9616:20200807130652p:plain

 

 SWITCH関数は「条件を分岐させる」時にはとても便利な関数です。

 しかし、"条件の内容" によっては使うことができないので、その場合はIF関数(IFS関数)を使うことになります。

 

 

k-ohmori9616.hatenablog.com