スポンサーリンク

Excel(エクセル) VLOOKUP 関数の基本的な使い方、検索方法をTRUEにしてあいまい検索、配偶者の所得金額から配偶者控除・配偶者特別控除を計算する


Excel(エクセル)でデータの一覧から、条件に一致する情報を取り出す方法として、VLOOKUP 関数について以下の記事で説明しました。

VLOOKUP 関数 は「=VLOOKUP(検索値,範囲,列番号,検索方法)」のように4つの引数を用いて記述します。
最後の「検索方法」ですが、「TRUE」、「FALSE」のいずれかを入力します。

・TRUE  近似一致
・FALSE 完全一致

上の記事では4つ目の引数「検索方法」を FALSE にしていました。

今日は「検索方法」がTRUE の場合のあいまい検索について説明したいと思います。

スポンサーリンク

1、「検索値」の候補となるデータが範囲で区切られている場合は「検索方法」がFALSE ではうまく検索できない

題材として所得税の計算で出てくる配偶者控除、配偶者特別控除の控除額の計算を取り上げていきます。

なお、配偶者控除、配偶者特別控除についてはこちらの記事が参考になるかと思います↓

現状(平成29年中)、納税者(多くは夫)は配偶者(多くは妻)の所得金額に応じて以下のように、配偶者控除、配偶者特別控除を受けることができます。

・配偶者の所得金額が38万円(給料の場合収入が103万円)以下の場合
⇒ 配偶者控除 38万円
・配偶者の所得金額が38万円(給料の場合収入が103万円)を超え、76万円(給料の場合収入が141万円)未満の場合
⇒ 配偶者特別控除 38万円~3万円

*配偶者特別控除は配偶者の所得金額が大きくなるにしたがって段階的に下がっていき(38万円~3万円)、所得金額が76万円以上ではゼロになります。

配偶者控除、配偶者特別控除による控除額をまとめて表にすると下のようになります。

例えば、配偶者(多くは妻)の所得金額が400,000円以上450,000円未満であれば、控除額は360,000円となります。

つまり、納税者(多くは夫)は所得説の計算上360,000の所得控除を受けることができるということです。

セル「D3」に配偶者の所得金額を入力し、それを「検索値」としてセル「D4」で VLOOKUP 関数により控除額を検索したいと思います。

さて、この場合に「検索条件」をFALSE にするとどうなるでしょうか。

セル「D4」に「=VLOOKUP(D3,C11:E21,3,FALSE)」と入力してみます。

この状態で、配偶者の所得金額としてセル「D3」に600,000と入力した場合、計算がうまくできて控除額として160,000が検索されます。

しかし、配偶者の所得金額としてセル「D3」に670,000と入力した場合、計算がうまくできずエラーが出てしまいます。

このセル「D4」に入力した式では、「検索値」の候補となるデータがC列(C11~C21)となっていますが、C列に670,000という金額は存在しないので該当する控除額を検索できなかったということなのです。

2、「検索方法」をTRUE にして「○○以上、✖✖未満」の条件で検索する

ここで役に立つのが「検索方法」をTRUEにして、あいまい検索をする方法です。

あいまい検索では、検索値の元となるデータを「〇〇以上、✖✖未満」のように範囲で区切って該当する情報を検索します。

先に入力したセル「D4」の式のFALSEをTRUEに変更し、「=VLOOKUP(D3,C11:E21,3,TRUE)」とします。

こうすることで、例えば18行目であれば検索値の元となるデータとして 650,000以上、700,000未満の範囲が指定され、それに該当する情報がこの行(18行目)に埋め込まれているものと扱われます。

この状態で、セル「D3」に 670,000 と入力すれば、セル「D4」には該当する控除額の110,000が検索されます。

何点か注意点を挙げたいと思います。

「範囲」の一番左側の列は必ず数値でなければならない

「=VLOOKUP(検索値,範囲,列番号,検索方法)」の引数「範囲」の一番左側の列(上の表ではC列)は、検索値の元となるデータとなりますが、あいまい検索をするときは必ず数値にしなければなりません。

文字列ではあいまい検索はできないので注意して下さい。

「範囲」の一番左側の列は「〇〇以上」という条件の下限になる

「範囲」の一番左側の列は、条件の下限の数値として扱われます。

上の表で言えば、C11~C21まで
C11 0以上
C12 380,000以上
C13 400,000以上
C14 450,000以上
C15 500,000以上
C16 550,000以上
C17 600,000以上
C18 650,000以上
C19 700,000以上
C20 750,000以上
C21 760,000以上

という扱いとなります。
「〇〇以上」という条件の下限の数値を一つの列に並べることによって、上限の「××未満」が決まってきます。

例えば18行目であれば、C18に650,000が入力されているので下限が 650,000以上となり、下のC19には700,000が入力されているので上限が 700,000 未満として扱われます。

C21であれば760,000が入力されているので下限が760,000以上となりますが、下の行であるC22は範囲外なので上限はありません。

※なお、上の表ではD列に「✖️✖️未満」という上限を書いてありますが、これは表の見た目上そうしただけです。
検索値の元となるデータはあくまでC列(「範囲」の一番左側の列)のデータです。D列は使ってません。
紛らわしくてすみません。。

このように「範囲」の一番左側の列に「〇〇以上」 という条件の下限を並べるということを意識しましょう。

一番左側の列を「〇〇より大きい」、「〇〇より以下」、「〇〇より小さい」というように扱うことはできませんので注意して下さい。

3、まとめ

以上、VLOOKUP 関数で「検索条件」がTRUEの場合について説明しました。

これを使いこなせるようになれば色々と応用が利くようになりますので是非慣れ親しんで頂ければと思います。

今度は、VLOOKUP 関数を使って源泉所得税額表から源泉所得税額を計算する方法について説明したいと思います。