Bảng chấm công

Liên hệ QC

cherry vu

Thành viên mới
Tham gia
11/8/17
Bài viết
7
Được thích
0
Giới tính
Nữ
Mọi người cho mình hỏi chút với ạ, mình muốn tính tổng bao nhiêu ngày làm thêm từ 1-3h, bao nhiêu ngày làm thêm 4h và bao nhiêu ngày làm thêm trên 4h thì làm thế nào ạ, đây là file chấm công mình đổ ra từ hệ thống, mọi người chỉ giúp mình với ạ, cảm ơn cả nhà :)
 

File đính kèm

  • Bảng chấm công.xlsx
    14 KB · Đọc: 7
Mọi người cho mình hỏi chút với ạ, mình muốn tính tổng bao nhiêu ngày làm thêm từ 1-3h, bao nhiêu ngày làm thêm 4h và bao nhiêu ngày làm thêm trên 4h thì làm thế nào ạ, đây là file chấm công mình đổ ra từ hệ thống, mọi người chỉ giúp mình với ạ, cảm ơn cả nhà :)
Xem file:
 

File đính kèm

  • Bảng chấm công.xlsx
    23 KB · Đọc: 11
Chủ thớt không mô tả chính xác nên có câu hỏi.
mình muốn tính tổng bao nhiêu ngày làm thêm từ 1-3h, bao nhiêu ngày làm thêm 4h và bao nhiêu ngày làm thêm trên 4h
1. Thế nếu có +3.5 thì có tính không? Bởi 3.5 nằm ngoài khoảng (1; 3). Nếu tính 3.5 thì có tính 0.5 không? Vì 0.5 cũng nằm ngoài khoảng (1; 3)

2. Thế có vd. +10.0, +10.5, +12.5 ... thì có tính không? Tức >= 10.0

Phải chăng yêu cầu là:
Tính tổng các số giờ làm thêm:
a. trong khoảng (0; 4) - khoảng mở
b. Đúng 4
c. Trên 4

?

Hay chỉ là 2 khoảng: (0; 4) và [4; +∞), hoặc 2 khoảng [1; 4) và [4; +∞)?
 
Lần chỉnh sửa cuối:
Công thức em điều chỉnh lại khá gọn gàng rồi đó! /-*+//-*+//-*+/
Mã:
=SUM(IFERROR(N(--MID($D9:$AG9,9,3)<4),))
=SUM(IFERROR(N(--MID($D9:$AG9,9,3)=4),))
=SUM(IFERROR(N(--MID($D9:$AG9,9,3)>4),))
Do phụ thuộc vào vị trí cắt nên để ngừa các khoảng trắng bất ngờ thì chỉ cần thêm Substitute():
Mã:
=SUM(IFERROR(N(--MID(SUBSTITUTE($D9:$AG9," ",""),6,3)<4),))
=SUM(IFERROR(N(--MID(SUBSTITUTE($D9:$AG9," ",""),6,3)=4),))
=SUM(IFERROR(N(--MID(SUBSTITUTE($D9:$AG9," ",""),6,3)>4),))

Anh góp vui thêm hai dạng công thức như anh em mình thường chơi, với số giờ làm thêm không thể quá 16h/ngày:
Dùng Count(1/....):
Mã:
=COUNT(1/(FIND("+"&ROW($1:$4)-1&".",$D9:$AG9)>0))
=COUNT(1/(FIND("+4.0",$D9:$AG9)>0))
=COUNT(1/(FIND("+"&ROW($4:$16),SUBSTITUTE($D9:$AG9,"+4.0",""))>0))
Cả ba công thức trên của em và anh phải kết thúc bằng Ctrl+Shift+Enter

Dùng Countif():
Mã:
=SUMPRODUCT(COUNTIF(D9:AF9,"*+"&ROW($1:$4)-1&".*"))
=SUMPRODUCT(COUNTIF(D9:AF9,"*+4.0*"))
=SUMPRODUCT(COUNTIFS(D9:AF9,"*+"&ROW($4:$16)&"*",D9:AF9,"<>*+4.0*"))
Công thức này thì chỉ Enter.

Chủ thớt có thể xem file kèm đã gom các công thức trên để bạn tiện tham khảo. hihi ^o^

Chúc anh em ngày vui.
/-*+//-*+//-*+/
 

File đính kèm

  • Bảngchấmcông.xlsx
    23.4 KB · Đọc: 18
