Hướng dẫn tạo hàm tính thuế thu nhập cá nhân bằng Excel XP hoặc Excel 2003

Đây là add in của cách đổi từ tiền số sang tiền chữ. Bạn nào xài 2003 thì vào tools add in browse, bạn nào xài 2007 thì vao biểu tượng ofice bên gốc trái chọn excel options chon add in chọn go. Bạn nào muốn có thì mail cho mình wedcolf@gmail.com mình không biết làm sao để up lên diễn đàn
 
Em không phải dân trong nghề nhưng vì bị mấy chị kế toán chỗ em ức hiếp, kiên quyết không cho xem payslip xem mình bị trừ cái gì và bao nhiêu với lý do các chị ý còn bận trăm công ngàn việc vì vậy kính mong các bác cho em xin 1 cái bảng mẫu tính như thế nào mà em chỉ cần cho cái số lương của em ra là tự nháy ra các số khác (em thấy có ai đó đã làm rùi mà không nhớ :048:)

Các bác giúp iem với nhá.
 
Tuy có muộn màng, nhưng chắc không thừa

Cuối năm chắc nhiều bạn cần quyết toán thuế thu nhập cá nhân của công ty , nên Dat_vuong xin góp ít kiến thức mẫu giáo về excel để tạo các hàm tính thuế thu nhập cá nhân bằng excel sau đây, nếu bạn nào thấy cần chỉnh sửa xin vui lòng góp ý kiến:

A. Kế hoạch và Công tác Chuẩn bị
. . . . . . .
B. Tiến hành tạo hàm

Function pitlc(gross_local)
'Personal Income Tax for Local Vietnamese Citizen
If (gross_local > 0) And (gross_local <= 5000000) Then
pitlc = 0
ElseIf (gross_local > 5000000) And (gross_local <= 15000000) Then
pitlc = (gross_local - 5000000) * 0.1
ElseIf (gross_local > 15000000) And (gross_local <= 25000000) Then
pitlc = 1000000 + ((gross_local - 15000000) * 0.2)
ElseIf (gross_local > 25000000) And (gross_local <= 40000000) Then
pitlc = 3000000 + ((gross_local - 25000000) * 0.3)
ElseIf (gross_local > 40000000) Then
pitlc = 7500000 + ((gross_local - 40000000) * 0.4)
End If
End Function


Function pitfr(gross_foreign)

'Personal Income Tax for Resident Foreigner in Vietnamese
If (gross_foreign > 0) And (gross_foreign <= 8000000) Then
pitfr = 0
ElseIf (gross_foreign > 8000000) And (gross_foreign <= 20000000) Then
pitfr = (gross_foreign - 8000000) * 0.1
ElseIf (gross_foreign > 20000000) And (gross_foreign <= 50000000) Then
pitfr = 1200000 + ((gross_foreign - 20000000) * 0.2)
ElseIf (gross_foreign > 50000000) And (gross_foreign <= 80000000) Then
pitfr = 7200000 + ((gross_foreign - 50000000) * 0.3)
ElseIf (gross_foreign > 80000000) Then
pitfr = 16200000 + ((gross_foreign - 80000000) * 0.4)
End If
End Function

Function net2grosslc(net_local)
'Local Net Salary to be gross-up to Gross Salary
If (net_local > 0) And (net_local <= 5000000) Then
net2grosslc = net_local
ElseIf (net_local > 5000000) And (net_local <= 14000000) Then
net2grosslc = Round((net_local - 500000) / 0.9, 0)
ElseIf (net_local > 14000000) And (net_local <= 22000000) Then
net2grosslc = Round((net_local - 2000000) / 0.8, 0)
ElseIf (net_local > 22000000) And (net_local <= 32500000) Then
net2grosslc = Round((net_local - 4500000) / 0.7, 0)
ElseIf (net_local > 32500000) Then
net2grosslc = Round((net_local - 8500000) / 0.6, 0)
End If
End Function

Function net2grossfr(net_foreign)
'Foreigner Net Salary to be gross-up to Gross Salary
If (net_foreign > 0) And (net_foreign <= 8000000) Then
net2grossfr = net_foreign
ElseIf (net_foreign > 8000000) And (net_foreign <= 18800000) Then
net2grossfr = Round((net_foreign - 800000) / 0.9, 0)
ElseIf (net_foreign > 18800000) And (net_foreign <= 42800000) Then
net2grossfr = Round((net_foreign - 2800000) / 0.8, 0)
ElseIf (net_foreign > 42800000) And (net_foreign <= 63800000) Then
net2grossfr = Round((net_foreign - 7800000) / 0.7, 0)
ElseIf (net_foreign > 63800000) Then
net2grossfr = Round((net_foreign - 15800000) / 0.6, 0)
End If
End Function
C. Tạo Add-in

Mình thấy các hàm này có quá nhiều ký số '0'
Cách mình khắc phục như sau
Khai báo 1 hằng số, VD:

Const Tr As Single = 10^6

Sau đó sau tên hàm, ta đem các tham số chuyển đến cho hàm chia cho Const này;
Cuối cùng hàm trả về giá trị XYZ nào đó ta lại nhân với Const nói trên;

Ví dụ sau:

Function pitlc(gross_local)
Const Tr As Single = 10^6 '<='
'Personal Income Tax for Local Vietnamese Citizen
gross_Local = gross_local / Tr '<='

If (gross_local > 0) And (gross_local <= 5) Then '<='
pitlc = 0
ElseIf (gross_local > 5) And (gross_local <= 15) Then '<='
pitlc = (gross_local - 5) * 0.1 '<='
ElseIf (gross_local > 15) And (gross_local <= 25) Then '<='
pitlc = 1 + ((gross_local - 15) * 0.2) '<='
ElseIf (gross_local > 25) And (gross_local <= 40) Then '<='
pitlc = 3 + ((gross_local - 25) * 0.3) '<='
ElseIf (gross_local > 40) Then '<='
pitlc = 7.5 + ((gross_local - 40) * 0.4) '<='
End If
pitlc = pitlc * tr
End Function
:045:
 
Back
Top