Hướng Dẫn Dùng Hàm COLOR Trong Excel để đếm Và Tính Tổng ô ...
Có thể bạn quan tâm
Làm thế nào để vận dụng màu sắc trong trang tính để tăng phần sinh động cho file Excel? Nếu bạn đang băn khoăn câu hỏi này thì hàm COLOR trong Excel chính là câu trả lời bạn đang tìm kiếm. Hãy cùng Gitiho học cách sử dụng hàm COLOR qua bài viết ngày hôm nay nhé.
XEM NHANH BÀI VIẾT
- 1 Giới thiệu về hàm COLOR trong Excel
- 2 Cách đếm và tính tổng các ô màu bằng hàm COLOR trong Excel
- 3 Cách đếm và tính tổng số ô theo màu trên toàn bộ bảng tính
- 4 Cách đếm và tính tổng các ô màu định dạng có điều kiện bằng hàm COLOR trong Excel
- 5 Tổng kết
Giới thiệu về hàm COLOR trong Excel
Không có gì kỳ lạ nếu đây là lần đầu tiên bạn nghe đến tên hàm COLOR trong Excel, bởi nó không nằm trong hệ thống hàm có sẵn của Excel. Thay vào đó, đây là một hàm UDF (user-defined function) - hàm do người dùng tự tạo dựa trên code VBA. Mục đích chúng ta viết một hàm COLOR mới là để đếm và tính tổng các ô Excel dựa trên màu sắc.
Nếu bạn còn chưa quen với thuật ngữ hàm UDF và tính năng viết hàm bằng lệnh VBA, hãy tham khảo bài viết dưới đây để mở khóa một thủ thuật vô cùng lợi hại trong Excel nhé.
Cách đếm và tính tổng các ô màu bằng hàm COLOR trong Excel
Chúng ta hãy đi vào một ví dụ cụ thể về hàm COLOR trong Excel để xác định các bước cần làm. Dưới đây là trang tính thể hiện trạng thái giao hàng của một công ty vận tải, trong đó "Đang giao hàng trong X ngày" được tô màu vàng, "Giao hàng thành công" được tô màu xanh, "Quá hạn giao hàng" được tô màu đỏ. Hãy cùng xem cách sử dụng hàm COLOR trong Excel để đếm và tính tổng các ô theo màu tương ứng nhé.
Xem thêm: Cách tính tổng nhiều điều kiện bằng hàm Sumifs
Cách đếm và tính tổng các ô theo màu ô bằng hàm COLOR trong Excel
Cách đếm số ô theo màu ô bằng hàm COLOR trong Excel
Bước 1: Ấn tổ hợp phím Alt+F11 để mở giao diện Visual Basic Editor (VBE). Sau đó nhấn chuột phải ở tên trang tính trong mục Project - VBA Project, chọn Insert > Module.
Bước 2: Một bảng tính hiện ra. Các bạn nhập dòng code sau vào bảng tính:
Function GetCellColor(xlRange As Range) Dim indRow, indColumn As Long Dim arResults() Application.Volatile If xlRange Is Nothing Then Set xlRange = Application.ThisCell End If If xlRange.Count > 1 Then ReDim arResults(1 To xlRange.Rows.Count, 1 To xlRange.Columns.Count) For indRow = 1 To xlRange.Rows.Count For indColumn = 1 To xlRange.Columns.Count arResults(indRow, indColumn) = xlRange(indRow, indColumn).Interior.Color Next Next GetCellColor = arResults Else GetCellColor = xlRange.Interior.Color End If End Function Function GetCellFontColor(xlRange As Range) Dim indRow, indColumn As Long Dim arResults() Application.Volatile If xlRange Is Nothing Then Set xlRange = Application.ThisCell End If If xlRange.Count > 1 Then ReDim arResults(1 To xlRange.Rows.Count, 1 To xlRange.Columns.Count) For indRow = 1 To xlRange.Rows.Count For indColumn = 1 To xlRange.Columns.Count arResults(indRow, indColumn) = xlRange(indRow, indColumn).Font.Color Next Next GetCellFontColor = arResults Else GetCellFontColor = xlRange.Font.Color End If End Function Function CountCellsByColor(rData As Range, cellRefColor As Range) As Long Dim indRefColor As Long Dim cellCurrent As Range Dim cntRes As Long Application.Volatile cntRes = 0 indRefColor = cellRefColor.Cells(1, 1).Interior.Color For Each cellCurrent In rData If indRefColor = cellCurrent.Interior.Color Then cntRes = cntRes + 1 End If Next cellCurrent CountCellsByColor = cntRes End Function Function SumCellsByColor(rData As Range, cellRefColor As Range) Dim indRefColor As Long Dim cellCurrent As Range Dim sumRes Application.Volatile sumRes = 0 indRefColor = cellRefColor.Cells(1, 1).Interior.Color For Each cellCurrent In rData If indRefColor = cellCurrent.Interior.Color Then sumRes = WorksheetFunction.Sum(cellCurrent, sumRes) End If Next cellCurrent SumCellsByColor = sumRes End Function Function CountCellsByFontColor(rData As Range, cellRefColor As Range) As Long Dim indRefColor As Long Dim cellCurrent As Range Dim cntRes As Long Application.Volatile cntRes = 0 indRefColor = cellRefColor.Cells(1, 1).Font.Color For Each cellCurrent In rData If indRefColor = cellCurrent.Font.Color Then cntRes = cntRes + 1 End If Next cellCurrent CountCellsByFontColor = cntRes End Function Function SumCellsByFontColor(rData As Range, cellRefColor As Range) Dim indRefColor As Long Dim cellCurrent As Range Dim sumRes Application.Volatile sumRes = 0 indRefColor = cellRefColor.Cells(1, 1).Font.Color For Each cellCurrent In rData If indRefColor = cellCurrent.Font.Color Then sumRes = WorksheetFunction.Sum(cellCurrent, sumRes) End If Next cellCurrent SumCellsByFontColor = sumRes End FunctionLưu bảng tính vừa nhập code dưới tên “Excel Macro-Enabled Workbook (.xlsm)”. Như vậy, chúng ta đã xử lí xong phần code VBA.
Bước 3: Quay lại trang tính trạng thái giao hàng, ta tạo một bảng tổng hợp kết quả đếm ô theo màu. Để tiến hành phân loại và đếm số ô có màu tương ứng, ta dùng hàm COLOR trong Excel theo công thức:
=CountCellsByColor(range, color code)
Trong đó:
- range: là phạm vi đếm
- color code: là code màu tương ứng
Như vậy, ta sẽ nhập vào ô B15 công thức: =CountCellsByColor($E$2:$E$12,A15)
Lưu ý: Chúng ta có thể sử dụng tham chiếu tuyệt đối để khóa phạm vi đếm.
Như bạn thấy thì việc đếm và tô màu các ô trong Excel giờ đây nhanh chóng và dễ dàng hơn bao giờ hết với VBA. Nếu bạn chưa biết học VBA như nào và có khó không thì hãy đăng ký hoặc học thử ngay các khóa học dưới đây của Gitiho nhé:
VBAG01: Tuyệt đỉnh VBA - Tự động hóa Excel với lập trình VBA
G-LEARNING 499,000đ 799,000đ Đăng ký Học thử VBAG03 (Nâng cao) - Code mẫu và các chuyên đề ứng dụng VBA
G-LEARNING 499,000đ 899,000đ Đăng ký Học thử
Cách tính tổng theo màu ô bằng hàm COLOR trong Excel
Tương tự như công thức hàm COLOR phía trên, để tính tổng số liệu các ô theo màu tương ứng, chúng ta dùng hàm sau:
=SumCellsByColor(range, color code)
Trong ví dụ trên, giả sử chúng ta cần tính tổng số lượng hàng theo từng trạng thái giao hàng. Ta điền vào ô B15 công thức: =SumCellsByColor($C$2:$C$12,A15)
Cách đếm và tính tổng các ô theo màu chữ bằng hàm COLOR trong Excel
Cách đếm số ô theo màu chữ bằng hàm COLOR trong Excel
Thay vì sử dụng màu ô để đếm số ô tương ứng, chúng ta còn có thể đếm số ô theo màu chữ bằng cách dùng hàm:
=CountCellsByFontColor(range, color code)
Cách tính tổng các ô theo màu chữ bằng hàm COLOR trong Excel
Để tính tổng các ô dựa vào màu chữ, chúng ta chỉ cần nhập công thức đơn giản như sau:
=SumCellsByFontColor(range, color code)
Lưu ý: Khi sử dụng code VBA phía trên, trong trường hợp chúng ta cần thêm các ô dữ liệu mới, chúng ta sẽ phải tô màu ô hoặc màu chữ thủ công. Kết quả số ô và tổng các ô đã tính sẽ không tự động cập nhật thêm những ô dữ liệu mới. Thay vào đó, các bạn cần di con trỏ chuột vào một ô bất kì trong phạm vi, ấn F2 rồi Enter. Lúc đó Excel mới cập nhật kết quả sau cùng.
Cách đếm và tính tổng số ô theo màu trên toàn bộ bảng tính
Nếu các bạn muốn đếm và tính tổng số ô theo một màu nhất định thì hãy nhập code sau vào VBA:
Function WbkCountCellsByColor(cellRefColor As Range) Dim vWbkRes Dim wshCurrent As Worksheet Application.ScreenUpdating = False Application.Calculation = xlCalculationManual vWbkRes = 0 For Each wshCurrent In Worksheets wshCurrent.Activate vWbkRes = vWbkRes + CountCellsByColor(wshCurrent.UsedRange, cellRefColor) Next Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic WbkCountCellsByColor = vWbkRes End Function Function WbkSumCellsByColor(cellRefColor As Range) Dim vWbkRes Dim wshCurrent As Worksheet Application.ScreenUpdating = False Application.Calculation = xlCalculationManual vWbkRes = 0 For Each wshCurrent In Worksheets wshCurrent.Activate vWbkRes = vWbkRes + SumCellsByColor(wshCurrent.UsedRange, cellRefColor) Next Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic WbkSumCellsByColor = vWbkRes End FunctionCác bạn có thể sử dụng mã Macro phía trên cùng. công thức =WbkCountCellsColor() và =WbkSumCellsByColor(). Bằng cách nhập công thức vào một ô trống bất kì bên ngoài vùng lựa chọn, xác định vị trí ô chứa màu lựa chọn và nhập vị trí ô vào ngoặc đơn (), các bạn sẽ nhận được kết quả tổng các ô cùng màu trong trang tính.
Tổng hợp các chức năng tùy chỉnh màu sắc ô, màu chữ và lấy mã màu bằng hàm COLOR trong Excel:
Công thức đếm số ô bằng màu sắc:
- CountCellsByColor (range,color_code) – đếm các ô có màu nền được chỉ định.
- CountCellsByFontColor (range,color_code) – đếm các ô với màu chữ được chỉ định.
Công thức tính tổng bằng màu sắc:
- SumCellsByColor (range, color code) – tính tổng của các ô có cùng màu nền.
- SumCellsByFontColor (range, color code) – tính tổng của các ô có cùng màu chữ.
Công thức lấy mã màu:
- GetCellFontColor(cell) – trả về mã màu chữ của một ô xác định.
- GetCellColor(cell) – trả về mã màu nền của một ô xác định.
Lưu ý: Tất cả các công thức chỉ hoạt động khi các bạn thêm chức năng được định nghĩa vào trang tính Excel.
Xem thêm: Hướng dẫn những mã VBA cơ bản và thường dùng nhất trong Excel
Cách đếm và tính tổng các ô màu định dạng có điều kiện bằng hàm COLOR trong Excel
Để đếm và tính tổng các ô màu ở bất kì định dạng có điều kiện nào, chúng ta cần nhập code VBA dưới đây:
Sub SumCountByConditionalFormat() Dim indRefColor As Long Dim cellCurrent As Range Dim cntRes As Long Dim sumRes Dim cntCells As Long Dim indCurCell As Long cntRes = 0 sumRes = 0 cntCells = Selection.CountLarge indRefColor = ActiveCell.DisplayFormat.Interior.Color For indCurCell = 1 To (cntCells – 1) If indRefColor = Selection(indCurCell).DisplayFormat.Interior.Color Then cntRes = cntRes + 1 sumRes = WorksheetFunction.Sum(Selection(indCurCell), sumRes) End If Next MsgBox “Count=” & cntRes & vbCrLf & “Sum= ” & sumRes & vbCrLf & vbCrLf & _ “Color=” & Left(“000000”, 6 – Len(Hex(indRefColor))) & _ Hex(indRefColor) & vbCrLf, , “Count & Sum by Conditional Format color” End SubChúng ta làm theo các bước sau:
Bước 1: Chọn vùng dữ liệu bằng số muốn thao tác.
Bước 2: Nhấn giữ phím Ctrl, chọn một ô có màu muốn thao tác trong vùng dữ liệu, thả phím Ctrl.
Bước 3: Nhấn tổ hợp Alt+F8 để mở danh sách Macros.
Bước 4: Chọn SumCountByConditionalFormat và nhấn Run.
Xem thêm: Hướng dẫn hiện thẻ Developer để ghi Macro hoặc viết code VBA trong Excel
Sau khi hoàn thành, kết quả được hiển thị như trong ảnh:
Hộp thoại trên cho thấy: Có 3 ô nền màu đỏ thể hiện 3 đơn hàng đang ở trạng thái quá hạn giao hàng, tổng số lượng hàng bị quá hạn giao là 29, và mã của màu đỏ được dùng trong ô là 7578FF.
Xem thêm: Cách dùng hàm đếm ô có dữ liệu trong Excel chi tiết nhất
Tổng kết
Vậy là chúng ta đã học xong cách đếm và tính tổng các ô theo màu bằng hàm COLOR trong Excel rồi. Bằng cách sử dụng yếu tố màu sắc, các bạn có thể phân loại dữ liệu rõ ràng hơn, đồng thời tăng sự sinh động cho file Excel của mình. Nếu bạn muốn học thêm những kiến thức hữu ích tương tự về Excel và code VBA Excel, hãy đọc các bài viết trên blog Gitiho và đăng kí các khóa học Excel của Gitiho nhé.
Tất cả khóa học Excel tại Gitiho đều có chương trình được xây dựng bởi chuyên gia tin học văn phòng có nhiều năm kinh nghiệm đào tạo cho nhân viên các tập đoàn lớn. Bạn sẽ học cùng chương trình như Gitiho đã cung cấp cho các doanh nghiệp như Samsung, TH True Milk, Cốc Cốc, Vietinbank, VP Bank,... Trong quá trình học, giảng viên cũng luôn hỗ trợ sát sao, giải đáp mọi thắc mắc của các bạn trong vòng. Hãy đặt câu hỏi dưới video bài giảng nếu bạn có vấn đề chưa hiểu nhé.
Chúc các bạn áp dụng thật thành công kiến thức trong bài viết!
Từ khóa » Tô Màu Chữ Trong Vba
-
Nhờ Chỉ Giúp Cách Sử Dụng Hàm để Tô Màu Chữ
-
Tự động Tô Màu Dòng Của ô được Chọn Trong Bảng Bằng VBA
-
Cách Tô Màu Dữ Liệu đang Tìm Kiếm Trong Một Vùng Bằng VBA
-
Vấn đề Tô Màu Gặp Khi Sử Dụng Code Trong Record Macro Của Excel
-
Cách Tô Màu đoạn Văn Bản Text Trong 1 Chuỗi (tô Màu Kết Quả Tìm ...
-
Cách định Dạng Dữ Liệu Bảng Tính Excel Bằng VBA
-
Thuộc Tính BackColor - Microsoft Support
-
Tô Màu Gradient Cho ô Trong Excel để Tạo Giao Diện Khác Biệt
-
Cách Chọn Và Tô Sáng Các ô Trống Trong Excel - KetoanMVB
-
Làm Sao để đổi Màu Text Trong Excel Bằng Cách Dùng Lệnh
-
Tự Động Tô Màu Nguyên Dòng Khi Được Chọn Trong Excel
-
Làm Cách Nào để Thêm Ngẫu Nhiên Màu Nền / Màu Tô Cho Các ô ...
-
Ô định Dạng VBA Dựa Trên Màu Tô Và Màu Phông Chữ - HelpEx