Đếm các ô theo màu Conditional Formating

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

son0611excel

Thành viên chính thức
Tham gia
3/1/20
Bài viết
69
Được thích
11
Giới tính
Nam
Nghề nghiệp
Kỹ Thuật
Em chào anh chị ạ, em đang tìm cách đếm màu Cell được sử dụng conditional formating để bôi, em điều kiện, em đang tìm vba ở trên mạng nhưng sài nó vẫn không đếm được, em đang nghi ngờ do em dùng conditional formating nên nó không hiểu ô màu em đang bôi, anh chị có cách nào khác có thể đếm được có bao nhiêu ô theo màu sắc không ạ. Em xin cảm ơn ạ.
 

File đính kèm

  • Quản lý tiến độ nhóm.xlsm
    26.3 KB · Đọc: 8
Em chào anh chị ạ, em đang tìm cách đếm màu Cell được sử dụng conditional formating để bôi, em điều kiện, em đang tìm vba ở trên mạng nhưng sài nó vẫn không đếm được, em đang nghi ngờ do em dùng conditional formating nên nó không hiểu ô màu em đang bôi, anh chị có cách nào khác có thể đếm được có bao nhiêu ô theo màu sắc không ạ. Em xin cảm ơn ạ.
Bạn sử dụng chính cái điều kiện đã dùng để Conditional formating rồi bỏ vào hàm If kết hợp Countifs nhé.
 
Lần chỉnh sửa cuối:
Bạn sử dụng chính cái điều kiện đã dùng để Conditional formating rồi bỏ vào hàm If kết hợp Countifs nhé.
Em đã tìm được hàm rồi ạ, nhưng vấn đề em đang gặp phải là đếm theo điều kiện, ví dụ em muốn chỉ đếm từ ngày 10- ngày 20 thôi, em cần hỗ trợ thêm hàm điều kiện vào code bên dưới ạ.
Mã:
Function CountColor(rng As Range, colorcell As Range) As Long
    Dim cell As Range
    Dim clr As Long
    clr = colorcell.Interior.color
    For Each cell In rng
        If Evaluate("GetColor(" & cell.Address(External:=True) & ")") = clr Then
            CountColor = CountColor + 1
        End If
    Next cell
End Function

Function GetColor(cell As Range) As Long
    GetColor = cell.DisplayFormat.Interior.color
End Function
 
Em đã tìm được hàm rồi ạ, nhưng vấn đề em đang gặp phải là đếm theo điều kiện, ví dụ em muốn chỉ đếm từ ngày 10- ngày 20 thôi, em cần hỗ trợ thêm hàm điều kiện vào code bên dưới ạ.
Mã:
Function CountColor(rng As Range, colorcell As Range) As Long
    Dim cell As Range
    Dim clr As Long
    clr = colorcell.Interior.color
    For Each cell In rng
        If Evaluate("GetColor(" & cell.Address(External:=True) & ")") = clr Then
            CountColor = CountColor + 1
        End If
    Next cell
End Function

Function GetColor(cell As Range) As Long
    GetColor = cell.DisplayFormat.Interior.color
End Function
Viết thêm cái hàm
Function KhoangNgay(ByVal NgayNaoDo As Long, ByVal NgayDieuKien As Long)
NgayDieuKien = NgayDieuKien - Ngay Nào Do
KhoangNgay = NgayDieuKien >=10 And NgayDieuKien <-20
End Function

Lưu ý là yêu cầu ở bài #3 sẽ làm cho con số đếm ô trở nên tối nghĩa.
 
Web KT

Bài viết mới nhất

Back
Top Bottom