Tính toán theo màu nền của ô cell trong Excel

Bài viết dưới đây hướng dẫn chi tiết cách tính tổng các ô dữ liệu theo màu nền của ô cell trong Excel bằng cách xây dựng hàm macro tính toán theo màu nền của cell.

Ví dụ: Các màu có giá trị tương ứng. Hãy tính tổng các giá trị tương ứng màu nền của ô.

Các màu có giá trị tương ứng

Bước 1: Nhấn tổ hợp phím Alt + F11 mở cửa sổ làm việc của VBA -> Vào thẻ Insert -> Module.

Module

Bước 2: Xây dựng hàm tính tổng theo màu (đặt tên SumByColor). Nhập code sau vào Module vừa tạo:

Nhập Code vào Module vừa tạo

Function SumByColor(cellColor As Range, rRange As Range)
Dim tong As Long
Dim mau_sac As Integer
mau_sac = cellColor.Interior.ColorIndex
For Each c In rRange
If c.Interior.ColorIndex = mau_sac Then
tong = WorksheetFunction.Sum(c, tong)
End If
Next c
SumByColor = tong
End Function

Lưu ý: Bạn nhớ tên hàm nhé vừa tạo nhé.

Bước 3: Quay trở lại File Excel cần tính tổng chọn vào hàm SumByColor như hình dưới:

SumByColor

Bước 4: Hàm SumByColor (cellColor, rRange) có 2 đối số là giá trị màu của ô và vùng dữ liệu cần tính giá trị -> Nhập câu lệnh như hình vẽ:

Nhập câu lệnh

Bước 5: Chuyển đổi địa chỉ ô về địa chỉ tuyệt đối, bôi đen vùng địa chỉ và nhấn F4. (Bạn nên làm bước này để tránh sai sót).

Chuyển đổi địa chỉ

Cuối cùng Copy công thức cho các ô còn lại -> Kết quả:

Kết quả

Chúc các bạn thành công!

Bình luận (2)

  1. avatar
    Đỗ Thị Hoa on June 15, 2016

    Cho minh hỏi tại sao mình cài xong công thức sumbycolor tính toán được rồi nhưng ở các bảng cell khác lại không có công thức sumbycolor nữa nhỉ?

  2. avatar
    Dạ Tràng on December 27, 2016

    Bạn cho mình hỏi sao thiết lập cái này (Function SumByColor(cellColor As Range, rRange As Range) Dim tong As Long Dìm màu_sắc As Integer màu_sắc = cellColor.Interior.ColorIndex For Each c In rRange If c.Interior.ColorIndex = màu_sắc Thẹn tong = WorksheetFunction.Sum(c, tổng) End If Next c SumByColor = tổng End Function) phếp tính 8.5 + 7 = 16, không bằng 15.5 vậy. Cảm ơn Nhiều, mình đã thiết lập ô tính lấy luôn phần thập phân nhưng nó vẫn cho ra 16.

Viết bình luận