Bảng tính thuế Thu nhập cá nhân (2 người xem)

  • Thread starter Thread starter NH_DK
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

NH_DK

Let's patience
Tham gia
29/7/10
Bài viết
865
Được thích
1,203
Nghề nghiệp
Kế toán
Mình tham gia lớp học "Lập trình VBA trong Excel" và đã hoàn thiện được file tính thuế thu nhập cá nhân này. Mình muốn chia sẻ với mọi người. Hi vọng phần nào giúp được các anh chị kế toán trong công việc.
 

File đính kèm

Mình tham gia lớp học "Lập trình VBA trong Excel" và đã hoàn thiện được file tính thuế thu nhập cá nhân này. Mình muốn chia sẻ với mọi người. Hi vọng phần nào giúp được các anh chị kế toán trong công việc.

Bạn đã gọi là "Chia sẻ" mà Code của file đặt mật khẩu như thế thì hơi ...
Theo tôi đã không đưa lên diễn đàn thì thôi, còn đưa lên thì không nên đặt mật khẩu
(nói thật nếu đọc được code trong file bạn chỉ cần 5 giây là xong, chẳng qua mệt...)
 
Bạn đã gọi là "Chia sẻ" mà Code của file đặt mật khẩu như thế thì hơi ...
Theo tôi đã không đưa lên diễn đàn thì thôi, còn đưa lên thì không nên đặt mật khẩu
(nói thật nếu đọc được code trong file bạn chỉ cần 5 giây là xong, chẳng qua mệt...)

Sorry! Em lại quên đó. Chứ em không cố tình đâu mà..............!!!
 
Ông anh Ngọc dạo này tiến bộ rõ rệt nhỉ
chăm chỉ quá, hôm nào đi cafe ông anh nhé
mà ông anh ko share pass cho mọi người xem, để học hỏi ạ
 
Hehehe cần gì gia chủ. Mình tự mở ra xem thôi. Muỗi
 
Dựa theo file tập tin đính kèm, NH_DK có thể chỉ giáo thêm về cách làm tờ khai 02/KK-TNCN được không?
tại hạ xin cảm ơn!!
 
Mình nhờ ChatGPT hỗ trợ
'ChatGPT
Function ThueTNCN(TNTT As Double, namquythang As String) As Double
Dim x As Double
Dim heso As Double
Dim i As Integer
Dim thue As Double
Dim BacThue() As Double
Dim TyLeThue() As Double

x = TNTT / 1000000 ' Thu nh?p tính thu? (tri?u d?ng)

' Xác d?nh h? s? theo k? tính thu?
Select Case LCase(namquythang)
Case "thang": heso = 1
Case "quy": heso = 3
Case "nam": heso = 12
Case Else
ThueTNCN = 0
Exit Function
End Select

' Khai báo m?ng b?c thu? và t? l? thu?
BacThue = Array(0, 5, 10, 18, 32, 52, 80)
TyLeThue = Array(0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35)

If x <= 0 Then
thue = 0
Else
For i = 0 To UBound(BacThue)
Dim mucDuoi As Double
Dim mucTren As Double

If i = UBound(BacThue) Then
mucDuoi = BacThue(i) * heso
mucTren = x ' Không gi?i h?n trên
Else
mucDuoi = BacThue(i) * heso
mucTren = BacThue(i + 1) * heso
End If

If x > mucDuoi Then
If x <= mucTren Then
thue = thue + (x - mucDuoi) * TyLeThue(i)
Exit For
Else
thue = thue + (mucTren - mucDuoi) * TyLeThue(i)
End If
End If
Next i
End If

ThueTNCN = thue * 1000000 ' Ð?i v? d?ng
End Function
Nhờ mọi người text thử do mình không là dân kế toán nên không biết thế nào
Cấu trúc hàm =ThueTNCN(Giatri;"thang") ; =ThueTNCN(Giatri;"quy") ; =ThueTNCN(Giatri;"nam")
 

File đính kèm

Ngày xưa mình làm ở đơn vị Tư vấn thiết kế dùng Excel nhiều nay mình ít làm nên chỉ tham gia với diễn đàn hơn nữa tuổi lớn chuẩn bị về theo 178
Mã:
Function ThueTNCN(TNTT As Double, namquythang As String) As Double
Dim x As Double
Dim heso As Double
Dim i As Integer
Dim thue As Double
Dim BacThue() As Double
Dim TyLeThue() As Double

x = TNTT / 1000000 ' Thu nh?p tính thu? (tri?u d?ng)

' Xác d?nh h? s? theo k? tính thu?
Select Case LCase(namquythang)
Case "thang": heso = 1
Case "quy": heso = 3
Case "nam": heso = 12
Case Else
ThueTNCN = 0
Exit Function
End Select

' Khai báo m?ng b?c thu? và t? l? thu?
BacThue = Array(0, 5, 10, 18, 32, 52, 80)
TyLeThue = Array(0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35)

If x <= 0 Then
thue = 0
Else
For i = 0 To UBound(BacThue)
Dim mucDuoi As Double
Dim mucTren As Double

If i = UBound(BacThue) Then
mucDuoi = BacThue(i) * heso
mucTren = x ' Không gi?i h?n trên
Else
mucDuoi = BacThue(i) * heso
mucTren = BacThue(i + 1) * heso
End If

