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

Thảo luận trong 'Ứng dụng Excel' bắt đầu bởi dat_vuong, 2 Tháng một 2005.

28,894 lượt xem

  1. dat_vuong

    dat_vuong Thành viên sơ cấp

    Bài viết:
    6
    Đã được thích:
    0
    Nơi ở:
    Hanoi
    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 sai hoặc 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ị
    - Computer có hệ điều hành windows 2000 hoặc windows xp
    - Đã installed Microsoft excel XP hoặc Excel 2003
    - Tham khảo thêm (để đối chiếu) Phụ lục số 1 và số 2 Kèm theo Thông tư số 81/2004/ TT-BTC ngày 13/8/2004 của Bộ Tài chính
    - Lập Kế hoạch để tạo các hàm sau đây
    o PITLC : Hàm tính Thuế thu nhập cá nhân dành cho công dân Việt Nam và các cá nhân khác định cư tại Việt Nam
    o PITFR : Hàm tính Thuế thu nhập cá nhân người nước ngoài cư trú tại Việt Nam và công dân Việt Nam lao động, công tác ở nước ngoài
    o NET2GROSSLC : Hàm qui đổi thu nhập sau thuế (net) sang thu nhập trước thuế (gross) dành cho công dân Việt Nam và các cá nhân khác định cư tại Việt Nam
    o NET2GROSSFR : Hàm qui đổi thu nhập sau thuế (net) sang thu nhập trước thuế (gross) dành cho người nước ngoài cư trú tại Việt Nam và công dân Việt Nam lao động, công tác ở nước ngoài
    Lưu ý : Tên hàm có thể tùy biến cho phù hợp với yêu cầu của bạn.

    B. Tiến hành tạo hàm
    1. Mở một bảng tính (workbook) mới
    2. Nhấn tổ hợp phím Alt+F11 để khởi động microsoft Visual Basic
    3. Nhấn vào bảng tính của bạn tại cửa sổ VBA project (Vi dụ : VBA project (book1)
    4. Chọn Insert --> Module và tạo một module
    5. Nhấn đôi vào module mới tao ra và đánh vào đoạn mã sau hoặc copy đoạn mã này dán vào cửa sổ tạo mã (code window)

    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
    Tại các bước trên bạn đã tạo được các hàm để sử dụng tính thuế thu nhập . Tuy nhiên các hàm này chỉ sử dụng cho chính cái bảng tính có gắn hàm đã tạo mà thôi. Để tất cả các bảng tính đều có thể sử dụng hàm đã tạo ở trên hoặc bạn muốn gủi những hàm này cho bạn bè thì bạn cần phải tạo Add-in
    Cách tạo Add-in
    1. Nhấn chuột phải vào Module đã tạo ở trên
    2. Trong thẻ (tab) General điền vào các thông số
    a. Project Name : Điền vào tên của Hàm (ví dụ : PIT)
    b. Prọect Description : Điền vào mô tả của dự án (ví du: PIT formular)
    3. Trong thẻ (tab) Protection nhấn vào Lock project for viewing sau đó điền mật khẩu và confirm mật khẩu nếu bạn không muốn người khác xem và chỉnh sửa đoạn mã của bạn.
    4. Đóng cửa sổ VBA
    5. Vào File ---> Save As , nhấn vào khung Save as type chọn Microsoft Office Excel Add-in (*.xla)
    6. Đặt tên file và chọn đường dẫn để lưu file (vi dụ : c:\PIT formula .xla)
    7. Hoàn tất

    Muốn gắn add-in vào bất cứ máy nào có excel bạn chỉ việc vào tool – Add-ins sau đó nhấn vào Brownse… và tìm đến nơi chứa file .xla nêu trên rồi OK

    Các bạn nào cần góp ý kiến vui lòng liên hệ YM : vu_smzhn
     
    #1
  2. Bình_OverAC

    Bình_OverAC Over Abnormal / Crazy

    Bài viết:
    845
    Đã được thích:
    7
    Nơi ở:
    Nha Trang
    Không hiểu sao bác dat_vuong co bài này mà còn xin add-in của em làm gì nữa nhỉ?
    Em nhận được tin nhắn của bác đã lâu nhưng chưa quên mất không chuyển cho bác nay lại thấy bài này ở đây và trên PCworld (cũng là của bác)

     
    #2
  3. vongphuc

    vongphuc Excel Fans Club

    Bài viết:
    300
    Đã được thích:
    4
    Nơi ở:
    Ha Noi
    Anh Vũ và OverAC chuyển code sang file add_in đi, rồi upload lên cho em xài ké với
     
    #3
  4. Tralipton

    Tralipton Thành viên hoạt động

    Bài viết:
    78
    Đã được thích:
    0
    Nơi ở:
    HCMC, VN
    Bác DATVUONG oi! có cái hàm nào trong excel mà chuyển CHỮ SỐ sang thành tiền bằng tiếng việt không cho em 01 ban NHE! cAM ƠN BAC NHIEU!
    EMAIL:lathangvn@yahoo.com
     
    #4
  5. nhanketoan

    nhanketoan Thành viên hoạt động

    Bài viết:
    14
    Đã được thích:
    0
    Nơi ở:
    175/30 Cô Giang, Quận I, TP.Hồ Chí Minh
    Anh ơi, em tạo xong hàm tính thuế thu nhập cá nhân bằng Excel 2003 rùi, mà sao em không biết mở ra xem lại như thế nào?và sử dụng nó như thế nào? Anh giúp em với nha. Cám ơn anh nhiều nhiếu lắm...........
     
    #5
  6. nhanketoan

    nhanketoan Thành viên hoạt động

    Bài viết:
    14
    Đã được thích:
    0
    Nơi ở:
    175/30 Cô Giang, Quận I, TP.Hồ Chí Minh
    Moi nguoi oi, giup em voi nha !!!!!!!

    Mấy anh chị ơi, em đã tạo xong hàm tính thuế thu nhập cá nhân bằng Excel 2003 rùi, nhưng em không biết mở xem lại như thế nào?và phải sử dụng ra sao?, giúp em với nha. Em cám ơn anh chị nhiều nhiều....lắm....
    Đừng hất hủi thành viên mới chứ !!!!!!!!!chẳng ai thèm trả lời tui hết dzậy?????//hic hic hic....
     
    #6
  7. Bình_OverAC

    Bình_OverAC Over Abnormal / Crazy

    Bài viết:
    845
    Đã được thích:
    7
    Nơi ở:
    Nha Trang
    Bạn chép nó vào đâu? Bằng cách nào thì bây giờ coi lại bằng cách đó. nhấn Alt + F11 để bật cửa số VBE, chọn file tính thuế thu nhập bên phần cửa ổ Project Explorer rồi nhấn double click vào module mà bạn chép nó vào.
     
    #7
  8. thanhnhan53

    thanhnhan53 Thành viên hoạt động

    Bài viết:
    66
    Đã được thích:
    0
    Mình có 1 file vd dùng để tính thuế TNCN, không sử dụng macro không biết có ai cần không nhỉ? cực kỳ đơn giản.
     
    #8
  9. Secret_grasses

    Secret_grasses Thành viên hoạt động

    Bài viết:
    317
    Đã được thích:
    3
    Nơi ở:
    Ngôi nhà nhỏ trên thảo nguyên.
    Dạ, có em ạ.Bác post lên cho em tham khảo với.:1luvu:
     
    #9
  10. Bình_OverAC

    Bình_OverAC Over Abnormal / Crazy

    Bài viết:
    845
    Đã được thích:
    7
    Nơi ở:
    Nha Trang
    Nếu không dùng một số hàm if lồng vào nhau thì em đang chờ được biết đây ạh.
     
    #10
  11. lexthien

    lexthien Thành viên thân thiết

    Bài viết:
    77
    Đã được thích:
    1
    Nơi ở:
    TPHCM
    Chờ file bạn đấy !.

    Thân chào bạn
     
    #11
  12. thanhnhan53

    thanhnhan53 Thành viên hoạt động

    Bài viết:
    66
    Đã được thích:
    0
    Di nhiên là dùng hàm if lồng vào nhau rồi, cái đáng nói là lương net để rồi phải tính lương trước thuế và sau đó tính TTNCN, cuối cùng kết quả đúng với lương trả cho người lao động
     
    #12
  13. thanhnhan53

    thanhnhan53 Thành viên hoạt động

    Bài viết:
    66
    Đã được thích:
    0
    Các bạn tham khảo xem có gì sai không nhé?
     

    Các file đính kèm:

    Last edited: 23 Tháng tư 2006
    #13
  14. omron

    omron Thành viên hoạt động

    Bài viết:
    34
    Đã được thích:
    0
    Nơi ở:
    TPHCM
    Coi bộ bác bị sai rồi đó ! Một tháng em nhận có 2500USd tuong duong 39.825.000 thôi , chứ đâu có thu nhập 52.208.333 = 3277.26USD.:wall:
     
    #14
  15. SA_DQ

    SA_DQ Thành viên thân thiết

    Bài viết:
    428
    Đã được thích:
    34
    Nơi ở:
    HCM city
    Bạn xem ở trang 2 này; các bài về TTNCN :
    http://webketoan.com/forum/showthread.php?t=15946&page=2
    Mà hình như TTNCN tình cho toàn năm mà hỉ? vì còn thưởng từ quỷ lương gì đó nữa cũng phải chịu thuế! Các tháng thì tạm thu thôi, hay mình lạc hậu mất rồi?!
     
    #15
  16. Bình_OverAC

    Bình_OverAC Over Abnormal / Crazy

    Bài viết:
    845
    Đã được thích:
    7
    Nơi ở:
    Nha Trang
    Chào tieumuoi202,
    Tôi nghĩ là với những hướng dẫn ở trên chắc là bạn cũng sẽ làm được cho mình một file mà.

    Lần sau bạn nhớ gõ tiếng Việc có dấu nhé. Diễn đàn có tích hợp bộ gõ đấy.
     
    #16
  17. Secret_grasses

    Secret_grasses Thành viên hoạt động

    Bài viết:
    317
    Đã được thích:
    3
    Nơi ở:
    Ngôi nhà nhỏ trên thảo nguyên.
    Trước khi xin file các bạn nên đọc lại toàn bộ bài tại topic hiện tại. Các bạn xem file của anh thanhnhan53 tại đây nha.
     
    #17
  18. chitamnt

    chitamnt Thành viên sơ cấp

    Bài viết:
    2
    Đã được thích:
    0
    Nơi ở:
    TP. HCM
    bạn bấm tổ hợp Alt+F11 rồi dán đoạn code này vào cửa sổ VBE (Chọn Insert->Module nếu cửa sổ VBE chưa được mở).

    'chuong trinh doi so ra chu (copy từ PCWORLD)
    Public Function VND(X As Long) As String
    Dim a, C
    a = Array("khoâng ", "moät ", "hai ", "ba ", "boán ", "naêm ", "saùu ", "baûy ", "taùm ", "chín ")
    Dim kq As Variant
    Dim TG(25) As Variant
    Dim CL, N As Long
    Dim count, D, sokh, CS, m As Integer
    If X = 0 Then kq = "khoâng "
    CL = X
    'Chuong trinh tinh toan cac so khong
    N = 0
    m = X Mod 10
    Do While (m = 0) And X <> 0
    N = N + 1
    X = X \ 10
    m = X Mod 10
    Loop
    sokh = N
    X = CL
    count = 0
    'Chuyen doi cac so vao trung gian
    Do While (X <> 0)
    count = count + 1
    CS = X Mod 10
    TG(count) = a(CS)
    X = X \ 10
    Loop
    'Chuyen doi thanh chu so
    X = count
    D = count
    Do While (count - sokh > 0) And X <> 0
    Select Case (count Mod 3)
    Case 0:
    If (TG(count) = "khoâng " And TG(count - 1) = "khoâng " And TG(count - 2) = "khoâng ") Then
    kq = kq
    Else
    kq = kq + TG(count) + "traêm "
    End If
    Case 1:
    If (TG(count) = "khoâng ") Then
    kq = kq
    Else
    If TG(count + 1) <> "moät " And TG(count) = "boán " And D <> 1 And D <> count Then
    kq = kq + "boán "
    Else
    If TG(count + 1) <> "khoâng " And TG(count) = "naêm " And D <> 1 And D <> count Then
    kq = kq + "laêm "
    Else
    If TG(count) = "moät " And D <> count And TG(count + 1) <> "moät " And TG(count + 1) <> "khoâng " Then
    kq = kq + "moát "
    Else
    kq = kq + TG(count)
    End If
    End If
    End If
    End If
    Case 2:
    If (TG(count) = "moät " And D = count) Or (TG(count) = "moät " And TG(count + 1) = "khoâng ") Then
    kq = kq + "möôøi "
    Else
    If TG(count) = "moät " Then
    kq = kq + "möôøi "
    Else
    If TG(count) = "khoâng " And TG(count - 1) <> "khoâng " Then
    kq = kq + "leû "
    Else
    If TG(count) = "khoâng " And TG(count - 1) = "khoâng " Then
    kq = kq
    Else
    kq = kq + TG(count) + "möôi "
    End If
    End If
    End If
    End If
    End Select
    Select Case count
    Case 4:
    If TG(count) = "khoâng " And TG(count + 1) = "khoâng " And TG(count + 2) = "khoâng " Then
    kq = kq
    Else
    kq = kq + "ngaøn "
    End If
    Case 7:
    If TG(count) = "khoâng " And TG(count + 1) = "khoâng " And TG(count + 2) = "khoâng " Then
    kq = kq
    Else
    kq = kq + "trieäu "
    End If
    Case 10:
    If TG(count) = "khoâng " And TG(count + 1) = "khoâng " And TG(count + 2) = "khoâng " Then
    kq = kq
    Else
    kq = kq + "tyû "
    End If
    End Select
    count = count - 1
    Loop
    Select Case sokh
    Case 4, 5:
    kq = kq + "ngaøn "
    Case 7, 8:
    kq = kq + "trieäu "
    Case 10, 11:
    kq = kq + "tyû "
    End Select
    C = Left(kq, 1)
    C = Format(C, ">")
    kq = Mid(kq, 2)
    kq = C + kq
    VND = "" + kq + "ñoàng chaün."
    End Function

    Sau đó bạn vào Worksheet gọi hàm VND(). (dùng font VNI-TIMES nha bạn)
     
    #18
  19. ckviet

    ckviet Thành viên sơ cấp

    Bài viết:
    24
    Đã được thích:
    0
    Nơi ở:
    HCM
    + Nếu máy tính xuất hiện dòng chữ bằng tiếng anh nội dung liên qua đến Macro, bạn vào TOOL-MACRO-SECURITY-chọn Medium.
    Sau đó tắt chương trình Excel.
    Sau đó tiếp tục sử dụng như bình thường.
     
    #19
  20. dang2405

    dang2405 Thành viên sơ cấp

    Bài viết:
    2
    Đã được thích:
    0
    Nơi ở:
    91 đ 144 tân phú 9
    mình làm cách này đơn giản (theo tt84)
    mong ban sử dụng được:
    =IF(Y8<=0,0,IF(AND(Y8>0,Y8<=5*10^6),Y8*0.05,IF(AND(Y8>5*10^6,Y8<=1*10^7),(25*10^4+(Y8-5*10^6)*0.1),IF(AND(Y8>10*10^6,Y8<=18*10^6),(75*10^4+(Y8-10*10^6)*0.15),IF(AND(Y8>18*10^6,Y8<=32*10^6),(195*10^4+(Y8-18*10^6)*0.2),IF(AND(Y8>32*10^6,Y8<=52*10^6),(475*10^4+(Y8-32*10^6)*0.25),IF(AND(Y8>52*10^6,Y8<=80*10^6),(975*10^4+(Y8-52*10^6)*0.3),(1815*10^4+(Y8-80000000)*0.35))))))))
    ban chep cong thuc nay vao
    ô tham chiếu là ô chứa thu nhập chịu thuế sau khi đã trừ đi khấu trừ 4tr và gia cảnh
     
    #20

Chia sẻ trang này