Giúp viết code Gross up lương

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

FOV

Thành viên mới
Tham gia
30/11/06
Bài viết
32
Được thích
6
Dear các Bác,

Nhờ các Bác viết dùm đoạn code: Gross up từ lương Net sang lương Gross bao gồm thuế TNCN & BHXH (6%).

VD: 1 người để nhận lương net là 6 tr thì cần ký hợp đồng là: 6.471.111 bao gồm thuế TNCN 111.111 (6.111.111 - 6.000.000) và BHXH 360.000 (6tr x 6%).

Cám ơn trước nhé.
 
Bạn sai rồi, nếu Gross là 6.471.111 thì:
- thuế TNCN là (6.471.111 - 5.000.000) x 10% = 147.111 (Thuế suất HIỆN HÀNH)
- BHXh và BHYT phải tự nộp là 6.471.111 x 6% = 388.266
- Net = 6.471.111 - 147.111 - 388.266 = 5.935.734.
Vậy bạn phãi bỏ tiền túi bù vào là: 6.000.000 - 5.935.734 = 64.266

Bạn thử đặt x= Gross, giải bài toán bằng phương trình bậc nhất 1 ẩn xem.
Cuối cùng ra công thức tính trên Excel. Toán lớp 7 ấy mà.
 
Lần chỉnh sửa cuối:
Upvote 0
Cám ơn bạn ptm0412 đã góp ý.

Mình đã tính lại rồi, để có thể nhận được lương net 6tr thì lương ký hợp đồng là 6.547.619 (gross up từ 6.392.857: số này tự mò ra) trong đó:
- Thuế TNCN: (6.547.619 - 5.000.000) x 10% = 154.762
- BHXH: 6.547.619 x 6% = 392.857
=> lương thực nhận là: 6.547.619 - 154.762 - 392.857 = 6.000.000

Các Bác xem giúp có cách nào để khỏi mò mẫm bằng tay (vài trăm người) không ?

Cám ơn nhiều
 
Lần chỉnh sửa cuối:
Upvote 0
Dear Bác SA,

Cám ơn Bác đã quan tâm.


Hẹn ngày tái ngộ.

Chúc vui vẻ
 
Lần chỉnh sửa cuối:
Upvote 0
Mình viết 1 hàm để tính ngược mức lương thỏa thuận, nhưng vẫn chưa đúng hoàn toàn

Nhờ các bạn xem giúp chổ nào gây lỗi dẫn đến kết quả chưa chính xác.
Nhất là gần cái 10,8 triệu í!!

PHP:
Option Explicit
Const Trieu = 10 ^ 6:         Const Muc0 = 5 * Trieu
Function Gross(Net As Double) As Double
 Const ToiDa = 10.8 * Trieu
 
 Net = GthueTNCN(Net)
 If Net < ToiDa Then
    Gross = Net / (1 - 0.06)
 Else
    Gross = 540000 + Net / 0.99
 End If
End Function
PHP:
Function GthueTNCN(DaThue As Double) As Double
 Const Muc1 = 9.5 * Trieu
 Const Muc2 = 21.5 * Trieu
 Const Muc3 = 32 * Trieu
 Select Case DaThue
 Case Is <= Muc0
    GthueTNCN = DaThue
 Case Is <= Muc1
    GthueTNCN = Muc0 + (DaThue - Muc0) / (1 - 0.1)
 Case Is <= Muc2
    GthueTNCN = GthueTNCN(Muc1) + (DaThue - Muc1) / (1 - 0.2)
 Case Is <= Muc3
    GthueTNCN = GthueTNCN(Muc2) + (DaThue - Muc2) / (1 - 0.3)
 Case Else
    GthueTNCN = GthueTNCN(Muc3) + (DaThue - Muc3) / (1 - 0.4)
 End Select
End Function
PHP:
Function ThueTNCN(ChuaThue As Double) As Double
 Const Muc1 = 10 * Trieu
 Const Muc2 = 25 * Trieu
 Const Muc3 = 40 * Trieu

 Select Case ChuaThue
 Case Is <= Muc0
    ThueTNCN = 0
 Case Is <= Muc1
    ThueTNCN = (ChuaThue - Muc0) * 0.1
 Case Is <= Muc2
    ThueTNCN = ThueTNCN(Muc1) + (ChuaThue - Muc1) * 0.2
 Case Is <= Muc3
    ThueTNCN = ThueTNCN(Muc2) + (ChuaThue - Muc2) * 0.3
 Case Else
    ThueTNCN = ThueTNCN(Muc3) + (ChuaThue - Muc3) * 0.4
 End Select
End Function
 

File đính kèm

Upvote 0
SA_DQ đã viết:
Cám ơn bác Sa đã giúp đỡ,

Trong đoạn code em có sửa lại tí xíu:
Gross = (540000 + Net) / 0.99 thì gần đúng hết nhưng chỉ sai trong khoảng:

Lương gross (Lương + thuế + BHXH + BHYT) > 10,8 triệu .... Lương chịu thuế (Lương + thuế) < 10,8 triệu (xem file đính kèm)

Các nhà thông thái xem sửa giúp.

Cám ơn nhiều,
 

File đính kèm