Lần chỉnh sửa cuối:
Công thức em điều chỉnh lại khá gọn gàng rồi đó! /-*+//-*+//-*+/
Mã:
=SUM(IFERROR(N(--MID($D9:$AG9,9,3)<4),))
=SUM(IFERROR(N(--MID($D9:$AG9,9,3)=4),))
=SUM(IFERROR(N(--MID($D9:$AG9,9,3)>4),))
Do phụ thuộc vào vị trí cắt nên để ngừa các khoảng trắng bất ngờ thì chỉ cần thêm Substitute():
Mã:
=SUM(IFERROR(N(--MID(SUBSTITUTE($D9:$AG9," ",""),6,3)<4),))
=SUM(IFERROR(N(--MID(SUBSTITUTE($D9:$AG9," ",""),6,3)=4),))
=SUM(IFERROR(N(--MID(SUBSTITUTE($D9:$AG9," ",""),6,3)>4),))

Anh góp vui thêm hai dạng công thức như anh em mình thường chơi, với số giờ làm thêm không thể quá 16h/ngày:
Dùng Count(1/....):
Mã:
=COUNT(1/(FIND("+"&ROW($1:$4)-1,$D9:$AG9)>0))
=COUNT(1/(FIND("+4.0",$D9:$AG9)>0))
=COUNT(1/(FIND("+"&ROW($4:$16),SUBSTITUTE($D9:$AG9,"+4.0",""))>0))
Cả ba công thức trên của em và anh phải kết thúc bằng Ctrl+Shift+Enter

Dùng Countif():
Mã:
=SUMPRODUCT(COUNTIF(D9:AF9,"*+"&ROW($1:$4)-1&"*"))
=SUMPRODUCT(COUNTIF(D9:AF9,"*+4.0*"))
=SUMPRODUCT(COUNTIFS(D9:AF9,"*+"&ROW($4:$16)&"*",D9:AF9,"<>"&"*+4.0*"))
Công thức này thì chỉ Enter.

Chủ thớt có thể xem file kèm đã gom các công thức trên để bạn tiện tham khảo. hihi ^o^

Chúc anh em ngày vui.
/-*+//-*+//-*+/
Diễn đạt lại công thức Enter:
Mã:
<4: 
 =SUM(COUNTIF(D9:AF9,"*+"&{0,1,2,3}&".*"))
>=4: 
=SUM(COUNTIF(D9:AF9,"*+"&{4,5,6,7,8,9}&".*"))
=4:
=COUNTIF(D9:AF9,"*+4.0")
>4:
=SUM(COUNTIFS(D9:AF9,"*+"&{4,5,6,7,8,9}&".*",D9:AF9,"<>"&"*+4.0*"))
 
Công thức em điều chỉnh lại khá gọn gàng rồi đó! /-*+//-*+//-*+/
Mã:
=SUM(IFERROR(N(--MID($D9:$AG9,9,3)<4),))
=SUM(IFERROR(N(--MID($D9:$AG9,9,3)=4),))
=SUM(IFERROR(N(--MID($D9:$AG9,9,3)>4),))
Do phụ thuộc vào vị trí cắt nên để ngừa các khoảng trắng bất ngờ thì chỉ cần thêm Substitute():
Mã:
=SUM(IFERROR(N(--MID(SUBSTITUTE($D9:$AG9," ",""),6,3)<4),))
=SUM(IFERROR(N(--MID(SUBSTITUTE($D9:$AG9," ",""),6,3)=4),))
=SUM(IFERROR(N(--MID(SUBSTITUTE($D9:$AG9," ",""),6,3)>4),))

Anh góp vui thêm hai dạng công thức như anh em mình thường chơi, với số giờ làm thêm không thể quá 16h/ngày:
Dùng Count(1/....):
Mã:
=COUNT(1/(FIND("+"&ROW($1:$4)-1,$D9:$AG9)>0))
=COUNT(1/(FIND("+4.0",$D9:$AG9)>0))
=COUNT(1/(FIND("+"&ROW($4:$16),SUBSTITUTE($D9:$AG9,"+4.0",""))>0))
Cả ba công thức trên của em và anh phải kết thúc bằng Ctrl+Shift+Enter

Dùng Countif():
Mã:
=SUMPRODUCT(COUNTIF(D9:AF9,"*+"&ROW($1:$4)-1&"*"))
=SUMPRODUCT(COUNTIF(D9:AF9,"*+4.0*"))
=SUMPRODUCT(COUNTIFS(D9:AF9,"*+"&ROW($4:$16)&"*",D9:AF9,"<>"&"*+4.0*"))
Công thức này thì chỉ Enter.

Chủ thớt có thể xem file kèm đã gom các công thức trên để bạn tiện tham khảo. hihi ^o^

Chúc anh em ngày vui.
/-*+//-*+//-*+/
cách giải countif em cũng làm rồi, nhưng cái nào nghĩ ra trước thì làm thôi.
 
Dạ, em cảm ơn
 
Chủ thớt không mô tả chính xác nên có câu hỏi.

1. Thế nếu có +3.5 thì có tính không? Bởi 3.5 nằm ngoài khoảng (1; 3). Nếu tính 3.5 thì có tính 0.5 không? Vì 0.5 cũng nằm ngoài khoảng (1; 3)

