Mình lần đầu viết bài trên GPE. Mình xin đóng góp hàm tính thuế TNCN, nội dung nếu có trùng lặp mong mod bỏ qua! Mình có tham khảo thuật toán trong blog của Lê văn Luật, mình có thay đổi chút ít để có thể tính cho mọi mức thu nhập.
Với 6 tháng đầu năm 2013 cú pháp trong excel: thueTNCN(tongthunhap,phuthuoc,0)
6 tháng cuối năm 2013: thueTNCN(tongthunhap,phuthuoc)
Mã:
Function thueTNCN(ByVal tongthunhap As Currency, _
Optional ByVal phuthuoc As Byte = 0, _
Optional ByVal t7_2013 As Boolean = True, _
Optional ByVal khongthue As Currency = 0) As Currency
Dim bieuthue, thuesuat
bieuthue = Array(5000000, 5000000, 8000000, 14000000, 20000000, 28000000, 0)
'Voi muc bieu thue tren 80 trieu thi bieu thue = tong thu nhap - giam tru
thuesuat = Array(0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35)
Dim i As Byte
Dim baohiem, tn_tinhthue, ttn_chiuthue, giamtru As Currency
Dim thue, t As Currency
baohiem = 239000 'Thay doi cho phu hop
ttn_chiuthue = tongthunhap - khongthue - baohiem
If t7_2013 Then
giamtru = 9000000 + phuthuoc * 3600000 'Muc giam tru tinh tu ngay 01-7-2013
Else
giamtru = 4000000 + phuthuoc * 1600000 'Muc giam tru 6 thang dau nam 2013
End If
If tongthunhap - giamtru > 80000000 Then
bieuthue(6) = bieuthue(6) + tongthunhap - giamtru
End If
thue = 0
If ttn_chiuthue > giamtru Then
i = 0
tn_tinhthue = ttn_chiuthue - giamtru
While tn_tinhthue > 0
If tn_tinhthue < bieuthue(i) Then
t = tn_tinhthue
tn_tinhthue = 0
Else
t = bieuthue(i)
tn_tinhthue = tn_tinhthue - t
End If
thue = thue + t * thuesuat(i)
i = i + 1
Wend
End If
thueTNCN = thue
End Function
6 tháng cuối năm 2013: thueTNCN(tongthunhap,phuthuoc)
Lần chỉnh sửa cuối:

