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)
 
Em tưởng cái này vẫn có thể dùng " FORMULA IS " CONDITIONAL FORMATTING. Có dùng được không ạ. Cái này theo em được biết max 3 điều kiện tức là có thể dùng 3 FORMULA phải không ? Xin chỉ giáo
 
Upvote 0
Conditional Formating chỉ đánh dấu cell theo màu nào đó thỏa mản điều kiện chứ làm sao mà SUM dc như bạn thinhpt vừa nói chứ!
 
Upvote 0
thinhpt đã viết:
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)
Bạn tham khảo ở đây nhé.
http://tinyurl.com/2mcpjy


Hoặc bạn có thể chi File VD
Thân!
 
Upvote 0
Sau khi tham khảo các vi dụ anh em chỉ, mình vẫn không hiểu. Kèm theo đây là ví dụ cụ thể mong anh em chỉ giáo.
 

File đính kèm

Upvote 0
Hay quá, cám ơn bác OK nhiều.

Cái mình biết là hạt cát so với biển cả kiến thức menh mông.
 
Upvote 0
Mình thấy rất tuyệt, nhưng không biết lý do tại sao khi mình thực hành thử trên chính file của bạn thì ok. Nhưng khi mình áp dụng vào file công việc thì lại không ra kết quả. không biết nó có ràng buộc điều kiện gì không.
 
Upvote 0
michealvu đã viết:
Mình thấy rất tuyệt, nhưng không biết lý do tại sao khi mình thực hành thử trên chính file của bạn thì ok. Nhưng khi mình áp dụng vào file công việc thì lại không ra kết quả. không biết nó có ràng buộc điều kiện gì không.

Vì nó chỉ là 1 Function (Công thức) có tác dụng trong chính File đó. Muốn nó tác dụng trong File khác thì có 2 cách :
  1. Copy Function đó vào chính File đó
  2. Biến file chứa Function thành Add-ins
Đây là điều cần có hiểu biết chút xíu về VBA.

Thân!
 
Upvote 0
Tính tổng theo màu sắc ô!!!

tình hình la em muốn hỏi các bác là làm sao để có thể tính tổng của các ô có củng màu sắc trong một cột, tức là điều kiện lọc là cùng màu thì cộng lại ây ạ. thaks các bác nhiều!!!!--=----=--
 
Upvote 0
tình hình la em muốn hỏi các bác là làm sao để có thể tính tổng của các ô có củng màu sắc trong một cột, tức là điều kiện lọc là cùng màu thì cộng lại ây ạ. thaks các bác nhiều!!!!--=----=--

Cái này thì không dùng công thức bình thường được rồi. Chắc phải dùng VBA mới đc.
 
Upvote 0
tình hình la em muốn hỏi các bác là làm sao để có thể tính tổng của các ô có củng màu sắc trong một cột, tức là điều kiện lọc là cùng màu thì cộng lại ây ạ. thaks các bác nhiều!!!!--=----=--
Bạn thử dùng hàm tự tạo này xem !
Mã:
Function Demtheomau(rColor As Range, rRange As Range, Optional SUM As Boolean)
Dim rCell As Range
Dim ICol As Long
Dim vResult
ICol = rColor.Interior.ColorIndex
    If SUM = True Then
        For Each rCell In rRange
        If rCell.Interior.ColorIndex = ICol Then
            vResult = WorksheetFunction.SUM(rCell) + vResult
        End If
        Next rCell
        Else
            For Each rCell In rRange
                If rCell.Interior.ColorIndex = ICol Then
                    vResult = 1 + vResult
                End If
        Next rCell
    End If
  Demtheomau = vResult
    
End Function
 

File đính kèm

Upvote 0
Upvote 0
Lần chỉnh sửa cuối:
Upvote 0
Upvote 0
Tính tổng ô bôi màu

Cho em hỏi có cách nào tính tổng của các ô đã bôi màu không ạh?
 
Upvote 0
Cho em hỏi có cách nào tính tổng của các ô đã bôi màu không ạh?
Bài này trên diễn đàn có nhiều rồi thông thường phải dùng đế VB. Tặng Bạn file tính số ô tô màu của Bác AnhTuan dùng macro 4 về nghiên cứu nè.
 
Upvote 0
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
Tính tổng theo điều kiện ngày tháng/Tính tổng theo điều kiện màu của ô dữ liệu (Cell)

