Liệu Hàm Countif có tính được bài toán này không?

Liên hệ QC

ltlho

Thành viên mới
Tham gia
12/12/11
Bài viết
10
Được thích
1
Điểm
0
Thân chào toàn thể các anh chị. Em vừa xin vào làm việc cho công ty A. Bên bộ phận nhân sự.
Công ty yêu cầu em làm bảng tính như trong file đính kèm, em đã thử nhiều cách nhưng không được, mong các chú các bác các anh chị giúp em càng sớm càng tốt, em xin chân thành cảm ơn!
View attachment Help.xlsx

 
Thân chào toàn thể các anh chị. Em vừa xin vào làm việc cho công ty A. Bên bộ phận nhân sự.
Công ty yêu cầu em làm bảng tính như trong file đính kèm, em đã thử nhiều cách nhưng không được, mong các chú các bác các anh chị giúp em càng sớm càng tốt, em xin chân thành cảm ơn!
View attachment 75902

Có thể đưa về excel 2003 đươc không
 
Không ai làm được ạ. em cần gắp lắm
 
Có ai giúp em với, sắp tới hạn nộp báo cáo rồi các anh chị ơi!
 

File đính kèm

  • Help2003_2.rar
    7.3 KB · Đọc: 72
bt.jpg

- Số ngày nghỉ liên tiếp nhiều nhất: HÌnh như có công thức nha thầy
 
Đếm tổng số ngày nghỉ dùng CountBlank là được:
M2 =COUNTBLANK(B2:L2)
 
Nếu B2:L2 có ký tự rỗng (space} tạo ra bằng phím space bar thì "tèo"
Cái này sử dụng công thức cũng hơi tê ah nha.
Theo em Hướng giải quyết là
Countif()-Cái gì đó*SUMPRODUCT(4 đến 5 or 6 điều kiện)
Tối nay đi off thứ 2 làm thử
 
Có ai trên đời chấm công bằng 1 ký tự trắng bao giờ? Nói chung, đã chấm công là phải theo đúng bảng quy ước chấm công. Nếu chấm công sai, sẽ tính ra lương sai, và bị kiện cáo. Nếu là nhân viên của lão chết tiệt, sẽ bị đuổi.
 
* Đếm tổng ngày nghỉ: dùng của Bate tại #6
* Số ngày nghỉ liên tiếp nhiều nhất:
Cái này sử dụng công thức cũng hơi tê ah nha.
Theo em Hướng giải quyết là
Countif()-Cái gì đó*SUMPRODUCT(4 đến 5 or 6 điều kiện)
Tối nay đi off thứ 2 làm thử
SUMPRODUCTcũng giải quyết được, nhưng phức tạp. Cái này sao mọi người ít dùng nhỉ:
Mã:
=MAX(FREQUENCY(IF(B2:L2="",COLUMN(A2:K2)),IF(B2:L2<>"",COLUMN(A2:K2))))
 
* Đếm tổng ngày nghỉ: dùng của Bate tại #6
* Số ngày nghỉ liên tiếp nhiều nhất:

SUMPRODUCTcũng giải quyết được, nhưng phức tạp. Cái này sao mọi người ít dùng nhỉ:
Mã:
=MAX(FREQUENCY(IF(B2:L2="",COLUMN(A2:K2)),IF(B2:L2<>"",COLUMN(A2:K2))))
Cái này hay lắm ạ, đúng ý em rồi, có thể cho em hỏi thêm. Nếu mỗi ngày phát sinh thêm một cột mà không muốn làm lại công thức bằng tay, em muốn nó tự động tăng vùng đếm lên một cột có được không ạ? ví dụ L2 chuyển thành M2, K2 thành L2. Vì ngày mới lại chấm công mới rồi ạ. Cái này em hỏi thêm thôi, nếu không thì ngày nào sửa ngày đó cũng ok lắm rồi, cảm ơn các anh chị em đã nhiệt tình giúp em!
 
Bác Ba Tê và bác Bebo02199 đã giúp em làm xong những ngày nghỉ liên tiếp lớn nhất. cảm ơn các anh. Giờ có vấn đề nãy sinh là phải đếm số ngày nghỉ liên tiếp thường xuyên. Hy vọng có thể giúp em lần nữa. Cảm ơn!
em ví dụ: Nhật ký của ông Lâm như sau: x--xxx---x-xxxx--xx----xxx
Giải thích: 1. Tổng số ngày nghỉ của ông Lâm là 12
2. Số ngày nghỉ liên tiếp lớn nhất là 4
3. Số ngày nghỉ liên tiếp thường xuyên là 2
dấu (-) là số ngày nghỉ.
 
