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.
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
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.
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.
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.
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!!!!
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!!!!
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!!!!
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
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!!!!
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!!!!
Nhưng nếu màu được bôi bỡi CF thì khỏi đưa file lên vì cài E2007 dễ hơn nhiều lần viết hàm để tính nó! ( Hãy tham khảo bài 56 sắc cầu vòng trong excel)
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?)
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.
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?)
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.
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
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
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
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
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.
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
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 !
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 !
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ỉ !
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 ạ)