Chào các anh chị em,

Xin nhờ các anh chị em giúp tôi tính tổng dữ liệu theo:

- Điều kiện ngày tháng.

hoặc

- Điều kiện màu của ô chứa dữ liệu.

Tôi gửi kèm theo file minh hoạ ở đây.

Rất mong sớm nhận được sữ giúp đỡ.

Xin cảm ơn.
 

File đính kèm

Upvote 0
Chào các anh chị em,

Xin nhờ các anh chị em giúp tôi tính tổng dữ liệu theo:

- Điều kiện ngày tháng.

hoặc

- Điều kiện màu của ô chứa dữ liệu.

Tôi gửi kèm theo file minh hoạ ở đây.

Rất mong sớm nhận được sữ giúp đỡ.

Xin cảm ơn.

Câu 1: Dùng hàm sau

E2=SUMPRODUCT((WEEKDAY($A$2:$A$32)=F2)*($B$2:$B$32)) -->Kéo xuống

Lưu ý là phải tham chiếu đến cell phụ theo ngày trong tuần, Thứ 2=2 --> Thứ 7=7, Chủ Nhật =1

Câu 2: Dùng code sau:

Mã:
Function ColorFunction(rColor As Range, rRange As Range, Optional SUM As Boolean)
    Dim rCell As Range
    Dim lCol As Long
    Dim vResult
    lCol = rColor.Interior.ColorIndex
    If SUM = True Then
        For Each rCell In rRange
            If rCell.Interior.ColorIndex = lCol Then
                vResult = WorksheetFunction.SUM(rCell, vResult)
            End If
        Next rCell
    Else
        For Each rCell In rRange
            If rCell.Interior.ColorIndex = lCol Then
                vResult = 1 + vResult
            End If
        Next rCell
    End If
   ColorFunction = vResult

End Function
Cú Pháp:

Cộng Tổng =ColorFunction(CellChuaDKMau,VungCanCong,True) Nếu muốn đếm thay True=False
 

File đính kèm

Upvote 0
Chào các anh chị em,

Xin nhờ các anh chị em giúp tôi tính tổng dữ liệu theo:

- Điều kiện ngày tháng.

hoặc

- Điều kiện màu của ô chứa dữ liệu.

Tôi gửi kèm theo file minh hoạ ở đây.

Rất mong sớm nhận được sữ giúp đỡ.

Xin cảm ơn.
công thức đếm người tham dự ngày
=SUM(IF((WEEKDAY($A$2:$A$32,1)=1),$B$2:$B$32))
=SUM(IF((WEEKDAY($A$2:$A$32,1)=2),$B$2:$B$32))
=SUM(IF((WEEKDAY($A$2:$A$32,1)=7),$B$2:$B$32))
1=cn, 2= thứ 2, 3=thứ 3
nhớ bấm ctrl+shifl+enter nhé
còn sum theo màu thì công thức tôi không biết
 
Upvote 0
Chào các anh chị em,

Xin nhờ các anh chị em giúp tôi tính tổng dữ liệu theo:
- Điều kiện ngày tháng.
hoặc
- Điều kiện màu của ô chứa dữ liệu.
Tôi gửi kèm theo file minh hoạ ở đây.
Rất mong sớm nhận được sữ giúp đỡ.
Xin cảm ơn.
Xin gởi một cách giải
câu 2:

Mã:
Public Function tongmau(vung, mau As Range) As Long
    Dim i, kq As Long
        i = mau.Interior.ColorIndex
            For Each mau In vung
                If mau.Interior.ColorIndex = i Then kq = kq + mau
            Next
tongmau = kq
End Function
Cú pháp: =tongmau(vung,mau)
vung: là vùng muốn tính tổng, trong bài là B2:B32
màu: chọn bất cứ cell nào có màu muốn tính tổng
 

File đính kèm

Upvote 0
Câu 1: thì mình có thể dùng hàm Sumif hoặc dùng mảng.
Còn câu 2 thì mình bó tay bởi vì không rành về Macro.
 

File đính kèm

Upvote 0
Dùng cái có sẵn ...

Chào các anh chị em,

Xin nhờ các anh chị em giúp tôi tính tổng dữ liệu theo:

- Điều kiện ngày tháng.

hoặc

- Điều kiện màu của ô chứa dữ liệu.

Tôi gửi kèm theo file minh hoạ ở đây.

