エクセルのIF関数の複数条件はLOOKUP関数で

エクセルで所得税の計算シミュレーターを作ってみようと思い立って色々やっていたのですが、今更ながらIF関数とLOOKUP関数が便利だったので自分のメモに記載しておきます。

エクセルのIF関数の使い方メモ
エクセルのif関数は特定のセルの内容が条件に合っていた場合とそれ以外で違う記載をしたい場合に使います。文字で説明してもピンとこないと思うので例を。

例えば法人税率を考えます。
「課税される所得金額が800万円以上なら法人税率は23.9%」
「課税される所得金額が800万円未満なら法人税率は15.0%」
で計算されます。

課税される所得金額を入力するセル(ここではA1とする)を用意し、そのセルに記入された数字が800万円以上なのか未満なのかで返す法人税率を変えたい場合は

=IF(A1>=800,”23.9%”,”15%”)

と記入すればOK!
1つ目のカンマまでがIFの条件
2つ目のカンマまでがIFの条件に合っていた場合(真)に返す内容
3つ目のカンマまでがIFの条件に合っていなかった(偽)に返す内容

となっています。
自分で書くのが面倒なら「数式」⇒「論理」⇒「IF」を選択すれば自動で記入してくれます。
その場合には上記の「条件」「条件が真だった場合に返す内容」「条件が偽だった場合に返す内容」の3つを記入するだけでOKです。

IFの条件やアウトプットが文字列の場合の書き方

先ほどの例でもそうですが、文字列を記載したい場合には””(ダブルクオーテーション)で囲めばOKです。
“-99″といったように、数字でも囲んでしまえば文字列として扱われます。

エクセルのIF関数で条件を複数にする場合
例えば所得税の計算は所得に応じて税率と課税控除額が7段階ありますが、これをIFで作るのは正直しんどいです。
確かにIFの中にIFを入れて入れ子にすれば可能ではありますが、相当面倒です。

課税所得金額 税率 課税控除額
195万円以下 5% 0円
195~330 10% 97,500円
330~695 20% 427,500円
695~900 23% 636,000円
900~1800 33% 1,536,000円
1800~4000 40% 2,796,000円
4000~ 45% 4,796,000円

こんな感じで条件が複数ある場合にはIF関数ではなくLOOKUP関数がオススメです。
条件の範囲とアウトプットを1対1対応で複数設定できるからです。

上記の所得税の計算の場合、課税所得金額のセルをA1とすれば、税率は

=LOOKUP(A1,{1,195,330,695,900,1800,4000},{0.05,0.1,0.2,0.23,0.33,0.4,0.44})

で条件の範囲ごとに設定可能です。

同様に課税控除額は

=LOOKUP(A1,{1,195,330,695,900,1800,4000},{0,9.75,42.75,63.6,153.6,279.6,479.6})

で完了します。

所得税は

所得税 = 課税所得金額 × 税率 – 課税控除額

なので上記の3つのセルを組み合わせて

=A1*LOOKUP(A1,{1,195,330,695,900,1800,4000},{0.05,0.1,0.2,0.23,0.33,0.4,0.44})
-LOOKUP(A1,{1,195,330,695,900,1800,4000},{0,9.75,42.75,63.6,153.6,279.6,479.6})

で自動計算可能ですね。

これは便利♪