If x > mucDuoi Then
If x <= mucTren Then
thue = thue + (x - mucDuoi) * TyLeThue(i)
Exit For
Else
thue = thue + (mucTren - mucDuoi) * TyLeThue(i)
End If
End If
Next i
End If

ThueTNCN = thue * 1000000 ' Ð?i v? d?ng
End Function
Bạn đưa code vào thẻ như thế này, chứ không phải đưa vào file như bài #10.
 
Cùng vấn đề trên mình thấy thuật toán của Copilot khác mình nhờ mọi người đã từng kinh nghiệm kế toán xem giúp code với các thuật toán có đúng không ?
Function ThueTNCN(TNTT As Double, kyTinhThue As String, Optional SoNguoiPhuThuoc As Integer = 0) As Double
Dim heSo As Integer, thue As Double, i As Integer
Dim BacThue As Variant, TyLeThue As Variant
Dim GiamTruBanThan As Double, GiamTruNguoiPhuThuoc As Double
Dim ThuNhapTinhThue As Double
' Định nghĩa mức giảm trừ
GiamTruBanThan = 11000000
GiamTruNguoiPhuThuoc = 4400000
' Xác định hệ số kỳ tính thuế
heSo = IIf(LCase(Trim(kyTinhThue)) = "thang", 1, IIf(LCase(Trim(kyTinhThue)) = "quy", 3, IIf(LCase(Trim(kyTinhThue)) = "nam", 12, 0)))
If heSo = 0 Then
ThueTNCN = CVErr(xlErrValue)
Exit Function
End If
' Tính thu nhập chịu thuế sau giảm trừ
ThuNhapTinhThue = (TNTT - (GiamTruBanThan + GiamTruNguoiPhuThuoc * SoNguoiPhuThuoc) * heSo) / 1000000
If ThuNhapTinhThue <= 0 Then
ThueTNCN = 0
Exit Function
End If
' Định nghĩa bảng thuế suất
BacThue = Array(5, 10, 18, 32, 52, 80)
TyLeThue = Array(0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35)
' Tính thuế theo từng bậc
thue = 0
For i = 0 To UBound(BacThue)
If ThuNhapTinhThue > IIf(i = 0, 0, BacThue(i - 1)) Then
thue = thue + (Application.Min(ThuNhapTinhThue, BacThue(i)) - IIf(i = 0, 0, BacThue(i - 1))) * TyLeThue(i)
Else
Exit For
End If
Next i
ThueTNCN = thue * 1000000 ' Quy đổi về đơn vị đồng
End Function
Bài đã được tự động gộp:

Mã:
Function ThueTNCN(TNTT As Double, namquythang As String) As Double
Dim x As Double
Dim heso As Double
Dim i As Integer
Dim thue As Double
Dim BacThue() As Double
Dim TyLeThue() As Double

x = TNTT / 1000000 ' Thu nh?p tính thu? (tri?u d?ng)

' Xác d?nh h? s? theo k? tính thu?
Select Case LCase(namquythang)
Case "thang": heso = 1
Case "quy": heso = 3
Case "nam": heso = 12
Case Else
ThueTNCN = 0
Exit Function
End Select

' Khai báo m?ng b?c thu? và t? l? thu?
BacThue = Array(0, 5, 10, 18, 32, 52, 80)
TyLeThue = Array(0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35)

If x <= 0 Then
thue = 0
Else
For i = 0 To UBound(BacThue)
Dim mucDuoi As Double
Dim mucTren As Double

If i = UBound(BacThue) Then
mucDuoi = BacThue(i) * heso
mucTren = x ' Không gi?i h?n trên
Else
mucDuoi = BacThue(i) * heso
mucTren = BacThue(i + 1) * heso
End If

If x > mucDuoi Then
If x <= mucTren Then
thue = thue + (x - mucDuoi) * TyLeThue(i)
Exit For
Else
thue = thue + (mucTren - mucDuoi) * TyLeThue(i)
End If
End If
Next i
End If

ThueTNCN = thue * 1000000 ' Ð?i v? d?ng
End Function
Bạn đưa code vào thẻ như thế này, chứ không phải đưa vào file như bài #10.
Thực sự cám ơn bạn đã hướng dẫn nhưng mình lỡ bài trên nưa rồi
 
Cùng vấn đề trên mình thấy thuật toán của Copilot khác mình nhờ mọi người đã từng kinh nghiệm kế toán xem giúp code với các thuật toán có đúng không ?
Trích: Thư viện Pháp luật
"...Có thể hiểu đơn giản, thu nhập chịu thuế là khoản thu nhập tổng hợp được xem xét để tính thuế, còn thu nhập tính thuế là thu nhập chịu thuế sau khi đã trừ các khoản miễn thuế, giảm thuế và khấu trừ khác."

Từ Thu nhập chịu thuế chỉ trừ gia cảnh (11Tr) và phụ thuộc (4.4Tr/người) là chưa đủ, còn thiếu nhiều khoản khác phải trừ.

Vã lại, theo kinh nghiệm riêng của tôi dùng code VBA để tính TNCN không linh động và tiện dùng bằng công thức excel.

Thân
 
Web KT

Bài viết mới nhất

Back
Top Bottom