Cindy có một trang tính được định dạng đầy đủ sử dụng màu trong nhiều ô.

Một số ô có giá trị trong chúng; nhiều người không. Cô ấy cần một cách để đếm bất kỳ ô màu nào còn trống và tự hỏi liệu có cách nào nhanh chóng để làm điều này không.

Có một số cách để bạn có được thông tin bạn cần. Một cách là thực hiện các bước sau:

  1. Tìm ra màu mà bạn muốn sử dụng trong số lượng của mình.

  2. Nhấn F5. Excel sẽ hiển thị hộp thoại Đi tới.

  3. Nhấp vào nút Đặc biệt. Excel sẽ hiển thị hộp thoại Đi đến Đặc biệt.

(Xem Hình 1.)

  1. Chọn nút radio Blanks.

  2. Bấm OK. Bây giờ tất cả các ô trống trong trang tính đã được chọn.

  3. Nhấn Ctrl + F. Excel sẽ hiển thị tab Tìm của hộp thoại Tìm và Thay thế.

  4. Nhấp vào nút Tùy chọn để mở rộng hộp thoại. (Xem Hình 2.)

  5. Nhấp vào nút Định dạng. Excel sẽ hiển thị hộp thoại Tìm Định dạng.

  6. Đảm bảo rằng tab Điền được hiển thị. (Xem Hình 3.)

  7. Nhấp vào màu bạn muốn tìm kiếm. (Đây là màu bạn đã xác định ở bước 1)

  8. Bấm OK để đóng hộp thoại Tìm Định dạng.

  9. Nhấp vào Tìm tất cả.

Khi bạn thực hiện các bước này, ở cuối hộp thoại Tìm và Thay thế, Excel sẽ hiển thị số ô tìm thấy phù hợp với màu của bạn. Vì bạn bắt đầu tìm kiếm chỉ với các ô trống được chọn, nên số lượng kết quả là tất cả các ô trống được tô màu.

Tất nhiên, nếu bạn cần xác định số lần này khá nhiều lần, thì các bước này có thể trở nên tẻ nhạt rất nhanh. Trong những trường hợp như vậy, tốt hơn là sử dụng macro. Macro sau đây sẽ bước qua từng ô trống trong bất kỳ phạm vi nào bạn đã chọn và kiểm tra xem nó có chứa một mẫu hoặc một màu nào và có trống không. Nếu các điều kiện được đáp ứng, thì bộ đếm cho màu đó sẽ tăng lên.

Sub CountBlankColors1()

Dim c As Range     Dim J As Integer     Dim ColorCount(56) As Long

ActiveSheet.Range("a1").CurrentRegion.SpecialCells(xlCellTypeBlanks).Select

For Each c In Selection         With c.Interior             If .Pattern <> xlNone Then                 If .ColorIndex <> xlNone Then                     If IsEmpty(c) Then                         ColorCount(.ColorIndex) = _                           ColorCount(.ColorIndex) + 1                     End If                 End If             End If         End With     Next c

sTemp = "These are the color counts" & vbCrLf & vbCrLf     For J = 0 To 56         If ColorCount(J) > 0 Then             sTemp = sTemp & "Color " & J & ": " & ColorCount(J) & vbCrLf         End If     Next J

MsgBox sTemp End Sub

Tất nhiên, bạn có thể không muốn đếm từng màu khác nhau.

Thay vào đó, bạn có thể muốn biết tổng thể có bao nhiêu ô trống được tô bằng bất kỳ màu nào. Trong trường hợp đó, macro trở nên đơn giản hơn nhiều.

Sub CountBlankColors2()

Dim c As Range     Dim x As Long

x = 0     ActiveSheet.Range("a1").CurrentRegion.SpecialCells(xlCellTypeBlanks).Select

For Each c In Selection         If c.Interior.Pattern <> xlNone Then             If c.Interior.ColorIndex <> xlNone Then                 If IsEmpty(c) Then x = x + 1             End If         End If     Next c     MsgBox "Number of colored blank cells: " & x End Sub

Cần lưu ý rằng các phương pháp này không xem xét ô có được tô màu thông qua việc sử dụng định dạng có điều kiện hay không.

(Trên thực tế, họ không tính đến các định dạng có điều kiện.)

_Lưu ý: _

Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.

ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.

Mẹo này (12581) áp dụng cho Microsoft Excel 2007, 2010, 2013, 2016, 2019 và Excel trong Office 365.