Phát hiện dữ liệu liên tục

Tuấn Hào

Thành viên mới
Tham gia ngày
17 Tháng ba 2017
Bài viết
27
Thích
1
Điểm
165
#1
Nhờ anh chị em giúp đỡ ạ!

*Thống kê bạn nào vắng liên tục 3 ngày liên tiếp trở lên (3 ngày liên tục nhưng mỗi ngày 1 buổi cũng tính) thì cột cuối cùng hiện thị số 1
 

File đính kèm

Ba Tê

Cạo Rồi Sẽ Gội
Tham gia ngày
5 Tháng năm 2009
Bài viết
10,533
Thích
14,842
Điểm
1,560
Tuổi
60
#2
Nhờ anh chị em giúp đỡ ạ!

*Thống kê bạn nào vắng liên tục 3 ngày liên tiếp trở lên (3 ngày liên tục nhưng mỗi ngày 1 buổi cũng tính) thì cột cuối cùng hiện thị số 1
Dùng hàm Excel khó quá, dùng tạm hàm tự tạo bằng VBA thử xem.
 

File đính kèm

Phan Thế Hiệp

Thành viên gắn bó
Tham gia ngày
10 Tháng mười 2017
Bài viết
1,777
Thích
4,889
Điểm
360
Tuổi
47
#6

File đính kèm

Tham gia ngày
28 Tháng hai 2017
Bài viết
2,382
Thích
2,640
Điểm
360
#8
Muốn vầy hả bạn hiền:
Mã:
AM4=N(MAX(FREQUENCY(IF(COUNTIF(OFFSET(C4:D4,,(ROW($1:$18)-1)*2),"V"),ROW($1:$18)),IF(COUNTIF(OFFSET(C4:D4,,(ROW($1:$18)-1)*2),"V"),,ROW($1:$18))))>2)
Kết thúc bằng Ctrl+Shift+Enter.

Thân
Kết quả Nguyễn Văn 13 anh xem lại thử.
Lỡ đọc thiếu đề thôi làm lại, nhấn Ctrl+Shift+Enter:
Mã:
=N(MAX(FREQUENCY(COLUMN(A:R),IF((T(OFFSET(B4,,(COLUMN(A:R)-1)*2+1))="V")+(T(OFFSET(C4,,(COLUMN(A:R)-1)*2+1))="V")=0,COLUMN(A:R))))>3)
 
Lần chỉnh sửa cuối:

Phan Thế Hiệp

Thành viên gắn bó
Tham gia ngày
10 Tháng mười 2017
Bài viết
1,777
Thích
4,889
Điểm
360
Tuổi
47
#9
Kết quả chính xác, nhưng hơi dài. :)
Chỉ sợ hổng biết tìm ra cách làm, chứ kết quả chính xác là mừng lắm rồi. Nói thì dễ, nhúng tay vô làm mới khó, lại phải tìm giải pháp khác, chứ để giới võ lâm giang hồ nói mình "đạo bài" ê chề lắm.

Khà khà khà
:p:p:p
 

batman1

Thành viên tích cực
Tham gia ngày
8 Tháng chín 2014
Bài viết
1,482
Thích
2,360
Điểm
360
#10
Vì thấy bạn khen hay là hay thế nào? vì giờ thấy cũng đâu hay vì chưa có công thức đúng
Ý người ta là bài tập của thớt hay, chủ đề hay. Chứ công thức bài #3 thì sai rồi.

Công thức ngắn gọn thôi. Chủ yếu là biết tư duy thì công thức hay code chả có gì đáng sợ. Còn nếu chỉ cần cù thì luôn được khá chứ không bao giờ xuất sắc được.

Nhiều bạn chỉ học thuộc kiến thức, sưu tầm tuyệt chiêu mà không chịu suy nghĩ, tư duy, hiểu bản chất vấn đề. Vì thế khi gặp cũng vấn đề đã biết nhưng cho ở dạng khác, biến tấu chút ít thì lại bó tay. Cái cần rèn luyện nhất là tư duy. Không có tư duy thì không có thuật toán, dù công thức hay code, mà không có thuật toán thì không có thực hiện, không có kết quả.