Rất mong sớm nhận được sữ giúp đỡ.

Xin cảm ơn.

1. Điều kiện ngày tháng (với dữ liệu sẵn có như của bạn thì chỉ cần 1 công thức & không cần cột phụ), tại dòng 2 dùng cái này rồi fill xuống:
PHP:
=SUMPRODUCT((LEFT(TEXT($A$2:$A$32,"[$-409A]ddd"),3)=D2)*($B$2:$B$32))


2. Điều kiện theo màu (bạn đang dùng phiên bản >= Excel 2007 thì có thể hỗ trợ tính tổng theo màu được rồi - không cần VBA hay Macro gì hết)
Dùng Filter dòng tiêu đề, dùng hàm =SUBTOTAL(109,B2:B33) ở dưới
Bạn vào từng Filter by color -> Chọn Filter by Cell color sẽ ra kết quả như mong muốn !
 
Lần chỉnh sửa cuối:
Upvote 0
Hỏi thêm cho rõ, giúp nhen bạn!

2. Điều kiện theo màu (bạn đang dùng phiên bản >= Excel 2007 thì có thể hỗ trợ tính tổng theo màu được rồi - không cần VBA hay Macro gì hết)
Dùng Filter dòng tiêu đề, dùng hàm =SUBTOTAL(109,B2:B33) ở dưới
Bạn vào từng Filter by color -> Chọn Filter by Cell color sẽ ra kết quả như mong muốn !

Nếu mảng ô màu được tô bỡi CF thì trong Excel 2K3 khó vô chừng; Còn trong E2K7 trở lên có dễ không vậy, bạn?
 
Upvote 0
Nếu mảng ô màu được tô bỡi CF thì trong Excel 2K3 khó vô chừng; Còn trong E2K7 trở lên có dễ không vậy, bạn?

Bác, tôi chưa test cái này cho E2K3 !
Còn E2K7 trở lên thì cũng không biết dễ hay không nữa, thực sự là tôi chẳng mấy khi tính tổng hay làm gì đó gắn với công thức hay điều kiện bằng màu sắc => không thực tế !
Trở lại với trường hợp yêu cầu trong Topic này, với chừng ấy điều kiện và gói gọn như vậy nên góp ý với tác giả cái sẵn có dùng được cho nó đơn giản !

Những cái này, Bác phải chỉ cho Em mới đúng chứ, nhỉ !
 
Lần chỉnh sửa cuối:
Upvote 0
Xin SPAM một chút!

Những cái này, Bác phải chỉ cho Em mới đúng chứ, nhỉ !

Nhưng chưa có nhu cầu nạp Ex 2K7 nên hỏi để biết thêm thôi.

Vả lại mình cũng đề fòng trưồng hợp tác giả tô màu các ô bằng CF mà chưa tỏ hết í, thì uổng công một số người!

Đúng là tính hay đếm tổng các ô tô màu là thực tế, chỉ khi các ô đó được tô bỡi CF mà thôi; Nhưng cái này hơi cay & chua lắm thay!

Dù gì cũng rất chân thành cảm ơn bạn nhiều!
 
Lần chỉnh sửa cuối:
Upvote 0
Nhờ các bác giúp đỡ ! Em muốn tính theo màu nền nhưng tính theo sumproduct tức là nếu là màu đó thì lấy màu đó nhân với cột ngay bên cạnh chứ không chỉ cộng tổng thì cái code bên trên của các bác, ví dụ code này phải sửa như thế nào ạ

Public Function tongmau(vung, mau As Range) As Long
Dim i, kq As Long
i = mau.Interior.ColorIndex
For Each mau In vung
If mau.Interior.ColorIndex = i Then kq = kq + mau
Next
tongmau = kq
End Function

Em mù vbs mà đang cần quá mong các bác giúp đỡ (Em gửi ví dụ chỉ là ví dụ, vì thực tế dòng em có hàng trăm chi tiết, cột em có theo ngày và kéo dài rất nhiều ngày, và mỗi chi tiết lại phải làm khoảng 10 việc khác nhau (tô màu) và tất cả được ghi nhận hàng ngày bằng tay theo đúng thực tế diễn ra chứ không có quy luật nào cả nên em không tạo cột nhân tích sẵn trước khi cộng màu được ạ)

Tks các bác
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0

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

Back
Top Bottom