Giúp tạo bảng chấm công theo tháng tự động và bôi mầu ngày chủ nhật

Liên hệ QC
Anh chị có thể giúp em tạo bảng chấm công theo tháng tự động mà bôi 2 ngày thứ 7, chủ nhật với ạ. Em mới chuyển qua làm hành chính nhân sự tổng hợp mà giờ chưa quen cứ dùng thủ công lâu quá ah :( em cảm ơn
Bạn gửi cái file lên đi, sẽ có giải pháp cho bạn liền.
 
Anh chị có thể giúp em tạo bảng chấm công theo tháng tự động mà bôi 2 ngày thứ 7, chủ nhật với ạ. Em mới chuyển qua làm hành chính nhân sự tổng hợp mà giờ chưa quen cứ dùng thủ công lâu quá ah :( em cảm ơn
Gửi bạn mẫu chấm công mẫu bên trường Tiểu học có bôi màu 2 ngày thứ 7 và chủ nhật. Bạn tham khảo chỉnh sửa theo ý bạn.
 

File đính kèm

File có 1 đống Name rác và Virus.
Virus thì em không biết vì máy em chương trình diệt virus Kaspersky không có báo thầy ơi. Nhờ thầy diệt virus và xóa bớt name rác rồi upload lên giùm em đi. Sẵn tiện cho em hỏi bây giờ phần mềm diệt virus nào là tốt nhất ạ. Em xin cám ơn!
 
Lần chỉnh sửa cuối:
Gửi bạn mẫu chấm công mẫu bên trường Tiểu học có bôi màu 2 ngày thứ 7 và chủ nhật. Bạn tham khảo chỉnh sửa theo ý bạn.
Mẫu này thiếu mã duy nhất cho những người trong danh sách chấm công;
Cũng có thể chỉ cần 1 trang tính cho toàn bộ 12 tháng;
Trong file có các trang tính 14 - 16 chắc do virus tạo ra.
Nên xóa rác trong trang tính trước khi đưa lên diễn đàn.
 
Anh chị giúp em với ạ! Em tạo bảng chấm công, nhập đúng công thức mà khi ra kết quả tổng khi làm nửa ngày lại không trả về 0.5 mà toàn về bằng 1. AC xem giúp em là lỗi ở đâu??? em mò mãi mà không ra. thanks all
 

File đính kèm

Anh chị giúp em với ạ! Em tạo bảng chấm công, nhập đúng công thức mà khi ra kết quả tổng khi làm nửa ngày lại không trả về 0.5 mà toàn về bằng 1. AC xem giúp em là lỗi ở đâu??? em mò mãi mà không ra. thanks all
Thử:
PHP:
AK12=COUNTIF($F12:$AJ12,"x*")-COUNTIF($F12:$AJ12,"x/2")/2
Enter fill xuống

Chúc bạn ngày vui.
p/s: nên viết tiếng Việt toàn bộ cho bài đăng, dễ có thiện cảm hơn!
 
Dạ. Em sẽ rút kinh nghiệm. Em cảm ơn anh ạ!
 
Tạo ngày tháng trong bảng chấm công
- Đầu tiên ta xác định năm sử dụng. Tại ô D1 nhập giá trị của năm. Ví dụ năm 2014
- Tại ô B4 (xác định tháng chấm công), ta nhập hàm xác định ngày: =date($D$1;1;1)
Lưu ý dấu ngăn cách các thành phần trong hàm có thể là dấu ; hoặc dấu , tùy thiết lập của máy tính. Ở máy tính của tôi sử dụng dấu ;
Nội dung hàm date: xác định giá trị của ngày tháng theo giá trị xác định trong hàm. giá trị theo thứ tự là Năm, tháng, ngày. Ở hàm trên là Năm = giá trị tại ô D1, Tháng = 1, Ngày = 1


BCC-07.jpg


- Sau khi nhập hàm xong, tại ô B4, chọn format cell / custom / nhập giá trị ["tháng "mm" năm "yyyy] vào ô Type bên phải, xong rồi ấn ok (dấu nháy kép + tháng + dấu cách + dấu nháy kép + mm + dấu nháy kép + năm + dấu cách + dấu nháy kép + yyyy)
BCC-08.jpg


- Bạn có thể marge cell từ ô B4 đến D4 để cho hiển thị đủ nội dung cho dễ nhìn.
- Tại ô ngày 1 ( ô E9), bạn nhập =b4 để xác định ngày đầu tiên trong tháng.
- Tại ô F9, bạn nhập =e9+1 (ngày tiếp theo trong tháng)
- Copy công thức tại ô F9 sang các ô bên cạnh, cho đến ô ngày thứ 31 (ô AI9) bằng cách sau:
+ Cách 1: Bôi đen từ ô F9 đến ô AI9, bấm Ctrl + R
+ Cách 2: Bấm chuột vào ô F9, giữ chuột tại vị trí dấu chấm đen trong ô để con trỏ chuột trở thành dấu +, kéo chuột tới ô AI9 rồi thả ra
BCC-09.jpg


- Bôi đen từ ô E9 đến ô AI9, chọn Format cells / custom / mục Type bạn gõ chữ dd rồi bấm ok (chỉ hiện thị số ngày)
Nội dung trong ô E9 đến ô AI9 sẽ hiển thị ra ngày như trong bảng trên.
BCC-10.jpg


- Tại ô E10 nhập hàm =CHOOSE(WEEKDAY(E9);"Chủ nhật";"T. hai";"T. ba";"T. tư";"T. năm";"T. sáu";"T. bảy")
BCC-11.jpg


Nội dung hàm:
Weekday(e9) : là lấy giá trị ngày trong tuần của ô E9. Nếu nội dung trong hàm weekday không có đặt quy định về thứ tự ngày trong tuần thì sẽ tự trả về theo thứ tự Chủ nhật, thứ hai, thứ 3... thứ 7 (Bắt đầu là chủ nhật, kết thúc là thứ 7), và trả về giá trị số từ 1 đến 8
Choose: là hàm chọn giá trị trả về. Giá trị đầu tiên trong hàm là giá trị được chọn để làm căn cứ xác định. Các giá trị tiếp theo là nội dung được trả về tương ứng theo giá trị đầu tiên.
Trong hàm trên, ngày 01/01/2014 khi dùng hàm weekday sẽ trả về giá trị là 4, khi dùng hàm choose với thứ tự tương ứng là Chủ nhật, thứ hai, thứ ba... thứ bảy thì giá trị 4 sẽ tương ứng với thứ tư.
Bởi vì hàm weekday không tự trả về thứ theo tiếng việt, nên ta phải kết hợp với hàm choose để có được nội dung là thứ mấy trong tuần

- Copy công thức tại ô E10 sang các ô kế tiếp bên phải, cho tới ô AI10 (ngày thứ 31)
BCC-12.jpg


Tuy nhiên không phải tháng nào cũng có 31 ngày, nên để tránh việc hiển thị các ngày của tháng khác vào tháng này, ta thực hiện các thao tác sau:
+ Bắt đầu từ ngày thứ 29 (ô AG9), ta điều chỉnh về hàm như sau: =IF(DAY(AF9+1)=DAY(E9);"";AF9+1)
Nội dung hàm: Nếu giá trị ngày của ô AF9 +1 bằng giá trị ngày của ô E9 sẽ trả về giá trị là rỗng, nếu không bằng thì sẽ trả về giá trị ô AF9 + 1 (Nghĩa là nếu tháng 2 có 28 ngày, thì ngày thứ 29 sẽ là ngày 01/03, vậy giá trị ngày là 1, bằng với giá trị ngày của ô E9, nếu đúng như thế thì sẽ là rỗng, không hiển thị ngày 01/03. Còn nếu tháng 2 đó có 29 ngày thì sẽ hiện ngày 29)
+ Tại ô AH9, ta dùng hàm sau: =IF(AG9="";"";if(DAY(AG9+1)=DAY(E9);"";AG9+1))
Nội dung hàm:
IF thứ 1: Nếu tại ô AG9 là giá trị rỗng, thì ô AH9 cũng sẽ có giá trị rỗng (tức là vào trường hợp tháng 2 có 28 ngày thì sẽ không có ngày thứ 30)
IF thứ 2: tương tự với hàm if tại ô AG9, tức là trường hợp tháng 2 có 29 ngày, thì sẽ không hiển thị ngày 30.
+ Tại ô AI9, ta dùng hàm sau: =IF(AH9="";"";if(DAY(AH9+1)=DAY(E9);"";AH9+1))
Nội dung hàm:
IF thứ 1: Nếu AH9 là giá trị rỗng, thì AI9 cũng sẽ có giá trị rỗng (tức là trường hợp không có ngày thứ 30 thì cũng không có ngày thứ 31)
IF thứ 2: trường hợp tháng chỉ có 30 ngày thì sẽ không có ngày thứ 31
+ Khi các ô AG9, AH9, AI9 là rỗng thì hàm choose ở các ô AG10, AH10, AI10 sẽ phát sinh lỗi. Nhưng không ảnh hưởng gì đến bảng tính nên không cần lo lắng về việc này.

Như vậy ta đã thực hiện được phần các ngày trong tháng, và các thứ trong tuần.
Tiếp theo là việc tự động đổi màu cho các ngày thứ 7, chủ nhật cho khác với ngày thường

+ Bôi đen nội dung trong bảng (Từ E9 đến AI30 - tức là tất cả các nội dung về ngày trong tháng lẫn phần chấm công của các nhân viên), chọn chức năng Conditional Formatting (định dạng theo điều kiện), trong mục Condittional Formatting, chọn New Rule. Cách lấy chức năng này ra thanh công cụ các bạn có thể tham khảo bài Tùy chỉnh thanh công cụ trong excel
BCC-13.jpg



BCC-14.jpg

Trong bảng New Formatting Rule, bạn chọn dòng cuối cùng trong mục Select a Rule Type là Use a formula to determine which cells to format (Dùng công thức để mô tả cách định dạng cells)

+ Tại mục Format values where this formula is true, ta nhập hàm =if(weekday(e$9)=1;true;false)
Nội dung hàm:
Nếu ngày trong tuần tại ô e9 là 1 (tức là chủ nhật) thì là đúng, không thì sẽ sai. Nếu dúng thì sẽ áp dụng định dạng của Conditional formatting. Đặt dấu cố định e$9 là cố định hàng 9, tính từ cột e.
+ Sau khi đặt hàm, ta thiết lập định dạng cho CF. Trong bảng định dạng, bạn có thể chọn font chữ, màu chữ tại Font, màu nền tại Fill, kẻ đường viền ô tại Border... (giống định dạng ô của Format cells thông thường). Chọn định dạng xong bấm ok.
BCC-15.jpg

BCC-16.jpg

Kết quả khi thực hiện Conditional formatting với điều kiện ngày chủ nhật.
+ Làm tương tự với định dạng ngày thứ 7:
Bôi đen vùng trong bảng, chọn chức năng Conditional Formatting/ New rule/ Use a formulas..., nhập hàm =if(weekday(e$9)=7;true;false) , chọn kiểu định dạng cho ngày thứ 7
BCC-18.jpg

Kết quả khi thực hiện định dạng thứ 7 và chủ nhật
+ Thiết lập định dạng cho các cột không chứa giá trị ngày (ví dụ tháng 2 có 28 ngày, tự động bôi đen các ngày trống để phân biệt)
Bước 1: Tại ô B4, sửa tạm giá trị tháng là 2 để làm thử
Bước 2: Bôi đen vùng trong bảng, chọn chức năng Conditional formatting / new rule / use a formulas..., nhập hàm =if(e$9="";true;false), chọn định dạng là tô màu xám cho chữ và nền, ta có kết quả như sau:

BCC-19.jpg



Khi làm xong nhớ trả lại giá trị tháng 1 ở ô B4 nhé.

Phù, vậy là xong phần thiết lập ngày tháng cho bảng chấm công. Giờ còn khâu cuối cùng là đặt ký hiệu chấm công nữa là xong.

Đặt ký hiệu chấm công
+ Bạn chọn 1 vài ký hiệu chấm công cho 1 số loại công như sau:
Ngày công thực tế (đi làm đủ số công):
Nửa ngày công (làm nửa ca, nửa ngày...)
Ngày nghỉ hưởng nguyên lương (đi học, họp, phép... nghỉ mà có lương)
Nghỉ không lương
.... (tùy đơn vị mà chọn các hình thức chấm công khác nhau)
Lưu ý mỗi kí hiệu chấm công sẽ tương ứng với 1 cột quy ra công (hoặc có thể gộp), ngoài ra thêm 1 cột tính tổng số công
Tại ví dụ tôi đặt như sau:
Ngày công thực tế: x
Nửa ngày công : v
Ngày nghỉ hưởng nguyên lương: P
Nghỉ không lương: K
Ốm đau, thai sản: O
BCC-20.jpg


Tại cột Ngày công thực tế (cột AJ), tại ô AJ11, đặt hàm sau:
=COUNTIF($E11:$AI11;$G$34)
Nội dung hàm: Đếm số lần xuất hiện của giá trị tại ô G34, trong vùng E11 đến AI11. Giá trị tại ô G34 là ký hiệu chấm công của ngày công đủ, vùng E11 đến AI11 là số ngày công trong tháng của người đầu tiên (hàng 11), cố định cột E và AI để khi copy công thức không bị ảnh hưởng tới vùng chấm công

Tương tự với các cột khác, ta đặt công thức
Ô AK11 (Nửa công) = countif($E11:$AI11;$G$35)
Ô AL11 (Nghỉ hưởng lương) = countif($E11:$AI11;$G$36)
Ô AM11 (nghỉ không lương) = countif($E11:$AI11;$G$37)
Ô AN11 (ốm đau, thai sản) = countif($E11:$AI11;$G$38)

Tổng số công sẽ tính tùy theo yêu cầu tính công của đơn vị. Ví dụ: tổng ngày công = Ngày công thực tế + Nửa công x 0,5 + Nghỉ hưởng lương + Ốm đau, thai sản
ô AO11 = AJ11+AK11*0,5+AL11+AN11

Sau khi đặt công thức xong, ta copy công thức xuống cho các nhân viên khác
Em học được từ đây ạ, có thể có ích cho mọi người
 
- Tại ô E10 nhập hàm =CHOOSE(WEEKDAY(E9);"Chủ nhật";"T. hai";"T. ba";"T. tư";"T. năm";"T. sáu";"T. bảy")
Bài viết rất công phu!
Dòng 10 định dạng Thứ trong tuần thì nhập = ngày ở dòng 9 rồi Format cells, custom:
[$-42A]ddd hoặc [$-42A]dddd
Hoặc:
[$-vi-VN]ddd hoặc [$-vi-VN]dddd
 
Theo mình thì dòng 10, cột [E] trở về fải 31 ô là thừa;

Tô màu ngày thứ 7 & CN chỉ cần tô ở dòng 9:10 là đủ & tiết kiệm.
 
Gửi lại bạn Bảng chấm công. Bạn nhập vào ô đầu tháng (01) theo định dạng dd/mm/yyyy vd: 01/08/2015 nhé.
Bạn ơi hay quá nhưng nếu mình muốn thêm là (nếu là chủ nhật và thứ 7 thì 2 cột đó sẽ tự động đền là số 0 hoặc rống; và nếu nhập vào giá trị "P", "H", "H" thì sẽ tự highlight ký tự đó thì phải làm sao). Ý mình muốn với 1 conditional formatting sẽ giải quyết được cả 1 trong 3 ký tự nhập vào "P", "H", "H")
 
Bây giờ mới đọc được bài hướng dẫn bác học này.
Một vài chỗ có thể rút gọn. Mình dùng võ "rừng" đấu với võ "lò" nhé:
1) Về việc xác định trả về rỗng nếu ngày rơi vào ngày đầu tháng sau:
Bạn dùng:
=IF(DAY(AF9+1)=DAY(E9);"";AF9+1)
Trong đó DAY(E9) luôn luôn là 1. Vậy thay
=IF(DAY(AF9+1)=1;"";AF9+1)
cho gọn.
2) Phần dùng CF để bôi màu ngày CN, bạn dùng:
=if(weekday(e$9)=1;true;false)
chỉ cần:
=weekday(e$9)=1
là đủ trả về kết quả TRUE/FALSE
Tương tự bôi đen ngày trống:=if(e$9="";true;false)
thay bằng: =e$9=""

Bạn ơi hay quá nhưng nếu mình muốn thêm là (nếu là chủ nhật và thứ 7 thì 2 cột đó sẽ tự động đền là số 0 hoặc rống; và nếu nhập vào giá trị "P", "H", "H" thì sẽ tự highlight ký tự đó thì phải làm sao). Ý mình muốn với 1 conditional formatting sẽ giải quyết được cả 1 trong 3 ký tự nhập vào "P", "H", "H")
Thông thường, ngay từ đầu tháng, người ta hay để mặc định chấm đủ các ngày làm việc trong tuần là "X", T7 và CN để trống. đến cuối tháng mới chỉnh sửa theo thực tế.
Tại ngày đầu tháng (E11):
=IF(WEEKDAY(E$9,2)>5,"","X")
Copy cho toàn bảng
Phần trong ngày T7 và CN dùng conditional format tô màu các giá trị "P" hoặc "H"
Công thức CF tại E11:
=AND(WEEKDAY(E$9,2)>5,OR(E$11={"P","H"}))
Trong 2 công thức CF của ô E11 thì công thức thứ 2 này để đầu tiên nhé.
 
Web KT

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

Back
Top Bottom