Chào anh chị!
Em gửi lên diễn đàn bản chấm công em đang xây dựng theo sự hướng dẫn của rất nhiều anh chị em trên này (nhưng chưa hoàn thiện hết). Hiện tại BCC còn sử dụng cả công thức nên chậm. Mong anh chị đưa ra phương án xử lý cải thiện BCC này tốt hơn. (theo hướng VBA cũng được hoặc dùng hàm nào đó tối ưu hơn cũng được).
Để tổng hợp công từ tất cả các sheet khác bấm vào biểu tượng bàn tay.
Hiện tại các công thức em đang sử dụng trong sheet BCC như sau:
+ Thử việc ngày: =+SUMIFS(K8:ED8,$K$6:$ED$6,"<="&G8,$K$7:$ED$7,"WD")
Căn cứ vào thời gian hết HĐ thử việc ở cột ED ta sẽ tính tổng các cột có tiêu đề là WD
+ Thử việc đêm: =SUMPRODUCT(($K$6:$ED$6<=G8)*IFERROR(IF(K8:ED8="D",1,--SUBSTITUTE($K$8:$ED$8,"D","")),0)*($K$7:$ED$7="WD")*ISTEXT(K8:ED8))
Căn cứ vào thời gian hết HĐ thử việc ở cột ED ta sẽ tính tổng các giá trị D (có thể là 0.1D hoặc 0.5D hoặc D) ở các cột có tiêu đề là WD.
Tương tự với Công ngày chính thức và công đêm chính thức căn cứ vào thời gian hết thử việc.
+Đối với các cột nghỉ từ EK đến EV và:
Ví dụ nghỉ Holiday: =+COUNTIFS($K8:$ED8,"LT",$K$7:$ED$7,"WD")+SUMIF(N!$I$5:$I$1000,BCC!$B8,N!$N$5:$N$1000)
Đếm các ô có ký hiệu LT ở các cột có tiêu đề WD + tổng có điều kiện trong sheet N
Các ngày nghỉ khác tương tự.
+ Tính Day OVT và Night OVT:
+) OVT ngày thường =+SUMIFS($K8:$ED8,$K$7:$ED$7,"ON",$K$5:$ED$5,"<>1",$K$5:$ED$5,"<>LT")
Tính tổng từ K8 đến ED8 đối với các cột có tiêu đề ON và xét $K$5:$ED$5 giá trị khác 1 (loại bỏ ON ngày chủ nhật) và xét $K$5:$ED$5 giá trị khác LT (loại bỏ ON ngày lễ tết)
Tương tự với các OVT khác.
Công việc khá là rối răm phức tạp em mong anh chị giúp đỡ.
Em cảm ơn ạ!
Em gửi lên diễn đàn bản chấm công em đang xây dựng theo sự hướng dẫn của rất nhiều anh chị em trên này (nhưng chưa hoàn thiện hết). Hiện tại BCC còn sử dụng cả công thức nên chậm. Mong anh chị đưa ra phương án xử lý cải thiện BCC này tốt hơn. (theo hướng VBA cũng được hoặc dùng hàm nào đó tối ưu hơn cũng được).
Để tổng hợp công từ tất cả các sheet khác bấm vào biểu tượng bàn tay.
Hiện tại các công thức em đang sử dụng trong sheet BCC như sau:
+ Thử việc ngày: =+SUMIFS(K8:ED8,$K$6:$ED$6,"<="&G8,$K$7:$ED$7,"WD")
Căn cứ vào thời gian hết HĐ thử việc ở cột ED ta sẽ tính tổng các cột có tiêu đề là WD
+ Thử việc đêm: =SUMPRODUCT(($K$6:$ED$6<=G8)*IFERROR(IF(K8:ED8="D",1,--SUBSTITUTE($K$8:$ED$8,"D","")),0)*($K$7:$ED$7="WD")*ISTEXT(K8:ED8))
Căn cứ vào thời gian hết HĐ thử việc ở cột ED ta sẽ tính tổng các giá trị D (có thể là 0.1D hoặc 0.5D hoặc D) ở các cột có tiêu đề là WD.
Tương tự với Công ngày chính thức và công đêm chính thức căn cứ vào thời gian hết thử việc.
+Đối với các cột nghỉ từ EK đến EV và:
Ví dụ nghỉ Holiday: =+COUNTIFS($K8:$ED8,"LT",$K$7:$ED$7,"WD")+SUMIF(N!$I$5:$I$1000,BCC!$B8,N!$N$5:$N$1000)
Đếm các ô có ký hiệu LT ở các cột có tiêu đề WD + tổng có điều kiện trong sheet N
Các ngày nghỉ khác tương tự.
+ Tính Day OVT và Night OVT:
+) OVT ngày thường =+SUMIFS($K8:$ED8,$K$7:$ED$7,"ON",$K$5:$ED$5,"<>1",$K$5:$ED$5,"<>LT")
Tính tổng từ K8 đến ED8 đối với các cột có tiêu đề ON và xét $K$5:$ED$5 giá trị khác 1 (loại bỏ ON ngày chủ nhật) và xét $K$5:$ED$5 giá trị khác LT (loại bỏ ON ngày lễ tết)
Tương tự với các OVT khác.
Công việc khá là rối răm phức tạp em mong anh chị giúp đỡ.
Em cảm ơn ạ!