Michala có một bảng các câu trả lời khảo sát bao gồm các văn bản khác nhau với các màu sắc khác nhau. Ví dụ: nếu câu trả lời khảo sát là “Tôi không thích chó”, thì từ “chó” có thể có màu đỏ và phần còn lại của văn bản là màu đen. Một câu trả lời có thể có nhiều màu, chẳng hạn như trong câu trả lời “Tôi thích chó và mèo”, từ “chó” có thể có màu đỏ và từ “mèo” có màu xanh lam. Michala cần một cách để đánh dấu một dải ô và đếm xem có bao nhiêu ô chứa văn bản của một màu cụ thể, chẳng hạn như đỏ hoặc xanh lam.

Điều này được thực hiện tốt nhất bằng cách phát triển một chức năng do người dùng xác định có thể thực hiện việc đếm cho bạn. Ví dụ sau bước qua một dải ô và đếm cho bất kỳ giá trị chỉ số màu nào bạn chỉ định.

Function CountColorIndex(rng As Range, iColor As Integer)

Dim v As Variant     Dim rCell As Range     Dim str As String     Dim sChar As String     Dim x As Integer     Dim iCount As Integer

iCount = 0     For Each rCell In rng         v = rCell.Font.ColorIndex         If IsNull(v) Then             For x = 1 To Len(rCell.Value)

If rCell.Characters(x, 1).Font.ColorIndex _                   = iColor Then                     iCount = iCount + 1                     Exit For                 End If             Next         ElseIf v = iColor Then             iCount = iCount + 1         End If     Next     CountColorIndex = iCount End Function

Trước tiên, hàm xem xét màu phông chữ của toàn bộ ô. Nếu màu ô là Null, điều đó có nghĩa là màu của các ký tự riêng lẻ đã được thay đổi và do đó hàm bắt đầu xem qua từng ký tự. Nếu nó tìm thấy màu phù hợp, số lượng (iCount) sẽ được tăng lên và hàm ngừng xem qua từng ký tự.

Nếu màu ô không phải là Null, thì hàm sẽ xác định xem màu chữ của toàn bộ ô có khớp với màu mong muốn hay không. Nếu có, thì số lượng được tăng lên.

Quá trình này được lặp lại cho mỗi ô trong phạm vi được chỉ định và sau đó hàm trả về giá trị của số lượng. Bạn sử dụng hàm theo cách sau:

=CountColorIndex(B7:D42,3)

Công thức này kiểm tra phạm vi B7: D42 để xem có các trường hợp màu đỏ hay không. Sau đó, số lượng được trả về bởi công thức.

Điều đáng nói là hàm dựa vào các giá trị chỉ số màu.

Giá trị bình thường, mặc định cho màu đỏ là 3 và giá trị cho màu xanh lam là 5, nhưng người dùng có thể sửa đổi các giá trị này và chúng có thể thay đổi tùy theo phiên bản Excel bạn đang sử dụng. Để hàm trả về kết quả mong muốn, bạn sẽ cần sửa đổi giá trị chỉ mục màu, được chỉ định trong tham số thứ hai của công thức, để nó đại diện cho các chỉ mục màu được sử dụng trong sổ làm việc cụ thể của bạ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 (2901) áp dụng cho Microsoft Excel 97, 2000, 2002 và 2003.