Công thức và hàm tính Thuế Thu Nhập Cá Nhân Năm 2009

Thảo luận trong 'Excel và Kế Toán' bắt đầu bởi hoangdanh282vn, 22 Tháng mười hai 2008.

  1. hoangdanh282vn

    hoangdanh282vn Nguyễn Cảnh Hoàng Danh

    Mình gửi các bạn công thức và hàm tính thuế thu nhập cá nhân năm 2009, áp dụng cho các khoản Thu nhập từ tiền lương, tiền công và kinh doanh.

    1. Công thức :
    Với E2 là Thu nhập từ tiền công, tiền lương và kinh doanh, sau khi trừ đi tất cả các khoản giảm trừ

    2. Hàm :
    PHP:
    Function PIT2009(ThuNhap As DoubleOptional PhuThuoc As Byte 0Optional GiamTru As Double 0) As Double
        ThuNhap 
    Round(ThuNhap0)
        
    ThuNhap ThuNhap 4000000 PhuThuoc 1600000 GiamTru
        Select 
    Case ThuNhap
            
    Case 1 To 5000000PIT2009 ThuNhap 0.05
            
    Case 5000001 To 10000000PIT2009 ThuNhap 0.1 250000
            
    Case 10000001 To 18000000PIT2009 ThuNhap 0.15 750000
            
    Case 18000001 To 32000000PIT2009 ThuNhap 0.2 1650000
            
    Case 32000001 To 52000000PIT2009 ThuNhap 0.25 3250000
            
    Case 52000001 To 80000000PIT2009 ThuNhap 0.3 5850000
            
    Case Is 80000000PIT2009 ThuNhap 0.35 9850000
        End Select
    End 
    Function
    Với Thunhap là khoản Thu nhập từ tiền công, tiền lương và kinh doanh, chưa trừ bất kỳ khoản giảm trừ nào như giảm trừ cho bản thân, người phụ thuộc, BHXH...

    Phuthuoc là số người phụ thuộc được giảm trừ.

    Giamtru là tổng các khoản giảm trừ (không bao gồm giảm trừ cho người phụ thuộc và cho bản thân 4,000,000 đ.
     

    Các file đính kèm:

    Last edited: 30 Tháng mười hai 2008
  2. OverAC

    OverAC Đỗ Nguyên Bình Staff Member

    Cách mình làm thì:
    1. Không có giảm trừ
    2. Không khai báo biến nhiều, chơi variance luôn cho tiện :)
    3. Có thêm 1 vài hàm tính xuôi tính ngược cho vui.
    [highlight=vb]' Copy right by www.giaiphapexcel.com
    ' Coded by Do Nguyen Binh - OverAC
    ' overac@giaiphapexcel.com
    Function pitfromgross(Gross_Salary, Optional dependance = 0)
    TI = Gross_Salary - 4000000 - dependance * 1600000

    If TI < 0 Then
    pitfromgross = 0
    ElseIf TI < 5000000 Then
    pitfromgross = TI * 0.05
    ElseIf TI < 10000000 Then
    pitfromgross = (TI - 5000000) * 0.1 + 250000
    ElseIf TI < 18000000 Then
    pitfromgross = (TI - 10000000) * 0.15 + 750000
    ElseIf TI < 32000000 Then
    pitfromgross = (TI - 18000000) * 0.2 + 1950000
    ElseIf TI < 52000000 Then
    pitfromgross = (TI - 32000000) * 0.25 + 4750000
    ElseIf TI < 80000000 Then
    pitfromgross = (TI - 52000000) * 0.3 + 9750000
    Else
    pitfromgross = (TI - 80000000) * 0.35 + 18150000
    End If
    End Function
    Function grosstonet(Gross_Salary, Optional dependance = 0)
    grosstonet = Gross_Salary - pitfromgross(Gross_Salary, dependance)
    End Function
    Function pitfromnet(Net_Salary, Optional dependance = 0)
    base = 4000000 + dependance * 1600000
    If Net_Salary < base Then
    pitfromnet = 0
    ElseIf Net_Salary < base + 4750000 Then
    pitfromnet = (Net_Salary - base) * 0.05 / 0.95
    ElseIf Net_Salary < base + 9250000 Then
    pitfromnet = (Net_Salary - base - 4750000) * 0.1 / 0.9 + 250000
    ElseIf Net_Salary < base + 16050000 Then
    pitfromnet = (Net_Salary - base - 9250000) * 0.15 / 0.85 + 750000
    ElseIf Net_Salary < base + 27250000 Then
    pitfromnet = (Net_Salary - base - 16050000) * 0.2 / 0.8 + 1950000
    ElseIf Net_Salary < base + 42250000 Then
    pitfromnet = (Net_Salary - base - 27250000) * 0.25 / 0.75 + 4750000
    ElseIf Net_Salary < base + 61850000 Then
    pitfromnet = (Net_Salary - base - 42250000) * 0.3 / 0.7 + 9750000
    Else
    pitfromnet = (Net_Salary - base - 61850000) * 0.35 / 0.65 + 18150000
    End If
    End Function
    Function nettogross(Net_Salary, Optional dependance = 0)
    base = 4000000 + dependance * 1600000
    If Net_Salary < base Then
    nettogross = Net_Salary
    ElseIf Net_Salary < base + 4750000 Then
    nettogross = (Net_Salary - base) / 0.95 + base
    ElseIf Net_Salary < base + 9250000 Then
    nettogross = (Net_Salary - base - 4750000) / 0.9 + base + 5000000
    ElseIf Net_Salary < base + 16050000 Then
    nettogross = (Net_Salary - base - 9250000) / 0.85 + base + 10000000
    ElseIf Net_Salary < base + 27250000 Then
    nettogross = (Net_Salary - base - 16050000) / 0.8 + base + 18000000
    ElseIf Net_Salary < base + 42250000 Then
    nettogross = (Net_Salary - base - 27250000) / 0.75 + base + 32000000
    ElseIf Net_Salary < base + 61850000 Then
    nettogross = (Net_Salary - base - 42250000) / 0.7 + base + 52000000
    Else
    nettogross = (Net_Salary - base - 61850000) / 0.65 + base + 80000000
    End If
    End Function
    Function grossfromnet(Net_Salary, Optional dependance = 0)
    grossfromnet = nettogross(Net_Salary, dependance)
    End Function
    Function Netfromgross(Gross_Salary, Optional dependance = 0)
    Netfromgross = grosstonet(Gross_Salary, dependance)
    End Function[/highlight]
     

    Các file đính kèm:

    Last edited: 22 Tháng mười hai 2008
  3. solomon2211

    solomon2211 Well-Known Member

    Nhân đây, cũng xin gửi đến các bạn hàm tính thuế TNCN từ thu nhập Net.


    * Thuế TNCN từ Thu nhập Gross
    Public Function PIT(ThuNhap As Double) As Double
    If ThuNhap<= 5000000 Then
    PIT = 0
    ElseIf ThuNhap<= 5000000 Then
    PIT = ThuNhap* 5 / 100
    ElseIf ThuNhap<=10000000 Then
    PIT = ThuNhap* 10 / 100 - 250000
    ElseIf ThuNhap<= 18000000 Then
    PIT = ThuNhap* 15 / 100 – 750000
    ElseIf ThuNhap<= 32000000 Then
    PIT = ThuNhap* 20 / 100 – 1650000
    ElseIf ThuNhap<= 52000000 Then
    PIT = ThuNhap* 25 / 100 – 3250000
    ElseIf ThuNhap<= 80000000 Then
    PIT = ThuNhap* 30 / 100 – 5850000
    Else
    PIT = ThuNhap* 35 / 100 - 9850000
    End If
    End Function


    * Thuế TNCN từ Thu nhập Net
    Public Function PITNET(ThuNhapNet As Double) As Double
    Dim ThuNhapGross As Double
    ThuNhapGross = ThuNhapNet
    Do Until Round(PIT(ThuNhapGross), 0) = ThuNhapGross - ThuNhapNet
    If ThuNhapGross - Round(PIT(ThuNhapGross), 0) < ThuNhapNet Then
    ThuNhapGross = ThuNhapNet + Round(PIT(ThuNhapGross), 0)
    Else
    ThuNhapGross = ThuNhapNet - Round(PIT(ThuNhapGross), 0)
    End If
    Loop
    PITNET = Round(PIT(ThuNhapGross), 0)

    End Function
     
    Last edited: 22 Tháng mười hai 2008
  4. Mr Okebab

    Mr Okebab Ngon Ngất Ngây

    Chau chuốt thêm chút xíu :


    PHP:
    Function PIT2009(ThuNhap As DoubleOptional PhuThuoc As Byte 0Optional GiamTru As Double 0) As Double
        Application
    .Volatile (False)
        
    ThuNhap Round(ThuNhap0)
        
    ThuNhap ThuNhap 4000000 PhuThuoc 1600000 GiamTru
        Select 
    Case ThuNhap
            
    Case 1 To 5000000PIT2009 ThuNhap 0.05
            
    Case 5000001 To 10000000PIT2009 ThuNhap 0.1 250000
            
    Case 10000001 To 18000000PIT2009 ThuNhap 0.15 750000
            
    Case 18000001 To 32000000PIT2009 ThuNhap 0.2 1650000
            
    Case 32000001 To 52000000PIT2009 ThuNhap 0.25 3250000
            
    Case 52000001 To 80000000PIT2009 ThuNhap 0.3 5850000
            
    Case Is 80000000PIT2009 ThuNhap 0.35 9850000
        End Select
    End 
    Function
    Thân!
     
  5. ST-Lu!

    ST-Lu! Love Wingchun

    Thưa các anh
    Em hỏi chút xíu thôi, tại sao mình phải thêm = 0 vào sau byte và Double ạ
    khi nào mình khai báo optional ở trước biến??

    Cám ơn các anh
     
    Last edited: 6 Tháng hai 2009
  6. ptm0412

    ptm0412 Excel Ordinary Member


    1. Optional: tham số có thể bỏ qua trong công thức có dùng hàm

    2. = 0: Nghĩa là nếu bỏ qua (như điều 1), thì có sẵn giá trị zero để xét theo tham số này khi nó bằng zero.
    Khi viết hàm, người viết có thể quy định khác, thí dụ = 1, thì khi bỏ qua, sẽ xét theo tham số này khi nó bằng 1
     
  7. viva81

    viva81 New Member

    sao lại có các số như là 75000, 1650000...5850000 ấy nhỉ? tớ chả hiểu gì cả, híc các bác giải thích kỹ giúp với :=\+
     
  8. hoangdanh282vn

    hoangdanh282vn Nguyễn Cảnh Hoàng Danh

    Bạn down file VD mình gửi đính kèm, trong sheet "Cach tinh" mình có ghi rõ cách tính.
     
  9. tiger2774

    tiger2774 www.danketoan.com

    Bạn xem phụ lục đính kèm sẽ hiểu được cái con số ấy ở đâu ra nhé
     

    Các file đính kèm:

  10. ChanhTQ@

    ChanhTQ@ Thành viên già cỗi.

    Theo mình nghỉ, tất cả các sản phẩm bên trên để tính TTN đều có thể ước lượt.

    Xin đơn cử:
    Mã:
    Public Function PIT(ThuNhap As Double) As Double
    If ThuNhap<= 5000000 Then
    PIT = 0
    ElseIf ThuNhap<= 5000000 Then
    PIT = ThuNhap* 5 / 100
    ElseIf ThuNhap<=10000000 Then
    PIT = ThuNhap* 10 / 100 - 250000
    ElseIf ThuNhap<= 18000000 Then
    PIT = ThuNhap* 15 / 100 – 750000
    ElseIf ThuNhap<= 32000000 Then
    PIT = ThuNhap* 20 / 100 – 1650000
    ElseIf ThuNhap<= 52000000 Then
    PIT = ThuNhap* 25 / 100 – 3250000
    ElseIf ThuNhap<= 80000000 Then
    PIT = ThuNhap* 30 / 100 – 5850000
    Else
    PIT = ThuNhap* 35 / 100 - 9850000
    End If
    End Function
    Ta có thể viết lại như sau:
    PHP:
    Public Function PIT(ThuNhap As Double) As Double
     
    Const Tr As Double 10^6      '<='
    ThuNhap =ThuNhap Tr           '<='

    If ThuNhap<= 5 Then '?'
    PIT 0
    ElseIf ThuNhap<= 5 Then '?'
    PIT ThuNhap100
    ElseIf ThuNhap<=10 Then
    PIT 
    ThuNhap10 100 .250
    ElseIf ThuNhap<= 18 Then
    PIT 
    ThuNhap15 100 – .75
    ElseIf ThuNhap<= 32000000 Then
    PIT 
    ThuNhap20 100 – 1.65
    ElseIf ThuNhap<= 52 Then
    PIT 
    ThuNhap25 100 – 3.25
    ElseIf ThuNhap<= 80 Then
    PIT 
    ThuNhap30 100 – 5.85
    Else
    PIT ThuNhap35 100 9.85
    End 
    If
    PIT =PIT Tr    '<='
    End Function
     
  11. Vu Thi Dieu Thu

    Vu Thi Dieu Thu New Member

    Các bạn cao thủ ơi, vì tớ không rành các hàm nên tớ dùng công thức thế này. Tớ dùng kiểu If and cho công thức tính thuế từ 4 năm rồi thấy vẫn ổn. Tất nhiên vì từ năm 09 thuế thay đổi nên tớ đã cập nhật, nhưng vẫn chỉ luôn là If và And lồng nhau thôi.
    Giả sử D12 là ô chứa giá trị “Thu nhập tính thuế trong tháng” (Là thu nhập chịu thuế trừ đi các khoản giảm trừ) thì công thức để tính thuế thu nhập phải nộp trong tháng như sau:
    =IF(AND(D12>0,D12<=5000000),0.05*D12,
    IF(AND(D12>5000000,D12<=10000000),0.1*D12-250000,
    IF(AND(D12>10000000,D12<=18000000),0.15*D12-750000,
    IF(AND(D12>18000000,D12<=32000000),0.2*D12-1650000,
    IF(AND(D12>32000000,D12<=52000000),0.25*D12-3250000,
    IF(AND(D12>52000000,D12<=80000000),3*D12-5850000,
    IF(D12>80000000,0.35*D12-9850000,0)))))))


    Công thức tương tự khi quyết toán thuế vì thực ra quyết toán thuế chính là tính bình quân thu nhập chịu thuế theo tháng, sau đó tính ra bình quân thuế thu nhập theo tháng rồi nhân với 12 tháng mà thôi.
    Mình có post bài chi tiết về cái này ở đây.
    http://my.opera.com/thuydieu2710/blog/show.dml/12409942
    Gửi mọi người tham khảo
     
  12. hoangkimna

    hoangkimna New Member

    Các ông làm VBA làm gì cho mệt, Tui làm trực tiếp trên Excel còn ngắn hơn rất nhiều, sử dụng Vlookup
    Tham khảo nhé
     

    Các file đính kèm:

  13. MonaLisa7775

    MonaLisa7775 New Member

    Bạn nè, dùng bảng phụ thì công thức ngắn hơn là đúng roài. Nhưng vẫn còn mấy chỗ lê thê như sau:

    1. cái ô chứa 80,00001 đó, bạn cứ quánh 81, 90, 1000 vô đi, không sao hết. Thía là bỏ được hàm Int, đúng hong?

    2. Thậm chí xoá béng dòng đó đi, công thức xe buýt của bạn vẫn đúng. (xe buýt ngắn hơn xe lửa roài). Bạn thêm dòng đó, rồi xoá trống 1 ô, rồi int, khổ quá đi nà! Trong file kèm theo monalisa thử xoá đi cho Kim Na xem đoá.

    3. Công thức vẫn có thể ngắn hơn, bảng phụ ít cột hơn, như Monalisa làm trong file. Cù là cù lần như Monalisa, chỉ làm được công thức xe buýt mini, chưa làm được công thức xe 4 chỗ, nhưng đỡ gây kẹt xe hơn là xe buýt đại cồ:

    xe bus đại cồ: =VLOOKUP(D4;$G$6:$J$13;2;1)+(D4-INT(VLOOKUP(D4;$G$6:$G$13;1;1)))*VLOOKUP(D4;$G$6:$J$13;4;1)

    xe bus mini: =D17*VLOOKUP(D17;$G$17:$I$23;2;1)-VLOOKUP(D17;$G$17:$I$23;3;1)

    Mà bảng phụ có 3 cột thoai, hehe!
     

    Các file đính kèm:

Chia sẻ trang này