【エクセル時短】は「少しでも早く仕事を終わらせたい!」というビジネスパーソンのみなさんに、Excelの作業効率をアップするワザをお届けする連載です。毎週木曜日更新。
過去の記事一覧【エクセル時短まとめ】
Excel 2016から、新関数として「IFS」(イフ・エス)関数が使えるようになりました。引数の構造が簡略化されており、複数条件を組み合わせるのに便利です。
しかし、IFS関数は買い切り型のOfficeでは利用できず、定額料金(サブスクリプション)型のOfficeである「Office 365」でないと使えません。また、Excel 2013以前のバージョンでも動作しません。
そのため、IFS関数を使ったファイルを誰かに送信するときは、相手のバージョンに注意する必要があるのですが、万全を期すなら、どんなバージョンでも使える「IF」(イフ)関数に戻しておくのが妥当です。その方法、わかりますか?
【エクセル時短】第81回では、「IFS」と「IF」の構文をあらためて理解し、IFS→IFに書き換える方法を見ていきましょう。IFS関数では複数条件をそのまま指定できる
まず、IFS関数の構文は以下の通り。
IFS
(論理式1, 真の場合1, 論理式2, 真の場合2, ..., 論理式127, 真の場合127)
なお、[論理式]をすべて満たさない場合は、最後に「TRUE,[真の場合]」と指定します。ここでは、入場料の判定を例にIFS関数の動作を見てみましょう。
1IFS関数を入力する
セルE3に以下の関数式を入力しました。『セルD3の値が「大人」ならセルB2の値、セルD3の値が「子ども」ならセルB3の値、それ以外なら「0円」と表示する』という意味です。「それ以外」の[論理式]に「TRUE」と指定するのがポイントです。
=IFS
(D3="大人",B2,D3="子ども",B3,TRUE,0円)
2IFS関数の結果を確認する
結果を見てみましょう。セルD3に「大人」と入力すると「800円」と表示されます。
「子ども」と入力すると「400円」と表示され......
空欄では「0円」となります。意図通りに条件を判定できていますね。
IF関数では複数条件を「ネスト」で指定する
では、IFS関数と同じ判定をIF関数で書き換えていきます。IF関数の構文をおさらいしましょう。
IF
(論理式>, 真の場合, 偽の場合)
『セルD3の値が「大人」ならセルB2の値、セルD3の値が「子ども」ならセルB3の値、それ以外なら「0円」と表示する』という判定をしたいので、[偽の場合]にIF関数を組み合わせて、ネスト(入れ子の状態に)する必要があります。
順を追って考えていきましょう。『セルD3の値が「大人」ならセルB2の値』の部分は、以下のようになります。
IF
(D3="大人",B2, ●)
そして『セルD3の値が「子ども」ならセルB3の値、それ以外なら「0円」』の部分は、以下のようになります。
IF
(D3="子ども",B3,"0円")
最後に、1つめの関数式の●に2つめの関数式をネストすると、以下のようになります。これがIFS→IFに書き換えた関数式です。実際の入力例も見てみましょう。
=IF
(D3="大人",B2,IF(D3="子ども",B3,"0円"))
1IF関数を入力する
セルE3に前述の関数式を入力しました。IFS関数で判定した内容と同じく『セルD3の値が「大人」ならセルB2の値、セルD3の値が「子ども」ならセルB3の値、それ以外なら「0円」と表示する』という意味です。
2IF関数を入力する
「大人」なら「800円」、「子ども」なら「400円」と、同じ動作になります。
いかがでしたか? IF関数のネストに困ったら、あらためて本記事で確認してください。
実際の業務では、会社で「Office 365 Business」などのサブスクリプション型Officeを利用している場合、社内で利用するファイルではIFS関数のままでかまいません。ただ、社外の人に共有する可能性がある場合は、IF関数で作っておくのが無難だと覚えておきましょう。
関連記事
【エクセル時短】もうIF関数のネストは不要。新関数「IFS」で複数の条件指定を手早く済ます
セルの値が「90」以上なら「A」、「80」以上なら「B」のように、複数の条件で異なる結果を求めたいことがあります。今回は「IF」関数を組み合わせるよりも簡単な「IFS」(イフ・エス)関数を紹介します。