中国・個人所得税計算Excelマクロ

前職で「中国・個人所得税計算サービス」という簡単なWebサービスをつくったところ結構好評で
「使ってますよ」と言ってくださる方も多かった。

最近になってまた個人所得税を計算する機会が増えてきたので、社内資料の作成に便利なようにExcelに移植してみた。
Excelのマクロは使う人が限られてしまうと思いますが、計算確認用によろしければご利用下さい。

※Excelマクロって何?という方は、ドットインストールさんの「ExcelVBA入門」をご覧下さい。

概要

・「=china_income_tax(給与金額,[手取],[賞与],[中国人])」で個人所得税納税額を返す関数です。
・税込または手取給与に対応しています。
・賞与に対応しています。
・外国人、中国人に対応しています。

使い方

※Excel2010を前提に解説します。他のバージョンでも同様の操作で動くと思います。

「Excelのオプション」より「リボンのユーザー設定」から「開発」にチェックを入れます。
china_income_tax_excel_01

「Visual Basic」をクリックします。
china_income_tax_excel_02

「挿入→標準モジュール」をクリックします。
china_income_tax_excel_03

下のコードをそのままコピーして貼り付けます。
china_income_tax_excel_04

「Excelマクロ有効ブック」として名前をつけて保存します。
china_income_tax_excel_05

セルに関数を打ち込むと個人所得税金額が返されます。
china_income_tax_excel_06

詳しい使い方

=china_income_tax(給与金額,[手取],[賞与],[中国人])

・給与金額:人民元の給与金額。
・手取:True or False。オプション。デフォルトはFalse。
・賞与:True or False。オプション。デフォルトはFalse。
・中国人:True or False。オプション。デフォルトはFalse。

例1:日本人の税込給与20,000元の場合

=china_income_tax(20000)

例2:日本人の手取給与20,000元の場合

=china_income_tax(20000,True)

例3:日本人の税込賞与20,000元の場合

=china_income_tax(20000,,True)

例4:中国人の税込給与5,000元の場合

=china_income_tax(5000,,,True)

例5:中国人の手取賞与5,000元の場合

=china_income_tax(5000,True,True,True)

VBAコード

ダブルクリックで「全て選択」になりますのでコピーしてお使い下さい。

Function china_income_tax(salary As Double, Optional tedori As Boolean = False, Optional bonus As Boolean = False, Optional chinese As Boolean = False) As Double

    Dim tax_rate As Double
    Dim tax_deduction As Double
    Dim base_deduction As Double
    Dim salary_after_base_deduction As Double
    
    If bonus = False Then
    
        If chinese = False Then
            base_deduction = 4800
        Else
            base_deduction = 3500
        End If
        
    salary_after_base_deduction = salary - base_deduction
    
    Else
    
        salary_after_base_deduction = Round(salary / 12, 2)
    
    End If
    
    If tedori = False Then
    
        Select Case salary_after_base_deduction
            Case Is <= 1500
                tax_rate = 0.03
                tax_deduction = 0
            Case Is <= 4500
                tax_rate = 0.1
                tax_deduction = 105
            Case Is <= 9000
                tax_rate = 0.2
                tax_deduction = 555
            Case Is <= 35000
                tax_rate = 0.25
                tax_deduction = 1005
            Case Is <= 55000
                tax_rate = 0.3
                tax_deduction = 2755
            Case Is <= 80000
                tax_rate = 0.35
                tax_deduction = 5505
            Case Else
                tax_rate = 0.45
                tax_deduction = 13505
        End Select
    
        If bonus = False Then
            china_income_tax = Round((salary_after_base_deduction) * tax_rate - tax_deduction, 2)
        Else
            china_income_tax = Round((salary) * tax_rate - tax_deduction, 2)
        End If
    
    Else
    
        Select Case salary_after_base_deduction
            Case Is <= 1455
                tax_rate = 0.03
                tax_deduction = 0
            Case Is <= 4155
                tax_rate = 0.1
                tax_deduction = 105
            Case Is <= 7755
                tax_rate = 0.2
                tax_deduction = 555
            Case Is <= 27255
                tax_rate = 0.25
                tax_deduction = 1005
            Case Is <= 41255
                tax_rate = 0.3
                tax_deduction = 2755
            Case Is <= 57505
                tax_rate = 0.35
                tax_deduction = 5505
            Case Else
                tax_rate = 0.45
                tax_deduction = 13505
        End Select
    
        If bonus = False Then
            china_income_tax = Round((salary_after_base_deduction - tax_deduction) / (1 - tax_rate) * tax_rate - tax_deduction, 2)
        Else
            china_income_tax = Round((salary - tax_deduction) / (1 - tax_rate) * tax_rate - tax_deduction, 2)
        End If
    
    End If
    
    If china_income_tax < 0 Then
        china_income_tax = 0
    End If
    
End Function

計算方法の説明

税率と速算控除額

・給与は基礎控除(外国人4,800元、中国人3,500元)を控除した後の金額を税率表に適用することにより税率・速算控除額を求めます。
・賞与は12で割った商を税率表に適用することにより税率・速算控除額を求めます。

計算式(給与)

・個人所得税額=(税込給与額-基礎控除)×税率-速算控除
・個人所得税額=(手取給与額-基礎控除-速算控除)÷(1-税率)×税率-速算控除

計算式(年一回性賞与)

・個人所得税額=税込賞与額×税率-速算控除
・個人所得税額=(手取賞与額 – 速算控除) ÷(1-税率)×税率-速算控除

税率表

級数 税込給与・賞与 手取給与・賞与 税率(%) 速算控除額
~超 ~以下 ~超 ~以下
1 0 1,500 0 1,455 3 0
2 1,500 4,500 1,455 4,155 10 105
3 4,500 9,000 4,155 7,755 20 555
4 9,000 35,000 7,755 27,255 25 1,005
5 35,000 55,000 27,255 41,255 30 2,755
6 55,000 80,000 41,255 57,505 35 5,505
7 80,000 57,505 45 13,505