Hướng dẫn cách tính số giờ làm việc trên bảng chấm công Excel từ máy chấm công

Chia sẻ bài viết này:
  • 2
  •  
  •  
  •  
  •  
  •  
  •   
  •   

Không phải lúc nào việc chấm công trên máy chấm công cũng đem lại hiệu quả ngay. Trong một số trường hợp chúng ta phải đưa dữ liệu từ máy chấm công sang Excel thì mới tính được số giờ công làm việc của nhân viên. Trong bài học này Học Excel Online sẽ hướng dẫn các bạn cách tính số giờ làm việc trên bảng chấm công Excel với dữ liệu được trích xuất từ máy chấm công. Nội dung cụ thể như sau:

Chúng ta có bảng dữ liệu trích xuất từ máy chấm công tháng 07 năm 2017 gồm:

Yêu cầu: Dựa vào số giờ vào, giờ ra theo từng ngày của từng nhân viên, hãy tính số giờ làm việc, số lần đi muộn của các nhân viên.

Cách làm

Bước 1: Khảo sát, đánh giá và phân tích dữ liệu nguồn (bảng dữ liệu kết xuất từ máy chấm công ra excel)

Đây là bước rất quan trọng, Việc phân tích bảng dữ liệu nguồn sẽ giúp chúng ta có phương án xử lý phù hợp và chính xác.

Để thực hiện công việc này, chúng ta cần nắm được các nguyên tắc sau:

  • Mục đích công việc: Tính công làm việc theo thời gian
  • Đối tượng liên quan: Mã nhân viên, Ngày trong tháng, Giờ vào, Giờ ra
  • Tiêu chí đánh giá (dựa trên mục đích, kết quả cần đạt được để đặt ra tiêu chí cho các đối tượng liên quan)
  •    Mã Nhân viên: Liên tục theo dòng, không được để dòng trống
  •    Ngày trong tháng: Bao gồm xác định ngày trong tháng, thứ trong tuần, phân biệt ngày nghỉ lễ, nghỉ bù
  •    Giờ vào, giờ ra: Các ngày làm việc đều phải có giờ vào, giờ ra. Khi tính công sẽ dựa trên việc đánh giá giờ vào, giờ ra để tính ra các loại công.

Ta có thể thấy, để tính toán được, cần phải điều chỉnh lại cấu trúc bảng dữ liệu sao cho đúng các tiêu chí.

Việc tính toán trên nhiều điều kiện, nên hàm sẽ sử dụng để tính toán là SUMIFS, COUNTIFS và hàm IF

Bước 2: Cấu trúc lại bảng dữ liệu

Để rút gọn bài viết, mình sẽ không nêu từng thao tác, mà sẽ đưa hình mẫu và gợi ý các cách làm để các bạn có thể tự làm được:

(Bảng chấm công này có cấu trúc mỗi ngày gồm 2 cột, khác bài trước là mỗi ngày 1 cột)

  • Phần Tháng và Năm (dòng 2, 3): Đặt bên ngoài để tiện việc thay đổi
  • Ngày trong tháng (dòng 4): Dùng hàm Date, bắt đầu với ngày 26 tháng trước đó (vì bảng nguyên liệu kết xuất tính từ ngày 26 nên ta sẽ giữ nguyên yêu cầu này. Tính công từ ngày 26 tháng trước đến ngày 25 tháng sau). Riêng 2 ngày cuối có thể sang tháng tiếp theo (trường hợp tháng có 28-29 ngày) nên có thể xử lý để bỏ trống nếu sang tháng sau, tức là ngày 27 tháng này trở đi là đã bước sang tháng sau của bảng tính công.
  • Phần Mã NV (cột A, B, C): Mỗi mã 1 dòng, để tập hợp theo mã NV chính xác hơn.
  • Thứ trong tuần (dòng 5): Dùng hàm Choose kết hợp với hàm Weekday để xác định. Kết hợp tính năng Conditional Formatting để tô màu phân biệt ngày CN với ngày thường.
  • Giờ vào, giờ ra (dòng 6): có thể quy ước số 1 là giờ vào, số 2 là giờ ra.
  • Lưu ý: 1 ngày có 2 giờ, nên 2 cột sẽ tính cho 1 ngày. Vì vậy khi xử lý ngày ở dòng 4 cần chú ý nội dung này.

Tất cả những nội dung trên, mình đã hướng dẫn chi tiết trong bài: Tạo bảng chấm công trên excel. Vui lòng xem lại bài này để được hướng dẫn chi tiết.

Bước 3: Lọc và lấy dữ liệu 

Tại bảng kết xuất, dùng chức năng Data/Filter để lọc bỏ dòng trống trong cột Mã NV, sau đó copy dữ liệu sang bảng xử lý. Sử dụng chức năng Paste Special/Value để dán dữ liệu bỏ qua dòng bị ẩn.

Bảng kết xuất sử dụng chức năng lọc (Data Filter)

Dữ liệu chấm công ở bảng kết xuất => Copy / Paste Special -> Value => Sang bảng xử lý

Bước 4: Tính giờ công trong ngày

Tạo thêm 1 vùng, trong đó mỗi ngày chỉ tương ứng 1 cột. Cách xử lý ngày, thứ giống với phần trước.