2. Thế có vd. +10.0, +10.5, +12.5 ... thì có tính không? Tức >= 10.0

Phải chăng yêu cầu là:
Tính tổng các số giờ làm thêm:
a. trong khoảng (0; 4) - khoảng mở
b. Đúng 4
c. Trên 4

?

Hay chỉ là 2 khoảng: (0; 4) và [4; +∞), hoặc 2 khoảng [1; 4) và [4; +∞)?
Ý của mình là số giờ làm thêm tính theo 3 mức: <4h, =4h và >4h đó ạ
0.5, 3.5h cũng được tính nhé
 
Công thức em điều chỉnh lại khá gọn gàng rồi đó! /-*+//-*+//-*+/
Mã:
=SUM(IFERROR(N(--MID($D9:$AG9,9,3)<4),))
=SUM(IFERROR(N(--MID($D9:$AG9,9,3)=4),))
=SUM(IFERROR(N(--MID($D9:$AG9,9,3)>4),))
Do phụ thuộc vào vị trí cắt nên để ngừa các khoảng trắng bất ngờ thì chỉ cần thêm Substitute():
Mã:
=SUM(IFERROR(N(--MID(SUBSTITUTE($D9:$AG9," ",""),6,3)<4),))
=SUM(IFERROR(N(--MID(SUBSTITUTE($D9:$AG9," ",""),6,3)=4),))
=SUM(IFERROR(N(--MID(SUBSTITUTE($D9:$AG9," ",""),6,3)>4),))

Anh góp vui thêm hai dạng công thức như anh em mình thường chơi, với số giờ làm thêm không thể quá 16h/ngày:
Dùng Count(1/....):
Mã:
=COUNT(1/(FIND("+"&ROW($1:$4)-1&".",$D9:$AG9)>0))
=COUNT(1/(FIND("+4.0",$D9:$AG9)>0))
=COUNT(1/(FIND("+"&ROW($4:$16),SUBSTITUTE($D9:$AG9,"+4.0",""))>0))
Cả ba công thức trên của em và anh phải kết thúc bằng Ctrl+Shift+Enter

Dùng Countif():
Mã:
=SUMPRODUCT(COUNTIF(D9:AF9,"*+"&ROW($1:$4)-1&".*"))
=SUMPRODUCT(COUNTIF(D9:AF9,"*+4.0*"))
=SUMPRODUCT(COUNTIFS(D9:AF9,"*+"&ROW($4:$16)&"*",D9:AF9,"<>*+4.0*"))
Công thức này thì chỉ Enter.

Chủ thớt có thể xem file kèm đã gom các công thức trên để bạn tiện tham khảo. hihi ^o^

Chúc anh em ngày vui.
/-*+//-*+//-*+/
Cảm ơn bạn nhiều nhé :)
 
Diễn đạt lại công thức Enter:
Mã:
<4:
=SUM(COUNTIF(D9:AF9,"*+"&{0,1,2,3}&".*"))
>=4:
=SUM(COUNTIF(D9:AF9,"*+"&{4,5,6,7,8,9}&".*"))
=4:
=COUNTIF(D9:AF9,"*+4.0")
>4:
=SUM(COUNTIFS(D9:AF9,"*+"&{4,5,6,7,8,9}&".*",D9:AF9,"<>"&"*+4.0*"))
Công thức đẹp, nhưng tôi nghĩ là nếu đã có a cho <4 ở AI9, và b cho =4 ở AJ9 thì
AK9 =COUNTIF($D9:$AG9;"*+*")-AI9-AJ9 cho >4

Số giờ làm thêm bất kỳ - 10, 20, ...
-----------
Công thức dùng MID ở dạng hiện thời không hay lắm. Hôm trước có người ngơ ngác hỏi trên GPE, không hiểu tại sao tập tin trên máy này chạy chuẩn mà trên máy khác bị lỗi.

Nếu dữ liệu là "+3.5" thì trên máy với dấu chấm là dấu thập phân sẽ chạy chuẩn nhưng mang sang máy với dấu phẩy là dấu thập phân thì cho kết quả không đúng.

Nếu dữ liệu là "+3,5" thì trên máy với dấu phẩy là dấu thập phân sẽ chạy chuẩn nhưng mang sang máy với dấu chấm là dấu thập phân thì cho kết quả không đúng.

Chỉ có mục đích ý thức cho những người sau này đọc chủ đề này. Để khỏi "ngơ ngác".
-----
Tạo mảng nghịch đảo (chia 1 cho các phần tử của mảng) cũng chỉ nên dùng khi không có cách khác đơn giản hơn. Vì trong máy tính thì chỉ phép cộng là đơn giản. Để làm phép nhân và chia thì người ta phải dùng thêm thuật toán. Thay cho vì chia 1 cho mảng true/false thì đơn giản hơn là phép đổi dấu 2 lần (--) hoặc +0 để "ép" convert sang số
 
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom