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 (8)

  1. avatar
    Đỗ Thị Hoaon 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àngon 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.

    • avatar
      Lê Hải Lýon March 26, 2018

      Bạn khắc phục được chưa chỉ mình với

  3. avatar
    ha minhon April 26, 2017

    khi sum mà số tiền trong ô nên màu từ 3 tỷ trở lên thì báo lỗi, không cộng được. ad khắc phục giùm di

  4. avatar
    Hiếu Nguyễnon June 13, 2017

    hình như 0.5 nó tính bằng 1 thì phải

  5. avatar
    Bùi Thị Hàon June 27, 2017

    chủ page cho em hỏi ngu 1 câu nhé: em dùng hàm này, nhưng kết quả không cho kết quả lẻ (vd là 2.5) toàn làm chẵn giá trị thôi (2.5 sẽ thành 3). em để thể hiện số thập phân cũng không được. Giải cứu giùm em với. Em cảm ơn nhiều ạ!

  6. avatar
    Nick Nguyenon February 28, 2018

    Cảm ơn rất nhiều, bài viết rất hay và hữu ích +100 point :)

  7. avatar
    LOAN NGUYENon March 29, 2018

    khi sum mà số tiền trong ô nên màu từ 2 tỷ trở lên thì báo lỗi, không cộng được. ad khắc phục giùm với nhé.

Viết bình luận