logo-sm

お問い合わせは Webフォームから

ブログ

Googleスプレッドシートで源泉徴収税額表からXLOOKUP関数で税額を取得する方法

2023.02.17

XLOOKUP関数で2つの検索条件で片方は以上未満でそして横軸のデーターを取り出したい時に使います。

サンプルとして今回は「源泉徴収税額表」でやってみたいと思います。

この税額表は以下のような感じのデーターが並んでいます。縦軸の「以上未満」で検索して、そして横軸の「扶養親族等の数」でデーターを取り出したい時ってありますよね。たぶん似たようなケースもあるんじゃないかと。
給与所得の源泉徴収税額表(月額表)(1から7ページ)

1.まずは源泉徴収税額表(月額表)をExcelからスプレッドシートへ!

まずは国税庁のホームページを開いてこの給与所得の源泉徴収税額表(月額表)(1から7ページ)のExcel版をダウンロードして、Googleドライブに格納して開いてみましょう。
そして「ファイル」→「Googleスプレッドシートとして保存」しましょう。スプレッドシートに変換されましたか?

2.源泉徴収税額表(月額表)のデーターを少しだけ加工

今回は表として整備されている74万円未満(302行目)までを対象とします。
「扶養親族等の数」を0人を0、1人を1のように数字にします。そして上から8行目の「88,000」を「0」にします。88,000が1行下にあり、条件が重複するのは正しく検索出来ないためです。
あとN列辺りに「金額」「人数」「税額」という項目を作っておきます。

3.検索条件を作ってみまししょう!

「金額」と「人数」が合致した場所の「税額」を所得するにはズバリ以下の式で取得出来ます。

■全体
XLOOKUPの式

■関数を拡大
XLOOKUP関数を拡大

XLOOKUP(検索キー、検索範囲、結果の範囲、[見つからない場合の値]、[一致モード]、[検索モード:既定値1なので今回省略]

内容を日本語に変更したら以下の用な感じです。

xlookup(人数のセル,扶養人数0のセル:扶養人数7のセル,XLOOKUP(金額のセル,給与の金額の以上のセルの8行目:給与の金額の以上のセルの302行目,税額表のD8行目のセル:税額表のO302行目のセル,データーなかったら返す値,-1))

今回のキモは2つあり、XLOOKUPのネストをしていることと、一致モードで-1を使っていることです。

XLOOKUPのネストをしているとどうなる?

1つ目のXLOOKUPで横軸のデーターを見つけます。例えば1なら1の縦の列を選択するイメージです。
その縦がわかった状態で、今度は横軸のデーターを選んで2つがクロスする場所の値を返す感じです。

一致モードで-1を使うとどうなる?

一致モードで上から順番に検索し、金額の値よりも次に小さい値の行を割り出しています。例えば金額が89500の時の動きは以下です。
88000→一致しないので次。
90000→一致しない。でも条件としては「金額」より検索範囲の値が大きいので次の小さい値を返す。
という動きです。この動きは未満の動作になります。なので片方だけ判れば未満のデーター取得ができます。未満だけ判ればデーターは取れるってことですね。
そういう理由で若干不正な動きがあります。それはデーターの検索範囲の最終行に当たる302行目(737,000)より大きい数字を入れても737,000の扶養人数のデーターを返してしまいます。

でもここまで出来ればだいぶ他のものにも応用が効きそうです!

作ったスプレッドシートを公開しておきますのでじっくり見て頂けます。

関連記事

  • WindowsのWSL2上のDockerでup時に’ContainerConfig’のエラーが出た。
    当社の開発環境はMacとWindowsが混在したDocker上での開発を行っています。なのでMacでOKだけど […]

    2024.04.08

  • VSCode (内のPowerShell)でアドレス設定を切り替え!
    【経緯】 最近携わった案件で大量のNW機器のキッティングをした際、それぞれにSSHでの接続性などを確認するテス […]

    2023.10.13

  • PaloaltoでWindows NTPサーバに同期
    【事象と対処法】 オフライン環境のPaloaltoでNTPの機能確認をする必要があり、Windows標準のNT […]

    2023.10.13

  • パートナー

  • 人材育成・採用情報