Roger đang tự hỏi liệu có cách nào để sử dụng hàm COUNTIF sử dụng màu nền của ô làm tiêu chí “nếu” không. Anh ấy có calendar và anh ấy muốn có thể đếm số ngày mà anh ấy đánh dấu bằng màu tím hoặc các màu khác.

Câu trả lời ngắn gọn là COUNTIF không thể được sử dụng để kiểm tra màu nền hoặc bất kỳ định dạng nào; nó chỉ có thể kiểm tra các giá trị. Nếu bạn chỉ cần tìm ra số lượng ô màu tím một hoặc hai lần, bạn có thể sử dụng tính năng Tìm và Thay thế của Excel để tìm ra. Làm theo các bước sau:

  1. Chọn các ô tạo nên lịch của bạn.

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

  3. Bấm vào nút Tùy chọn, nếu nó có sẵn. Excel mở rộng hộp thoại. (Xem Hình 1.)

  4. Đảm bảo hộp Tìm gì trống.

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

(Xem Hình 2.)

  1. Bấm vào nút Chọn Định dạng Từ Ô, ở cuối hộp thoại. Hộp thoại Tìm Định dạng biến mất và con trỏ chuột thay đổi thành dấu cộng với ống nhỏ mắt bên cạnh.

  2. Bấm vào một ô được định dạng giống như những ô bạn muốn tìm. (Nói cách khác, bấm vào ô màu tím.) Con trỏ chuột trở lại trạng thái bình thường.

  3. Nhấp vào Tìm tất cả. Hộp thoại Tìm và Thay thế mở rộng để liệt kê tất cả các ô phù hợp với định dạng và có một số lượng ô ở cuối hộp thoại.

  4. Bấm Đóng để loại bỏ hộp thoại Tìm và Thay thế.

Tất nhiên, các bước này có thể trở nên tẻ nhạt nếu bạn muốn đếm nhiều hơn một hoặc hai màu. Hoặc, bạn có thể muốn số lượng để bạn có thể sử dụng nó trong một phép tính khác của một số loại. Trong những trường hợp này, bạn nên tạo một hàm do người dùng xác định để kiểm tra các ô và trả về số lượng. Một macro như vậy là CountColorIf:

Function CountColorIf(rSample As Range, rArea As Range) As Long     Dim rAreaCell As Range     Dim lMatchColor As Long     Dim lCounter As Long

lMatchColor = rSample.Interior.Color     For Each rAreaCell In rArea         If rAreaCell.Interior.Color = lMatchColor Then             lCounter = lCounter + 1         End If     Next rAreaCell     CountColorIf = lCounter End Function

Để sử dụng macro, tất cả những gì bạn cần làm là cung cấp một ô có màu nền bạn muốn kiểm tra và phạm vi cần kiểm tra. Ví dụ: giả sử rằng ô A57 được định dạng với cùng màu nền tím mà bạn sử dụng trong các ô lịch của mình. Nếu lịch nằm trong các ô A1: G6, thì bạn có thể sử dụng cách sau để tính số ô màu tím:

=CountColorIf(A57, A1:G6)

Cần lưu ý rằng nếu bạn thay đổi màu trong một ô trong lịch của mình, thì bạn sẽ cần phải làm gì đó để buộc tính toán lại trang tính. Có vẻ như Excel không thực hiện tính toán lại tự động sau khi thay đổi màu nền.

Tất nhiên, có nhiều cách khác nhau để bạn có thể tiếp cận vấn đề và phát triển các chức năng do người dùng định nghĩa như CountColorIf. Dưới đây là một số trang web khác có chứa thông tin có thể hữu ích về vấn đề này:

http://www.cpearson.com/excel/colors.aspx https://www.ozgrid.com/VBA/sum-count-cells-by-color.htm http://xldynamic.com/source/xld.ColourCounter.html

Ngoài ra còn có một số tiện ích bổ sung của bên thứ ba mà bạn có thể sử dụng.

Một tiện ích bổ sung được người đọc đề xuất là Kutools cho Excel. Bạn có thể tìm thêm thông tin về tiện ích này tại đây:

https://www.extendoffice.com/product/kutools-for-excel.html

Một lưu ý cuối cùng — các ý tưởng trong mẹo này hoạt động tốt nếu bạn đang làm việc với các ô được tô màu rõ ràng. Chúng sẽ không hoạt động với các ô được tô màu bằng Định dạng có Điều kiện. Đó là một ấm đun nước hoàn toàn khác để đun sôi, vì Định dạng có điều kiện không thực sự cung cấp cho bạn bất cứ thứ gì bạn có thể bám vào dễ dàng.

_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 (11725) áp dụng cho Microsoft Excel 2007, 2010, 2013, 2016, 2019 và Excel trong Office 365.