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 ô.
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.
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:
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:
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ẽ:
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).
Cuối cùng Copy công thức cho các ô còn lại -> Kết quả:
Chúc các bạn thành công!
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ỉ?
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.
Bạn khắc phục được chưa chỉ mình với
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
hình như 0.5 nó tính bằng 1 thì phải
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 ạ!
Cảm ơn rất nhiều, bài viết rất hay và hữu ích +100 point :)
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é.