IFS関数とSWITCH関数は、Excel2016から追加された新しい関数です
- IFS関数とSWITCH関数はそれぞれ特徴がある
- 「IF関数」と「IFS関数」と「SWITCH関数」の違い
- 検索値(条件)が "1つ" の場合は、SWITCH関数が使い易い
- テストの点数に応じて「ランク(1位、2位、3位)」を表示する
- テストの点数に応じて「合格」と「不合格」を表示
IFS関数とSWITCH関数はそれぞれ特徴がある
IFS関数とSWITCH関数には、それぞれ特徴があります。
- IFS関数は、判定対象を複数指定できる
- SWITCH関数は、条件に合致する「値」がない場合に表示する "規定値" の引数が用意されている。(※ IFS関数でも論理式を設定することで可能)
- SWITCH関数は分岐(検索)条件が "完全一致" の場合しか使えない(※ 「~より大きい」などの条件は使えない)
- IFS関数は「ワイルドカード」や「等しくない」や「~より大きい」などの "完全一致" 以外の条件も使える
「IF関数」と「IFS関数」と「SWITCH関数」の違い
3つの関数は、ほとんど同じ内容ですが若干の違いがあります。
SWITCH関数は "分岐目的" であれば、引数の仕組みが簡単で「該当なし」の引数も用意されているので使い易いと思います。
しかし、SWITCH関数は "完全一致" の条件にしか使えず、「*」や「#」などのワイルドカードも使えません。
「セルB4 が "〇" だったら、"●" を表示 、もし "△" だったら、"▲" を表示、それ以外は "■" を表示」で条件を分岐させる数式を作成
- 条件は「セル "B4" に入力されている "値" は何か」
- 表示させる「結果」は「●」と「▲」の2つ
- 条件に当てはまるものがない時の規定値は "■"
※ 一致条件は「完全一致」のみ
3つの関数で数式を作成して比較
- IF関数
- IFS関数
- SWITCH関数
1.IF関数の場合
IF関数の場合、単独では複数の条件を設定することができないので、ネスト(入れ子)構造にします。
2.IFS関数の場合
IFS関数は "複数の条件" を設定できるので、ネスト(入れ子)構造にする必要がないので、IF関数よりは簡潔な数式になります。
しかし、"条件" の「B4=""」を繰り返し設定する必要があるので、数式が少し複雑になります。
規定値は「最後の条件(論理式)を "TRUE" に設定」して "■" を表示させます。
3.SWITCH関数の場合
SWITCH関数は条件が「1つ」の場合は、最も簡潔な数式にすることができます。
規定値も「引数」に用意されているので、最後に入力するだけです。
検索値(条件)が "1つ" の場合は、SWITCH関数が使い易い
「〇〇が、△△の場合は、●●にする」のように、検索(分岐)条件が1つの場合は、数式が簡潔になるので便利です。
また、引数に「規定値」があるので、条件に合うものがない場合は「該当なし」のようにメッセージを表示することができます。(※ IFS関数でも"論理式の一つにする"ことで可能)
SWITCH関数を使って、「日付」をもとに「曜日」を表示する
SWITCH関数を使って「日付」に対応する「曜日」を表示させる数式(関数)を設定します。
- 条件(論理式)に "WEEKDAY関数" を使って、参照するセルに入力されている「日付」に基づいて "1~7" の値を返します
- 引数 "値1" に「1」を設定し、条件に合う場合「日曜日」を表示
- 引数 "値2" に「7」を設定し、条件に合う場合「土曜日」を表示
- 該当する(条件に合う)ものがない場合、規定値の「平日」を表示
IFS関数を使うと、数式が少し複雑になってしまう
同様のことは、IFS関数でも可能です。
しかし、IFS関数の場合は結果ごとに "条件" を設定する必要があるので、今回のように "条件が1つ" で、結果として「土曜日」と「日曜日」の2つを表示させるためには "条件(論理式)" を繰り返し(2つ)入力する必要があります。
また、条件に当てはまらない場合に規定値として「平日」を表示させるには、条件を「TRUE」として論理式を設定します。
- 「条件1」に 「 "1" の場合は "日曜日" 」を設定
- 「条件2」に 「 "7" の場合は "土曜日" 」を設定
- 「条件3」に 「 "TRUE" の場合は "平日" 」として「規定値」を設定
テストの点数に応じて「ランク(1位、2位、3位)」を表示する
テストの結果に応じて「1位」、「2位」、「3位」の順位を表示させます。
RANK関数を使って、選択範囲内の「順位」の値を返して "条件" にします。
条件が「完全一致」なので、SWITCH関数が使えます
"順位" は、完全一致の条件になるのでSWITCH関数を使うことができます。
- RANK関数で「点数」の範囲に "順位" を付ける
- RANK関数の値が「1」なら「1位」を表示、「2」なら・・・
- 条件に合致しない場合は規定値の「 ""(空白)」を表示
テストの点数に応じて「合格」と「不合格」を表示
「75点以上を合格」、「75点未満は不合格」のような「~より大きい」という条件の場合は、完全一致ではないのでSWITCH関数を使うことはできません。
SWITCH関数で使えない条件
- 「~より大きい」を表す「>=」
- 「ワイルドカード」を表す「 ※ 」
- 「等しくない」を表す「 <> 」
上記のような場合には、SWITCH関数を使うことができないので、IFS関数(IF関数)を使います。
また、「条件が複数」の場合も同様にIFS関数を使うことになります。
IF関数で「75点以上を合格」の条件を設定
IF関数は「~以上」の "完全一致 以外の条件" を設定することができます。
SWITCH関数は「条件を分岐させる」時にはとても便利な関数です。
しかし、"条件の内容" によっては使うことができないので、その場合はIF関数(IFS関数)を使うことになります。
- IFS関数とSWITCH関数はそれぞれ特徴がある
- 「IF関数」と「IFS関数」と「SWITCH関数」の違い
- 検索値(条件)が "1つ" の場合は、SWITCH関数が使い易い
- テストの点数に応じて「ランク(1位、2位、3位)」を表示する
- テストの点数に応じて「合格」と「不合格」を表示