IF関数について

エクセル(EXCEL)事始

様々なデータを処理する中で、Aの結果が出たら甲の処理を、Bの結果が出たら乙の処理をしたい、というように、処理を分岐したいことがあります。
例えば、食料品の場合は消費税8%を適用し、それ以外の場合は、消費税10%を適用したい場合です。

ここでは下記のようなエクセル(EXCEL)表を例に案内していきます。

広告

「VLOOKUP」関数を使った表

最初に「VLOOKUP」関数を使った表について見ていきます。IF関数を使わなくても、「食料品に8%の消費税」を適用し、それ以外の商品には10%の消費税を適用できます。この表では、商品テーブルにすべての情報を持ち、登録された商品コードに基づいて、全てのデータを自動的に表に反映する仕組みが設定されています。ただ、このテーブルのように、商品単位で消費税が登録されていると、消費税が変更されてしまうと、商品毎に消費税の変更をしなければならず、書き換えの負荷が大きくなります。このような全テーブルの書き換えを避ける方法があります。

IF関数を使った表について

この表は商品を登録する表と、消費税率を設定する表に分かれています。ここに「もしF13が「食品」なら($F13=”食品”)M11($M$11)の数値(8%)を表示し、それ以外の場合はM12($M$12)の数値(10%)を表示しなさい」という意味の関数を設定します。

この場合の利点は、消費税率に変更があった場合に、消費税のテーブルを書き換えるだけて簡単に消費税の変更が出来る点です。

したがってテーブルの設計をする場合には、下段のようにテーブルを性質に応じて分割しておくと、将来的な変更に対応することが出来ます。

この関数は「日付」で論理を分岐させて「2019/10/1未満」の日付の場合には「2014/4/1以降の消費税テーブル」を使用し、それ以外の日付の場合には「2019/10/1以降の消費税テーブル」を使用するという論理式になる関数を設定しています。

関数説明
$C13登録された日付を参照します。
$L$14「2019/10/1」以前を示しています
$L$12:$M$13「2014/4/1」以降の消費税テーブルを参照しています
$L$16:$M$17「2019/10/1」以降の消費税テーブルを参照しています
全体ます。それ以外の場合は「2019/10/1」以降の消費税テーブルを参照を参照します。
この場合には「2022/6/13」が記載されたセルを参照し「2019/10/1以前の場合には③のテーブルを参照し、それ以外の場合には④のテーブルを参照する」という関数になります

IF関数を重ねて使う

ここではIF関数をさらに重ねて使うケースについて案内します。

関数説明
$C13<$L$14表の日付($C13)が2014/4/1($L$14)より小さいことを確認する関数です
$L$12:$M$13表の日付が2014/4/1より小さい場合に1997/4/1以降の消費税を検索します
C13>$L$18表の日付($C13)が2019/10/1($L$18)より大きいことを確認する関数です
$L$20:$M$21表の日付が2019/10/1より大きい場合に2019/10/1以降の消費税を検索します
$L$16:$M$17①③の条件に当てはまらない日付(2014/4/1以降で2019/10/1より前)の場合には2014/4/1の消費税を検索します

【関数全体】
=IF($C13<$L$14,VLOOKUP($F$4,$L$12:$M$13,2,0),IF(C13>$L$18,VLOOKUP($F13,$L$20:$M$21,2,0),VLOOKUP($F13,$L$16:$M$17,2,0)))

このケースでは消費税のテーブルを三つ設定し、IF条件を複数使用して入れ子構造になります。
各々の消費税は日付の条件に応じて適用されますので、使い分けがされます。さらに条件が必要になるケースについても後日掲載します。

またIFS関数と言う、入り子構造を解消する関数もExcel2019やOffice365から実装されていますので、IF関数を複数組み合わせることなく使用することができます。

広告

コメント