Upvote 0
Gross up lương Net

Mọi người giúp em với!

E có xem cách mọi người Gross up net lên. Nhưng e chả hiểu gì cả.
Ví dụ Net= 12 triệu thì Gross là bao nhiêu và được tính thế nào?
Anh chị chỉ cho e cách tính với.

Thanks anh chị nhiều.-=.,,
 
Lần chỉnh sửa cuối:
Upvote 0
Các bác cho em hỏi một chút về Code với

Em đọc về VBA có 2 dạng cơ bản (Sub & End sub-Thủ tục và câu lệnh Fuction & End Fuction) Vì mới lò dò nên có một số chỗ không hiểu

Public Function TNCN(T)
If (T <= 5000000) Then

1.Public đứng trước Fuction có ý nghĩa gì?
2.Đối số T có nhất thiết phải cho vào trong ngoặc sau If ko?

3.Trong Sheet Luong Gross trước Sub có Private thì có tác dụng gì?
4. Tại sao có code viết trong Module 1, Module 2 , có đoạn code viết trong sheet? Có phải liên quan đến đối tượng hay thuộc tính, phương thức gì không? Có thể gộp tất cả code vào một chỗ được ko?

Mong các bác bỏ vài dòng viết (giải thích giúp)
Xin cám ơn?
 
Upvote 0
1. Public là cách khai báo dùng chung:
  • Public abc As string; khai báo biến dùng chung. cái này GPE cũng có nhiều bài nói đến.
  • Public Function(); Khai báo hàm dùng chung.
Cái gì dùng chung phải khai báo trong module. Module1 và module2 chẳng qua là chia nhỏ (tổ chức, phân loại) cho dễ tìm, dễ đọc. Riêng biến Public phải khai báo trong general - Declarations của Module.

2. Private hoặc không có gì là khai báo riêng
  • biến riêng
  • sub riêng
Phạm vi của "riêng" ở mức độ nào là chỗ đặt nó:
  • đặt ở sheet nào dùng riêng cho sheet đó. Thí dụ code dùng cho command button trong sheet.
  • Đặt trong Thisworkbook dùng cho mọi sheet. Thí dụ mỗi sheet có 1 cmdbutton cùng tên CmdFilter, cùng chức năng, vậy đặt 1 code Sub CmdFilter_Click dùng chung trong ThisWorkbook.
3. Biến Public sẽ giữ nguyên giá trị sau khi chạy xong code và có thể truy cập giá trị này cho lần chạy code sau, hoặc chạy code khác. trừ khi có 1 câu lệnh xoá giá trị biến này.

làm sao có thể gộp tất cả vào 1 chỗ được.
 
Upvote 0
ngocmaipretty đã viết:
1. Public là cách khai báo dùng chung:
  • Public abc As string; khai báo biến dùng chung. cái này GPE cũng có nhiều bài nói đến.
  • Public Function(); Khai báo hàm dùng chung.
Cái gì dùng chung phải khai báo trong module. Module1 và module2 chẳng qua là chia nhỏ (tổ chức, phân loại) cho dễ tìm, dễ đọc. Riêng biến Public phải khai báo trong general - Declarations của Module.

2. Private hoặc không có gì là khai báo riêng
  • biến riêng
  • sub riêng
Phạm vi của "riêng" ở mức độ nào là chỗ đặt nó:
  • đặt ở sheet nào dùng riêng cho sheet đó. Thí dụ code dùng cho command button trong sheet.
  • Đặt trong Thisworkbook dùng cho mọi sheet. Thí dụ mỗi sheet có 1 cmdbutton cùng tên CmdFilter, cùng chức năng, vậy đặt 1 code Sub CmdFilter_Click dùng chung trong ThisWorkbook.
3. Biến Public sẽ giữ nguyên giá trị sau khi chạy xong code và có thể truy cập giá trị này cho lần chạy code sau, hoặc chạy code khác. trừ khi có 1 câu lệnh xoá giá trị biến này.

làm sao có thể gộp tất cả vào 1 chỗ được.

Cám ơn bạn Ngọc Mai "xinh đẹp" đã trả lời rất chu đáo, ý bạn có phải là nếu code dùng chung thì mình có thể viết trong module, còn nếu dùng riêng cho sheet nào thì mình viết cho sheet đó?
Hay code trong module là do quá trình mình thu macro tạo nên?
 
Upvote 0
Cám ơn bạn ptm0412 đã góp ý.

Mình đã tính lại rồi, để có thể nhận được lương net 6tr thì lương ký hợp đồng là 6.547.619 (gross up từ 6.392.857: số này tự mò ra) trong đó:
- Thuế TNCN: (6.547.619 - 5.000.000) x 10% = 154.762
- BHXH: 6.547.619 x 6% = 392.857
=> lương thực nhận là: 6.547.619 - 154.762 - 392.857 = 6.000.000

Các Bác xem giúp có cách nào để khỏi mò mẫm bằng tay (vài trăm người) không ?

Cám ơn nhiều

Không biết có phải là thế này không? (Không rõ Thuế TNCN có những mốc thế nào)
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Có ai gross lương người NN k (2009), gửi mình với Tks tks
 
Upvote 0
Web KT

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

Back
Top Bottom