[Xin Giúp Đỡ] Báo hiệu 7 ngày làm việc liên tục

Liên hệ QC

Srosro

Thành viên mới
Tham gia
10/7/18
Bài viết
15
Được thích
9
Xin chào các Pro!

Em mới làm chấm công!

Chấm công bình thường thì không sao!

nhưng Công ty em có 1 số quy định khi làm việc

Trong số đó có 1 quy định là không được làm việc 7 ngày Liên tiếp

Nếu không sẽ bị vi phạm

Em chấm công theo ngàylàm việc cho hơn 1000 người nên muốn nó hiển thị rõ ràng ra để em có thể chấm công 1 cách hiệu quả

File em có gửi kèm

Các Pro check giúp em nha!

DẠ em mong là có cách nào KHÔNG dùng VBA ấy ạ~
( tại nhiều file em up lên hệ thống công ty để chia sẻ nó không chấp nhận file chưa Macro)

TKS ALL!

Dữ liệu nguồn

1-Jan​
2-Jan​
3-Jan​
4-Jan​
5-Jan​
6-Jan​
7-Jan​
8-Jan​
9-Jan​
10-Jan​
11-Jan​
12-Jan​
13-Jan​
14-Jan​
15-Jan​
16-Jan​
17-Jan​
18-Jan​
19-Jan​
20-Jan​
21-Jan​
22-Jan​
23-Jan​
24-Jan​
25-Jan​
26-Jan​
27-Jan​
28-Jan​
29-Jan​
30-Jan​
31-Jan​
1-Feb​
2-Feb​
Nam
8​
8​
8​
0​
0​
8​
8​
8​
8​
8​
8​
8​
8​
0​
0​
8​
8​
8​
8​
8​
8​
0​
0​
8​
8​
8​
8​
0​
0​
8​
8​
8​
8​
Hung
9.5​
9.5​
11​
11​
9.5​
0​
0​
9.5​
9.5​
11​
0​
9.5​
9.5​
9.5​
9.5​
11​
9.5​
11​
11​
11​
9.5​
0​
0​
9​
10​
11​
11​
0​
11​
11​
9.5​
9.5​
9.5​
Tuan
0​
0​
0​
0​
0​
0​
0​
0​
0​
0​
0​
0​
0​
9.5​
9.5​
9.5​
0​
0​
0​
0​
0​
0​
0​
9.5​
9.5​
9.5​
9.5​
0​
0​
0​
0​
0​
0​
Phong
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​


kết quả mong muốn nếu thể sử dụng Conditional Formatting

1582213758105.png


Còn thực chất em chỉ muốn giải quyết vấn đề nên các Pro còn cách nào để giúp em thì em xin cảm ơn ạ
 

File đính kèm

  • danh dau 7 ngay lam viec lien tiep.xlsx
    12.1 KB · Đọc: 20
Xin chào các Pro!

Em mới làm chấm công!

Chấm công bình thường thì không sao!

nhưng Công ty em có 1 số quy định khi làm việc

Trong số đó có 1 quy định là không được làm việc 7 ngày Liên tiếp

Nếu không sẽ bị vi phạm

Em chấm công theo ngàylàm việc cho hơn 1000 người nên muốn nó hiển thị rõ ràng ra để em có thể chấm công 1 cách hiệu quả

File em có gửi kèm

Các Pro check giúp em nha!

DẠ em mong là có cách nào KHÔNG dùng VBA ấy ạ~
( tại nhiều file em up lên hệ thống công ty để chia sẻ nó không chấp nhận file chưa Macro)

TKS ALL!

Dữ liệu nguồn

1-Jan​
2-Jan​
3-Jan​
4-Jan​
5-Jan​
6-Jan​
7-Jan​
8-Jan​
9-Jan​
10-Jan​
11-Jan​
12-Jan​
13-Jan​
14-Jan​
15-Jan​
16-Jan​
17-Jan​
18-Jan​
19-Jan​
20-Jan​
21-Jan​
22-Jan​
23-Jan​
24-Jan​
25-Jan​
26-Jan​
27-Jan​
28-Jan​
29-Jan​
30-Jan​
31-Jan​
1-Feb​
2-Feb​
Nam
8​
8​
8​
0​
0​
8​
8​
8​
8​
8​
8​
8​
8​
0​
0​
8​
8​
8​
8​
8​
8​
0​
0​
8​
8​
8​
8​
0​
0​
8​
8​
8​
8​
Hung
9.5​
9.5​
11​
11​
9.5​
0​
0​
9.5​
9.5​
11​
0​
9.5​
9.5​
9.5​
9.5​
11​
9.5​
11​
11​
11​
9.5​
0​
0​
9​
10​
11​
11​
0​
11​
11​
9.5​
9.5​
9.5​
Tuan
0​
0​
0​
0​
0​
0​
0​
0​
0​
0​
0​
0​
0​
9.5​
9.5​
9.5​
0​
0​
0​
0​
0​
0​
0​
9.5​
9.5​
9.5​
9.5​
0​
0​
0​
0​
0​
0​
Phong
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​
9.5​


