Trang chủ » Tự học kế toán trên Excel » Những hàm kế toán tiền lương hay dùng trong excel

Những hàm kế toán tiền lương hay dùng trong excel

Để thuận lợi hơn cho các bạn tìm kiếm những vấn đề liên quan về lương, BHXH, BHYT, bài viết này Kế Toán Hà Nội sẽ giúp các bạn giải quyết thắc mắc trên.

Kế toán tiền lương cần biết gì?

1. Các hàm về thời gian của Excel :
– Hàm Weeknum – cho biết hôm nay là tuần thứ mấy trong năm
=WEEKNUM(Today(),1) … cho biết hôm nay thuộc tuần thứ mấy trong năm, với tuần bắt đầu là ngày chủ nhật
=WEEKNUM(Today(),2)… cho biết hôm nay thuộc tuần thứ mấy trong năm, với tuần bắt đầu là ngày thứ hai
Còn theo yêu cầu của bạn thì làm như sau:
A1= “HÔM NAY LÀ TUẦN THỨ “&WEEKNUM(Today(),1)&” CỦA NĂM “&YEAR(TODAY())
– Hàm DATEDIF – tính số ngày từ hôm nay đến tương lai
Từ hôm nay đến tương lai cách bao nhiêu đây nè:
=DATEDIF(Today(),TUONG LAI,”D”) … là số ngày cách với hôm nay
=DATEDIF(Today(),TUONG LAI,”M”) … là số tháng cách với hôm nay
=DATEDIF(Today(),TUONG LAI,”Y”) … là số năm cách với hôm nay
Hàm này dùng đễ tính tuổi là tuyệt đối chính xác…
– Hiển thị Ngày, tháng, năm hiện hành
TODAY () : Trả về số tuần tự thể hiện ngày tháng hiện tại. Nếu định dạng của ô là General trước khi hàm được nhập vào, kết quả sẽ được thể hiện ở dạng ngày tháng năm.
– Hàm Weekday – Tính ngày thuộc thứ mấy trong tuần
Bạn thử Công thức sau nhé :
=CHOOSE(WEEKDAY(A1),”Chủ nhật”,”Thứ hai”,”Thứ ba”,”Thứ tư”,”Thứ năm”,”Thứ sáu”,”Thứ bảy”)
– Hàm NETWORKDAYS – Số ngày làm việc trong tháng
Đó là hàm NETWORKDAYS bạn à… giả sử A1 là ngày đầu tháng (1/9/2007), B1 là ngày cuối tháng (30/9/2007) vậy sẽ có hàm:
NETWORKDAYS(ngày đầu,ngày cuối, các ngày nghĩ lễ)
Ở đây nếu bạn ko có ngày nghĩ lễ nào thì bỏ tham số thứ 3:
=NETWORKDAYS(A1,B1).. kết quả là 20.. Trong này mặc định nó đã trừ đi thứ bảy và CN rồi đấy!
Lưu ý là đễ sử dụng dc hàm này bạn phải vào menu ToolsAdd-Ins và đánh dấu vào mục Analysis Toolpak nhé!
– Hàm WORKDAY – Số ngày làm việc trừ ngày lễ giữa 2 khoảng thời gian
Bạn nên vào Tool AddIns cài thêm Analysis ToolPak-VBA lúc đó sẽ có hàm workday, cho ta ngày làm việc cuối cùng trừ ngày lễ.
=Workday(ngaydau,songaythuviec,ngayle)
Trong đó ngày lễ là names ngayle ta quy định ở cột A1:A9 (chín ngày lễ) ngày AL thì quy ra DL.
Còn nếu không cài thêm AddIns thì dùng công thức dài lắm.
– Kết hợp giữa hàm DATE và hàm INT để thêm dấu “/” vào 1 dãy số để thành ngày tháng
Bạn xem nhé (có 2 TH đấy)
TH1 : Chỉ có các năm >=2000:
PHP Code:
=DATE(RIGHT(A2;2)+2000;MID(A2;LEN(A2)-3;2);LEFT(A2;LEN(A2)-4))
TH 2: Nếu có các năm <2000:
PHP Code:
=DATE(RIGHT(A2;2)+IF(VALUE(RIGHT(A2;2))<10;2000;1900);MID(A2;LEN(A2)-3;2);LEFT(A2;LEN(A2)-4))
– Công thức trả về ngày cuối tháng khác thứ 7, CN
Làm sao khi nhập số tháng và số năm sẽ ra cho ra kết quả là ngày cuối tháng đó không trùng thứ bảy, chủ nhật. Nếu ngày cuối tháng đó là T7. CN thì lấy ngày Tsáu.
Có nhiều cách :
– Cách 1 :
Công thức đó như sau :
=DATE(YEAR(Ngay),MONTH(Ngay)+1,0)-(MAX(0,WEEKDAY(DATE(YEAR(Ngay),MONTH(Ngay)+1,0),2) -5))
trong đó Ngay sẽ là một cell chứa ngày tháng năm bạn cần biết
Thí dụ hàm : =DATE(2004,9+1,0) sẽ trả về ngày cuối tháng 30/09/2004. Nếu bạn không cộng thêm 1 mà chỉ nhập tháng là 9, hàm sẽ trả về ngày cuối tháng 31/08/2004.
Hàm WEEKDAY(DATE(2004,10,0),2) sẽ cho ta biết ngày cuối tháng là thứ mấy trong tuần. Weekday(******_number, return_type) . ******_number là Date(2004,10,0). Còn return_type là 1 nếu quy định chủ nhật là 1–> thứ bảy là 7, return_type là 2 nếu quy định thứ hai là 1–> chủ nhật là 7, return type là 0 nếu quy định thứ hai là 1–>thứ bảy là 6.
Nếu tôi chọn weekday(date(2004,10,0),2) thì khi ngày cuối tháng rơi vào thứ 6, hàm sẽ cho kết quả là 5. HàmMax(0,weekday(date(2004,10,0),2)-5)sẽ cho kết quả là 0 nếu ngày cuối tháng rơi vào thứ 2 đến thứ 6 trong tuần và cho kết quả là 1 nếu là thứ bảy, 2 nếu là chủ nhật.
Do đó nếu ta chọn lùi lại 1 hoặc 2 ngày nếu ngày cuối tháng rơi vào thứ bảy hay chủ nhật thì bạn chỉ cần làm phép trừ ngày cuối tháng cho 1 hoặc 2 nữa là xong. Khi ấy hàm sẽ là : =DATE(2004,10,0)-(MAX(0,WEEKDAY(Date(2004,10,0,2) -5)).
– Cách 2 :
DATE(Năm, Tháng, Ngày)
DATE(2004,02, 15) = 15 / 02 / 2004
DATE(2004,02, 0 ) = 0 / 02 / 2004 = 31/01/2004 .Là ngày cuối của Tháng -1
Vì vậy, nếu muốn trả về ngày cuối tháng 02 thì phải Tháng +1 (02+1). Thực chất là việc bù trừ (02 +1) – 1=02
DATE(2004,02+1, 0 ) = 0 / 03 / 2004 = 29/02/2004 (Tháng -1)
A2=10/01/2004
Ngày cuối của tháng Month(A2) là: DATE(Year(A2), Month(A2)+1, 0)
Để giải bài toán trên tư duy bắt đầy như sau:
=Ngày cuối tháng -1 (nếu thứ của ngày cuối tháng là T7 ) hoặc -2 (nếu thứ của ngày cuối tháng là CN)
T7-1= CN-2 = T6
WEEKDAY(Ngay) = Ngày trong tuần: T7 là 7, CN là 1
Diễn giải theo CT như sau:
=DATE(Year(A2), Month(A2)+1, 0)
+IF(WEEKDAY( DATE(Year(A2), Month(A2)+1, 0) )=7,-1,0)
+IF(WEEKDAY( DATE(Year(A2), Month(A2)+1, 0) )=1,-2,0)
(Ngày đầu tháng này = ngày cuối của tháng trước)
– Cách 3 : Kết hợp với hàm EOMONTH()
=IF(WEEKDAY(EOMONTH(A1,0),1)=1,EOMONTH(A1,0)-2,IF(WEEKDAY(EOMONTH(A1,0),1)=7,EOMONTH(A1,0)-1,EOMONTH(A1,0)))
– Đếm số ngày lẻ và chẵn trong 1 tháng bất kỳ
Ngày lẻ
{=SUM(IF(MOD(DAY(ROW(INDIRECT(“A”&A1&”:A”&B1)));2) =1;1;0))}
Ngày chẵn
{=SUM(IF(MOD(DAY(ROW(INDIRECT(“A”&A1&”:A”&B1)));2) =1;0;0))}
Ta có thể dùng hàm sumproduct thay thế như sau
=SUMPRODUCT((MOD(DAY(ROW(INDIRECT(“A”&A1&”:A”&B1)) ),2)=1)*1)
=SUMPRODUCT((MOD(DAY(ROW(INDIRECT(“A”&A1&”:A”&B1)) ),2)=0)*1)
Dùng names rút gọn:
[​IMG]
=> CT như sau:
=SUMPRODUCT((MOD(DaysRng,2) =1)*1)
=SUMPRODUCT((MOD(DaysRng,2) =0)*1)
· – Đếm xem có bao nhiêu ngày bất kỳ (1,2,…31 hay thứ 2, thứ 3,…CN) trong khoảng thời gian bất kỳ
[​IMG]
=> CT như sau:
=SUMPRODUCT((MOD(DaysRng,2) =1)*1)
=SUMPRODUCT((MOD(DaysRng,2) =0)*1)
– Xác định ngày nào khi biết đó là thứ mấy của tuần thứ bao nhiêu trong năm
=DATE(G8,1,1) +(H8-1)*7-WEEKDAY(DATE(G8,1,1) +(H8-1)*7)+2

– Công thức tính ngày cuối cùng trong tháng
Mình xin góp vui về hàm ngày chót sau : (xin chép đoạn code sau vào trong 1 module của file excel)
Public Function NgayChot(Thang, Nam) As Date
Dim StartDate As Date, StopDate As Date
StartDate = DateSerial(Nam, Thang, 1)
StopDate = DateAdd(“m”, 1, StartDate) – 1
NgayChot = StopDate
End Function
Sau đó quay ra sheet thử như sau :
VD tại D10 bạn gỏ bất kỳ ngày nào của tháng 01/2008. (VD 01/01/2008) sau đó tại D11 nhập công thức sau : =ngaychot(MONTH(D10),YEAR(D10))
sẽ có kết quả như ý.
– Công thức trả về ngày cuối tháng trước
Thí dụ hôm nay là ngày 03/06/2006, công thức sẽ trả về ngày 31/05/2006.
Có nhiều cách :
1/ Dùng VBA : Code như sau
Function SongayTrongthang(Thang As Long, Nam As Long) As Byte
Select Case Thang
Case 1, 3, 5, 7, 8, 10, 12: SongayTrongthang = 31
Case 4, 6, 9, 11: SongayTrongthang = 30
Case 2
Select Case Nam
Case (Nam Mod 4 = 0 And Nam Mod 100 = 0) Or Nam Mod 400 = 0: SongayTrongthang = 29
Case Else: SongayTrongthang = 28
End Select
End Select
End Function
2/ Ví dụ ngày tham chiếu ở ô A1:
=Date(year(A1),month(A1),1)-1
3/ Dùng công thức sau : A1 – day(A1) thì sẽ được ngày cuối tháng trước. Lưu ý format cell cho đúng
4/Công thức : =EOMONTH(“03/05/2006″,-1)
=EOMONTH(Start_date,months)
Nếu k thấy hàm này, vui lòng vào Tools->add-in->chọn Analysis ToolPak !
EOMONTH có nghĩa là End of Month : ngày cuối cùng của tháng
– Công thức để tính tuổi
tính bằng công thức sau =ROUND((TODAY()-A1)/365,0) với A1 là ô có giá trị của ngày sinh
– Dịch ngày tháng năm ra chữ
Bạn nên rút kinh nghiệm trong việc đặt vấn đề và đặt tên đề tài. Như bạn đã thấy từ 1 vấn đề đơn giản nhưng nếu không đặt vấn đề một cách rõ ràng và cụ thể thì vấn đề sẽ trở lên phức tạp.
Vì đây là chuyên mục Excel dành cho người mới bắt đâu nên bạn cần tìm hiểu các hàm và vận dụng công thức. Ở đây mình gợi í bạn sử dụng các hàm ngày tháng: DAY, MONTH, YEAR, kết hợp với hàm VLOOKUP.
Cách tổ chức dữ liệu:
– Bạn có danh sách liệt kê 31 ngày tương ứng với cách đọc 31 số:
[BANG1]
1 – một
2 – hai
3 – ba
4 – bốn

31 – ba mốt
– Một danh sách khác để đọc năm dựa vào danh sách các số ở trên
(BANG2 – bảng này bạn tự nghĩ cách thiết kế kết hợp các hàm LEFT, RIGHT, MID)
o Dùng hàm DAY để xác định ngày trong chuỗi ngày tháng rồi dùng VLOOKUP để tìm ra chuỗi đọc ngày trong BANG1
o Dùng hàm MONTH để xác định tháng trong chuỗi ngày tháng rồi dùng VLOOKUP để tìm ra chuỗi đọc tháng trong BANG1
o Dùng hàm YEAR để phân định năm trong chuỗi ngày tháng rồi dùng VLOOKUP để tìm ra chuỗi đọc năm trong BANG2
Kết hợp 3 kết quả này bạn sẽ được chuỗi cần đọc.
Bạn cứ làm thử xem đã nhé!
Hoặc dùng add-in VnTools Tiện ích Excel chuyển số sang chữ
Đây là công cụ bổ sung (Add-in) cho Excel, rất tiện lợi đặc biệt đối với người dùng Excel trong công việc kế toán-tài chính và không rành lập trình VBA.
Công cụ vnTools được cung cấp ở dạng tập tin tự giải nén .exe (WinRAR), khi chạy sẽ cài tập tin Ufunctions.xla vào thư mục mặc định Program FilesvnTools (bạn có thể chỉ định thư mục khác). Bạn phải tự thêm công cụ này vào Excel (trong Excel, vào menu Tools>Add-Ins và dùng Browse để duyệt tìm đến thư mục chứa tập tin Ufunctions.xla).
vnTools xuất hiện ở dạng thanh công cụ, có hộp thoại thao tác tương tự như các hàm của Excel – trong đó bạn có thể chọn ô chứa số cần chuyển đổi, ô chứa chuỗi kết quả… (xem hình). Bạn cũng có thể nhập trực tiếp hàm chuyển đổi mà không cần thực hiện qua hộp thoại.
vnTools hỗ trợ chuyển đổi tiền VND (đồng) và USD (đô la), có khả năng xử lý tới 15 chữ số (trăm nghìn tỷ); hỗ trợ bảng mã tiếng Việt Unicode, VNI và TCVN3 (lưu ý, việc thiết lập bảng mã sẽ tác động tới tất cả các ô kết quả dùng hàm chuyển đổi).
Ngoài hàm chuyển đổi số sang chữ, vnTools còn cung cấp hàm chuyển đổi ngày tháng sang chữ (DATETOTEXT). Công cụ có phần hướng dẫn khá chi tiết về cách sử dụng các hàm.

2. Các hàm chuỗi, hàm đếm, hàm mảng để đếm tên NV:

  • – Đếm số người có tên bắt đầu bằng chữ cái

=COUNTIF(D46:G54,CHAR(65+A141) & “*”)

  • – Hàm văn bản – Tách tên họ ra 2 cột khác
  • – Đếm số ký tự xác định ở bất cứ vị trí nào của chuỗi có mặt trong một mảng

=SUM(LEN(A1:B1)-LEN(SUBSTITUTE(A1:B1,”c”,””)))
Ctr Sh Enter
Thông thường những hàm sum mảng hay Sum(If()), phải Ctr Sh Enter, ta nên chuyển qua sumproduct thì khỏi Ctr Sh Enter. Vd ta có thể thay ct trên như sau:
=SUMPRODUCT((LEN(A1:B1)-LEN(SUBSTITUTE(A1:B1,”c”,””)))*1)
Hay là đặt 1 name: TotalC
Refer to:
=SUM(LEN(A1:B1)-LEN(SUBSTITUTE(A1:B1,”c”,””)))
Không có
Ctr Sh Enter
Vậy ta chỉ cần =TotalC là OK.
3. Các hàm UDF, công thức tính lương, thưởng, trừ lương :

  • – Hàm tính số giờ bị phạt do trễ giờ
  • – Trừ lương
  • – Hàm chấm công (1)
  • – Hàm chấm công (2)
  • – Hàm tính thuế TNCN
  • – Bảng kê tiền bằng Excel
  • – Giúp lập công tức theo dõi CN nghỉ chế độ
  • – Chấm công theo giờ trong XD
  • – Đếm số ngày nghỉ phép của NV
  • – Công thức tính ngày nghỉ hưu
  • – Tự động cập nhật vào Bảng chấm công khi có DS các ngày nghỉ phép, nghỉ lễ, ngày làm việc của NV trong tháng
  • – Bảng chấm công
  • – Dùng VBA để đếm số ngày chẵn, lẻ trong một tháng bất kỳ – Code nvson
  • – Dùng VBA để đếm số ngày chẵn, lẻ trong một tháng bất kỳ – Code MrOkebap
  • – Dùng VBA để đếm số ngày chẵn, lẻ trong một tháng bất kỳ – Code ThuNghi
  • – Tự điền dấu “/” vào khi nhập 1 chuỗi số có dạng ddmmyy
  • – Tính ngày tháng tăng lương để xác định NV nào sắp đến hạn nâng lương ?

4. Sử dụng các công cụ nâng cao của Excel trong :

  • – Quy đổi giữa lương Net và lương Gross bằng Goal Seek

5. File ứng dụng thực tế :

  • – In phiếu lĩnh lương cho NV từ bảng lương – File của YeuDoi
  • – In nhãn lương – File của Phạm Duy Long
  • – Xây dựng hệ thống thang lương, bảng lương – File của Kế Toán Già Gân

 

 

CLOSE
CLOSE