Bác Ba Tê và bác Bebo02199 đã giúp em làm xong những ngày nghỉ liên tiếp lớn nhất. cảm ơn các anh. Giờ có vấn đề nãy sinh là phải đếm số ngày nghỉ liên tiếp thường xuyên. Hy vọng có thể giúp em lần nữa. Cảm ơn!
em ví dụ: Nhật ký của ông Lâm như sau: x--xxx---x-xxxx--xx----xxx
Giải thích: 1. Tổng số ngày nghỉ của ông Lâm là 12
2. Số ngày nghỉ liên tiếp lớn nhất là 4
3. Số ngày nghỉ liên tiếp thường xuyên là 2
dấu (-) là số ngày nghỉ.
Tổng số ngày nghỉ:
Mã:
=COLUMNS(B3:M3)-COUNTIF(B3:M3,"x")
Số ngày nghỉ lớn nhất
Mã:
=MAX(FREQUENCY(COLUMN(B3:N3),IF(B3:M3="x",COLUMN(B3:M3)))-1)
Số ngày nghỉ liên tiếp thường xuyên
Mã:
=MIN(IF(FREQUENCY(COLUMN(B3:N3),IF(B3:M3="x",COLUMN(B3:M3)))-1=0,"",FREQUENCY(COLUMN(B3:N3),IF(B3:M3="x",COLUMN(B3:M3)))-1))
Ghi chú:
Để insert ngày mới, cần chừa 1 cột cuối bảng có đánh dấu "x", insert phía trước cột này để tạo ngày mới. Như vậy công thức luôn bao trùm đến hết cột này.
Công thức thứ 2 và 3 là công thức mảng, nhấn Ctrl-shift-enter để kết thúc
 

File đính kèm

  • Help.xls
    22 KB · Đọc: 16
Tổng số ngày nghỉ:
Mã:
=COLUMNS(B3:M3)-COUNTIF(B3:M3,"x")
Số ngày nghỉ lớn nhất
Mã:
=MAX(FREQUENCY(COLUMN(B3:N3),IF(B3:M3="x",COLUMN(B3:M3)))-1)
Số ngày nghỉ liên tiếp thường xuyên
Mã:
=MIN(IF(FREQUENCY(COLUMN(B3:N3),IF(B3:M3="x",COLUMN(B3:M3)))-1=0,"",FREQUENCY(COLUMN(B3:N3),IF(B3:M3="x",COLUMN(B3:M3)))-1))
Ghi chú:
Để insert ngày mới, cần chừa 1 cột cuối bảng có đánh dấu "x", insert phía trước cột này để tạo ngày mới. Như vậy công thức luôn bao trùm đến hết cột này.
Công thức thứ 2 và 3 là công thức mảng, nhấn Ctrl-shift-enter để kết thúc
Rất cảm ơn anh ( thầy )!
Bài toán bắt đầu phức tạp hơn nếu giờ em thêm vào ký tự Y. Y là biểu tượng cho nghỉ 1/2 ngày. Và như vậy là công thức 2 và 3 sẽ không đúng nữa thưa anh. Liệu có thể làm tiếp cho em được không? em gửi file đính kèm đây ạ!
 

File đính kèm

  • Bang tinh cong.xls
    24 KB · Đọc: 3
Rất cảm ơn anh ( thầy )!
Bài toán bắt đầu phức tạp hơn nếu giờ em thêm vào ký tự Y. Y là biểu tượng cho nghỉ 1/2 ngày. Và như vậy là công thức 2 và 3 sẽ không đúng nữa thưa anh. Liệu có thể làm tiếp cho em được không? em gửi file đính kèm đây ạ!
Xem file đính kèm thử coi
 

File đính kèm

  • Bang tinh cong.xls
    22.5 KB · Đọc: 13
Cái này thì đúng rồi anh! nhưng khổ một cái anh gán cái vị trí cố định giờ em không thể áp dụng cho bảng chấm công của em được ạ! nó chỉ đúng với ví dụ minh họa thôi anh. Làm sao có thể thay thế vị trí của công thức vitri hả anh?
 
Cái này thì đúng rồi anh! nhưng khổ một cái anh gán cái vị trí cố định giờ em không thể áp dụng cho bảng chấm công của em được ạ! nó chỉ đúng với ví dụ minh họa thôi anh. Làm sao có thể thay thế vị trí của công thức vitri hả anh?
Để áp dụng trong file của bạn, cần lưu ý:
Name vitri là name động, giá trị thay đổi tương ứng với dòng của vị trí ô hiện hành.
Giải sử ô hiện hành đang ở 1 ô bất kỳ tại dòng 3, ấn Ctrl-F3 sẽ thấy:
Mã:
=FREQUENCY(COLUMN(Sheet3!$B[COLOR=#ff0000][B]3[/B][/COLOR]:$[B][COLOR=#ff0000][/COLOR][/B]O[B][COLOR=#ff0000]3[/COLOR][/B]),IF(SUBSTITUTE(Sheet3!$B[COLOR=#ff0000][B]3[/B][/COLOR]:$N[B][COLOR=#ff0000]3[/COLOR][/B],"y","x")="x",COLUMN(Sheet3!$B[COLOR=#ff0000][B]3[/B][/COLOR]:$N[B][COLOR=#ff0000][B]3[/B][/COLOR][/B])))
Trong file mới của bạn, giả sử bảng chấm công nằm trong sheet có tên là chamcong, bạn làm theo các bước như sau:
* Copy đoạn code trên vào 1 ô nào đó trong dòng 3 (cách xa về phía bên phải)
* Sửa "sheet3" trong đọan code thành "chamcong"
* Sửa phạm vi cột trong code tương ứng với vị trí cột tương ứng trong file mới.
* Nhấn Ctrl-F3, đặt tên name là vitri, copy đoạn code đã sửa vào mục "Refer to:"
 
Web KT
Back
Top Bottom