以前にExcelのif関数で計算していたものをPythonで行ってみました。
以前の記事 → 給与所得控除額をExcelで計算 所得税法別表第五
import openpyxl
import sys
wb = openpyxl.load_workbook('kyuyo_kojo_go.xlsx')
sheet = wb.worksheets[0]
val = sheet['B3'].value
if val <= 1618999:
nencho_kyuyo = val
elif val <= 1619999:
nencho_kyuyo = val - (val -1619000) % 1000
elif val <= 1623999:
nencho_kyuyo = val - (val -1620000) % 2000
elif val <= 6599999:
nencho_kyuyo = val - (val -1624000) % 4000
elif val <= 20000000:
nencho_kyuyo = val
else:
print('20,000千円を超える金額は対象外です')
sys.exit()
print(nencho_kyuyo)
sheet['C4'] = nencho_kyuyo
if nencho_kyuyo <= 650999:
kojo_go = 0
elif nencho_kyuyo <= 1618999:
kojo_go = nencho_kyuyo - 650000
elif nencho_kyuyo <= 1619999:
kojo_go = nencho_kyuyo * 0.6 - 2400
elif nencho_kyuyo <= 1621999:
kojo_go = nencho_kyuyo * 0.6 -2000
elif nencho_kyuyo <= 1623999:
kojo_go = nencho_kyuyo * 0.6 -1200
elif nencho_kyuyo <= 1627999:
kojo_go = nencho_kyuyo * 0.6 - 400
elif nencho_kyuyo <= 1799999:
kojo_go = nencho_kyuyo * 0.6
elif nencho_kyuyo <= 3599999:
kojo_go = nencho_kyuyo * 0.7 -180000
elif nencho_kyuyo <= 6599999:
kojo_go = nencho_kyuyo * 0.8 - 540000
elif nencho_kyuyo <= 9999999:
kojo_go = int(nencho_kyuyo * 0.9 - 1200000)
else:
kojo_go = nencho_kyuyo - 2200000
print(kojo_go)
sheet['D4'] = kojo_go
wb.save('kyuyo_kojo_go.xlsx')
給与の総額が6,600千円以上10,000千円未満の場合には、計算結果に1円未満の端数が生じる場合があるため、計算式にintを加えています。
Excelのワークシート(令和元年用)→ kyuyo_kojo_go.xlsx
上記のファイルを開いてB3セルに入力されている給与の総額を読み込んで年調給与額と給与所得控除後の給与等の金額を計算し、それぞれC4セル、D4セルに記入します。(Excelで計算した結果とPythonで計算した結果を並べて表示しています。)