=> Mục đích: Tính số giờ công làm việc theo từng ngày

Giờ công làm việc trong ngày = Giờ ra – Giờ vào

Giờ ra = (Tổng số phút quy ước tại thời điểm chấm công ra = Số giờ * 60 + Số phút)/60

Giờ vào =  (Tổng số phút quy ước tại thời điểm chấm công vào = Số giờ * 60 + Số phút)/60

BN7 =ROUND(((HOUR(SUMIFS($D7:$BM7,$D$4:$BM$4,BN$4,$D$6:$BM$6,2))*60+MINUTE(SUMIFS($D7:$BM7,$D$4:$BM$4,BN$4,$D$6:$BM$6,2)))-(HOUR(SUMIFS($D7:$BM7,$D$4:$BM$4,BN$4,$D$6:$BM$6,1))*60+MINUTE(SUMIFS($D7:$BM7,$D$4:$BM$4,BN$4,$D$6:$BM$6,1))))/60,2)

Bạn có thể filldown, fillright công thức từ BN7 cho các ô khác.

* Lưu ý:

Có thể có số âm. Số âm là trường hợp Chỉ có giờ vào mà không có giờ ra => Lý do: Quên chấm công. Việc này thường xảy ra

Bước 5: Xác định kết quả chấm công

Ví dụ chúng ta cần 1 số kết quả chấm công như sau:

Ta có thể thấy:

  • Ngày công đủ 8h tính dựa trên vùng đã xác định cụ thể số giờ công, với số giờ làm >=8 (mục 2.4)

CS7 = COUNTIF(BN7:CR7,”>=”&8)

  • Quên chấm công tính dựa trên vùng đã xác định số giờ công, với số giờ <0 (mục 2.4)

CT7 = COUNTIFS(BN7:CR7,”<“&0)

  • Tổng số ngày công = Đủ 8h + Quên chấm công. Vì quên chấm công có thể vẫn được tính là 1 ngày công,
  • hoặc  Tổng số ngày công = Đủ 8h + (Quên chấm công /2) nếu quy ước quên chấm công sẽ coi là nửa ngày công.

CU7 = CS7+CT7   hoặc  CU7 = CS7+(CT7/2)

  • Ngày nghỉ = (Tổng số ngày có công = 0) – (Số ngày nghỉ tuần = chủ nhật)    Trường hợp ngày nghỉ tuần là chủ nhật. Nếu nghỉ cả T7, CN thì sẽ trừ thêm số ngày thứ 7 trong tháng

CV7 = IF(B7=””,0,COUNTIF(BN7:CR7,0)-COUNTIF(BN$5:CR$5,”CN”)-COUNTIF(BN$4:CR$4,””))

  • Đi muộn: Căn cứ vào giờ vào làm, so sánh với chỉ tiêu 8h (tuỳ quy ước giờ vào làm của đơn vị)

Muộn 5′ => CW7 = COUNTIFS($D7:$BM7,”>”&”8:05″,$D7:$BM7,”<“&”8:10″,$D$6:$BM$6,1)

Muộn 10′ => CX7 = COUNTIFS($D7:$BM7,”>”&”8:10″,$D7:$BM7,”<“&”8:15″,$D$6:$BM$6,1)

Muộn trên 15′ => CY7 = COUNTIFS($D7:$BM7,”>”&”8:15″,$D$6:$BM$6,1)

=> Bạn có thể filldown công thức xuống cho các mã NV tiếp theo

Kết quả của mục 2.5 là kết quả cuối cùng, có thể sử dụng để tính lương cho NV

Cách tối ưu

Mình sẽ gợi ý một vài kỹ thuật giúp tối ưu hoá bảng xử lý: (Ưu tiên cho những bạn biết sử dụng VBA, nếu không biết VBA thì làm thủ công bằng tay)

  • Sử dụng VBA để lưu thông tin xử lý và kết quả tính được sang 1 Sheet riêng để lưu trữ kết quả. Bảng xử lý có thể làm tiếp cho các tháng sau mà không ảnh hưởng tới kết quả tháng trước.
  • Sử dụng VBA ẩn/hiện các vùng: Dữ liệu chấm công theo giờ vào-ra (cột D đến cột BM), Dữ liệu xử lý tính giờ làm việc (Cột BN đến cột CR) để làm gọn bảng xử lý. Khi cần làm việc với bảng nào thì ta mở ẩn vùng bảng đó ra. Như vậy sẽ gọn mắt hơn. Vì mục tiêu cuối cùng là kết quả tính công mà thôi.

Công việc chấm công, tính lương khá phức tạp và đa dạng. Để tìm hiểu thêm nhiều kiến thức liên quan tới công việc này, Học Excel Online xin giới thiệu với các bạn khóa học “Ứng dụng Excel VBA trong công việc Tiền lương – nhân sự”.  Học xong khóa học này bạn có thể nắm vững được quy trình chấm công, tính lương trong doanh nghiệp, tự tay xây dựng 1 phần mềm quản lý lao động, chấm công tính lương trên Excel. Chi tiết xem tại:

 


Chia sẻ bài viết này:
  • 2
  •  
  •  
  •  
  •  
  •  
  •   
  •