なかなか手ごわかった
先日某所から頼まれたのでエクセルで関数組んでたんですけど、良いアイデアがなかなか出なくて結構苦戦しました。
※エクセルとか関数とか「それっておいしいの?」という人は読み飛ばしてください。
要は「ズラーッと並んだ従業員の月額所得(課税対象)の隣に適切な所得税を表示したい」というわけ。
元になるデータは国税庁の源泉徴収税額表というもので(エクセルデータがダウンロードできる)、基本的には「この金額だったら税額はいくら」と目視で照らし合わせればいいんだけど、1件、2件ならまだしも数十件〜数百件ともなるとさすがに工数がかかりすぎて無理。それに確認ミスも出るだろうし。
というわけで関数を組んで一気に手間を減らしてあげようと思ったのですが、所得税の計算ってのが結構ややこしくてね。一筋縄ではいかない。
■仕組み
所得が
1.
88000円未満だったら3.063%が税額。(1円未満切り捨て)
それ以上はどうなっているかというと...
2.
88000円以上99000円未満は1000円単位で税額が決められている。
89000円以上90000円未満は3200円
90000円以上91000円未満は3200円
のように。
3.
さらに99000円以上221000円未満は2000円単位で税額が決められている。
4.
さらに221000円以上1010000円未満は3000円単位で税額が決められている。
※その先もあるけど、そこはひとまず無視(そんなに稼ぐ人いないんで^^)
で、「106420円は105000円以上107000未満だから税額は3800円だ」ということが瞬時に分かる表を作りたかったわけですよ。
エクセルは便利な表計算ソフトで様々な関数を駆使してかなり高度な処理をすることが出来ます。
今回のケースも関数を使えばおそらく簡単に処理できる内容ですが、肝心なのはどの関数をどのように組み合わせて結果を表示させるか。
注意しなければいけないのはあまりに真正面から問題に取り組んだり一つの方法に固執しすぎると迷路にハマる危険性があること。
なので柔軟に考え方を変える必要があります。
例えば今回のケースでいえば「○円以上△円未満」という部分に引っかかると解決がかなり難しくなります。
そこを正面突破せずに「○円以上△円未満」の数字を○円に丸めてしまえば結果は変わらないのでそれでいいのです。
上の例で言えば「106420円を105000円に」丸めてしまえばいいわけです。それで税額は3800円がすぐに割り出せます。
ま、そんなこんなでいろいろと頭を捻った結果ちゃんと税額を表示する表が作れました。
一番手こずったのは2000円単位で税額が変わるところで、どうすれば2000円ごとに金額を丸められるかというところで頭を使いました。
出来上がった数式はなんてことない引き算と割り算だけですが、それの組み合わせ方を見つけるまでに5時間もかかってしまいました(笑)。
なにはともあれ来月からは手間が大幅に減りそうでなによりです。
はぁ、疲れた...