kết quả mong muốn nếu thể sử dụng Conditional Formatting

View attachment 232204


Còn thực chất em chỉ muốn giải quyết vấn đề nên các Pro còn cách nào để giúp em thì em xin cảm ơn ạ
Bỏ tiêu đề chữ: Xin giúp đỡ
Vì đăng lên đây là biết hỏi cần giúp đỡ rồi, nên thừa

Thường người ta bôi màu ngày vi phạm (tức là ngày thứ 7 trở đi)
 
Bạn xài macro này cho ngàn người thân thương của bạn & chúc vui:
PHP:
Sub BoiMau7NgayTroLen()
Dim J As Long, Rws As Long, Bay As Integer, MyColor As Integer
Dim Cls As Range, Rng As Range, cRg As Range

Rws = [A9].End(xlDown).Row:                Randomize
MyColor = 34 + 9 * Rnd() \ 1:                  Application.ScreenUpdating = False
For J = 9 To Rws + 1
    Set Rng = Cells(J, "B").Resize(, 31)
    Set cRg = Nothing:                              Bay = 0
    Rng.Interior.ColorIndex = 2
    For Each Cls In Rng
        If Cls.Value > 0 Then
            If Bay = 0 Then
                Set cRg = Cls
            Else
                Set cRg = Union(cRg, Cls)
            End If
            Bay = Bay + 1
            If Bay > 6 Then cRg.Interior.ColorIndex = MyColor
        Else
            Set cRg = Nothing:                      Bay = 0
        End If
    Next Cls
Next J
 Application.ScreenUpdating = True
End Sub
 
Lần chỉnh sửa cuối:
Dùng Conditional Formatting tại ô B12 nhé:
Mã:
=AND(B12>0,IFERROR(INDEX(C$11:$AH$11,MATCH(0,C12:$AH12,0)),$AH$11)-IFERROR(LOOKUP(2,1/(A12:$B12=0),A$11:$B$11),$B$11)-1>6)
Apply cho toàn bộ bảng.
 

File đính kèm

  • danh dau 7 ngay lam viec lien tiep.xlsx
    12.3 KB · Đọc: 21
cảm ơn pro nhiều nha.
Bạn xài macro này cho ngàn người thân thương của bạn & chúc vui:
PHP:
Sub BoiMau7NgayTroLen()
Dim J As Long, Rws As Long, Bay As Integer, MyColor As Integer
Dim Cls As Range, Rng As Range, cRg As Range

Rws = [A9].End(xlDown).Row:                Randomize
MyColor = 34 + 9 * Rnd() \ 1:                  Application.ScreenUpdating = False
For J = 9 To Rws + 1
    Set Rng = Cells(J, "B").Resize(, 31)
    Set cRg = Nothing:                              Bay = 0
    Rng.Interior.ColorIndex = 2
    For Each Cls In Rng
        If Cls.Value > 0 Then
            If Bay = 0 Then
                Set cRg = Cls
            Else
                Set cRg = Union(cRg, Cls)
            End If
            Bay = Bay + 1
            If Bay > 6 Then cRg.Interior.ColorIndex = MyColor
        Else
            Set cRg = Nothing:                      Bay = 0
        End If
    Next Cls
Next J
Application.ScreenUpdating = True
End Sub
m ơn
 
Dùng Conditional Formatting tại ô B12 nhé:
Mã:
=AND(B12>0,IFERROR(INDEX(C$11:$AH$11,MATCH(0,C12:$AH12,0)),$AH$11)-IFERROR(LOOKUP(2,1/(A12:$B12=0),A$11:$B$11),$B$11)-1>6)
Apply cho toàn bộ bảng.
Trời ơi. Tuyệt cú mèo. cảm ơn chất xám của pro rất nhiều
 
Web KT
Back
Top Bottom