Bảng tính thuế Thu nhập cá nhân (3 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