Công thức kết thúc bằng Ctrl+Shift+Enter
Mã:
=--(MAX(FREQUENCY(ROW($1:$18),IF(COUNTIF(OFFSET(C4,,2*(ROW($1:$18)-1),,2),"v")=0,ROW($1:$18))))>3)
 

File đính kèm

batman1

Thành viên tích cực
Tham gia ngày
8 Tháng chín 2014
Bài viết
1,482
Thích
2,360
Điểm
360
#14
Công thức này còn dài, có thể có cách tiếp cận khác dễ hiểu hơn và ngắn hơn.
Đấy là ý tưởng đầu tiên. Khi người ta có ý tưởng thì cứ cắm đầu đi theo một hướng. Bạn nói thế thì vấn đề hơi bị thú vị đấy.
Nếu rút ngắn được mà lại dễ hiểu thì còn gì bằng. Tôi cũng thích sự đơn giản vì nó có vẻ đẹp vô cùng cuốn hút.
 

HieuCD

Thành viên gạo cội
Tham gia ngày
14 Tháng chín 2010
Bài viết
5,157
Thích
8,324
Điểm
560
#15
Công thức này còn dài, có thể có cách tiếp cận khác dễ hiểu hơn và ngắn hơn.
Không biết có đạt yêu cầu không ngài "Giám khảo"
Mã:
=--(MAX(MMULT(--(COUNTIF(OFFSET(OFFSET(C4,,{0,2,4},,2),,2*ROW($1:$16)-2,,2),"v")>0),{1;1;1}))>2)
 

Phan Thế Hiệp

Thành viên gắn bó
Tham gia ngày
10 Tháng mười 2017
Bài viết
1,777
Thích
4,889
Điểm
360
Tuổi
47
#16
Không biết có đạt yêu cầu không ngài "Giám khảo"
Mã:
=--(MAX(MMULT(--(COUNTIF(OFFSET(OFFSET(C4,,{0,2,4},,2),,2*ROW($1:$16)-2,,2),"v")>0),{1;1;1}))>2)
Quá hay!
:clap::clap::clap:
Quan trọng là công thức lõi: OFFSET(OFFSET(C4,,{0,2,4},,2),,2*ROW($1:$16)-2,,2).
Cái khó và hay thuộc về người tìm ra ý tưởng trước, còn "đạo bài" lấy cái lõi của người thêm bớt chút, để làm ra cái khác thì sao dám huênh hoang đây!

Cho nên, em đưa công thức dưới đây chỉ dám nói là hỗ trợ thêm cho ý tưởng của anh, để làm công thức cho gọn đẹp:
Mã:
=N(OR(MMULT(N(COUNTIF(OFFSET(C4,,{0,2,4}+(ROW($1:$16)-1)*2,,2),"v")>0),{1;1;1})>2))
Chỉ Enter, rồi fill xuống.

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

tam888

Thành viên tích cực
Tham gia ngày
22 Tháng tám 2013
Bài viết
610
Thích
352
Điểm
435
#18
Gõ tay vào là còn đường ngắn nhất "))
Không cần đâu
Chủ topic này bố trí dữ liệu dở tệ nên dẫn đến công thức khủng vậy
Còn cứ bố trí dữ liệu chuẩn thì công thức sẽ đơn giản.
1 ngày thì 1 cột thôi:
Ví dụ vắng cả ngày ghi VV
Vắng sáng ghi V-
Vắng chiều ghi -V
 

SA_DQ

/(hông là gì!
Thành viên danh dự
Tham gia ngày
8 Tháng sáu 2006
Bài viết
5,222
Thích
8,888
Điểm
860
#19
1 ngày thì 1 cột thôi:
Ví dụ vắng cả ngày ghi VV
Vắng sáng ghi V-
Vắng chiều ghi -V
Sao không là: Vắng sáng sẽ là 'S'; Vắng chiều sẽ là 'C'; Còn vắng cả ngày sẽ là 'V'
Mà hình như không vắng là để trống; Thì nên chăng vắng ta cứ 'X' mà mần!
 
Lần chỉnh sửa cuối:
Top