Tính tổng theo màu nền (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

thinhpt

Thành viên mới
Tham gia
19/10/07
Bài viết
3
Được thích
1
Tôi muôn tạo một hàm tương tự nhw tính tổng tương tự hàm SUM, nhưng có thêm tham số màu nền. Hàm sẽ tính tổng các số trong range, nhưng chỉ tính tổng các số có cùng màu nền như trong tham số được cung cấp.

Mong anh em gần xa chỉ giáo (VBA)
 
Mong mọi người giúp đỡ..
Bạn nên miêu tả sơ qua chứ ---> Mở file định làm nhưng thấy ghi gì gì tùm lum bên trong nên càng không hiểu
- Tổng cột nào?
- Theo điều kiện gì?
- Đặt công thức vào cell nào?
(Có phải tính tổng các cell màu đỏ không ta?)
 
Upvote 0
Với trang tính cụ thể này thì OK, như sau

PHP:
Option Explicit
Function SumColorCells(LookUpRange As Range) As Double
 Dim Clls As Range
 For Each Clls In LookUpRange
   With Clls
      If .Offset(, -3).Value = Range("Tong").Value Then _
         SumColorCells = SumColorCells + .Value
   End With
 Next Clls
End Function

Hướng dẫn sử dụng:

(1) Gàn tên cho 1 ô đang có chữ 'Tổng' với tên là 'Tong'

(2) Tại ô nào bất kỳ muốn hiện tổng trị đã bôi màu tại cột 'F', như [F7] ta nhập cú pháp sau:
=SumColorCells(F8:F31)

Thực tế, đây không phải tính tổng theo màu mà tính tổng theo dữ liệu ô cận kề (Đó là ô có chữ 'Tổng'); Chuyện này rất bấp bênh & chỉ áp dụng được với những bảng đặc thù cụ thể mà thôi.
 
Upvote 0
Bạn nên miêu tả sơ qua chứ ---> Mở file định làm nhưng thấy ghi gì gì tùm lum bên trong nên càng không hiểu
- Tổng cột nào?
- Theo điều kiện gì?
- Đặt công thức vào cell nào?
(Có phải tính tổng các cell màu đỏ không ta?)
Vâng, em xin lỗi. Em muốn tính tổng từng ngày tại các ô màu đỏ ở cột Chi.
 
Lần chỉnh sửa cuối:
Upvote 0
PHP:
Option Explicit
Function SumColorCells(LookUpRange As Range) As Double
 Dim Clls As Range
 For Each Clls In LookUpRange
   With Clls
      If .Offset(, -3).Value = Range("Tong").Value Then _
         SumColorCells = SumColorCells + .Value
   End With
 Next Clls
End Function
Hướng dẫn sử dụng:

(1) Gàn tên cho 1 ô đang có chữ 'Tổng' với tên là 'Tong'

(2) Tại ô nào bất kỳ muốn hiện tổng trị đã bôi màu tại cột 'F', như [F7] ta nhập cú pháp sau:
=SumColorCells(F8:F31)

Thực tế, đây không phải tính tổng theo màu mà tính tổng theo dữ liệu ô cận kề (Đó là ô có chữ 'Tổng'); Chuyện này rất bấp bênh & chỉ áp dụng được với những bảng đặc thù cụ thể mà thôi.
Anh có thể thực hiện trên file rồi gửi lên được không ah, em đã làm như anh hướng dẫn nhưng không được.
 
Upvote 0
Mình đã sửa nội dung của hàm

Anh có thể thực hiện trên file rồi gửi lên được không ah, em đã làm như anh hướng dẫn nhưng không được.

Lí do sửa: Trước mình tính tổng các ô có màu tại cột 'Tồn' (?)
Giờ thỉ đúng cho cả 2 cột luôn:

PHP:
Option Explicit
Function SumColorCells(LookUpRange As Range) As Double
 Dim Clls As Range
 For Each Clls In LookUpRange
   With Clls
      If .Offset(, Range("Tong").Column - LookUpRange.Column).Value = Range("Tong").Value Then _
         SumColorCells = SumColorCells + .Value
   End With
 Next Clls
End Function
 

File đính kèm

Upvote 0
Em chép code rùi cho chạy trên file khác nhưng không chạy được, Mọi người hướng dẫn em cách chép code nhé. em cám ơn...
 
Upvote 0
Bạn thử hàm này xem sao

PHP:
Function SumColor(rg As Range) As Double
For Each it In rg
If it.Interior.ColorIndex <> -4142 Then SumColor = SumColor + it
Next
End Function
Khi đổi màu xong bạn nhấn F9 để tính toán lại nhé. Mình thêm Application.Volatile những hàm vẫn không tự cập nhật ngay lập tức
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Em chép code rùi cho chạy trên file khác nhưng không chạy được, Mọi người hướng dẫn em cách chép code nhé. em cám ơn...

Còn việc liên quan ít nhiều đến hàm, đó là gán 1 ô có chứa 'Tổng' có tên là 'Tong'
:-=

To Đất Cảng thân mến:

Hình như với các ô CF thì trò này chưa được ở e2K3
 
Upvote 0
Bạn thử hàm này xem sao

PHP:
Function SumColor(rg As Range) As Double
For Each it In rg
If it.Interior.ColorIndex <> -4142 Then SumColor = SumColor + it
Next
End Function
Khi đổi màu xong bạn nhấn F9 để tính toán lại nhé. Mình thêm Application.Volatile những hàm vẫn không tự cập nhật ngay lập tức
Mình làm theo cách này rất tốt và không cần phải nhấn F9 vẫn tự động tính lại mà. Cám ơn bạn rất nhiều..--=0
 
Upvote 0
Hic hic, mình dùng CF nên chỉ bôi màu được chữ thôi nên công thức cho kết quả "=0", phải làm sao bjờ các bác ui...
 
Lần chỉnh sửa cuối:
Upvote 0
Lí do sửa: Trước mình tính tổng các ô có màu tại cột 'Tồn' (?)
Giờ thỉ đúng cho cả 2 cột luôn:

PHP:
Option Explicit
Function SumColorCells(LookUpRange As Range) As Double
 Dim Clls As Range
 For Each Clls In LookUpRange
   With Clls
      If .Offset(, Range("Tong").Column - LookUpRange.Column).Value = Range("Tong").Value Then _
         SumColorCells = SumColorCells + .Value
   End With
 Next Clls
End Function
Cách của Bác rất hay,cám ơn bác rất nhiều...
 
Upvote 0
Giúp mình tính tổng các số theo màu này!

Nhờ các bạn giúp mình bài tập tính tổng các số theo màu này với!Mình có ghi chi tiết trong file Excel!
Cảm ơn các bạn nhiều!
 

File đính kèm

Upvote 0

File đính kèm

Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom