NHG
Thành viên hoạt động
- Tham gia
- 15/1/07
- Bài viết
- 148
- Được thích
- 126
[/CODE]
Đôi khi trong công việc, các bạn cần tính tổng theo mầu của ô, hoặc mầu của Font chữ, trong bài viết này mình xin chia sẻ với các bạn mấy hàm tự tạo để tính tổng theo mầu, đếm theo mầu. Trong đó:
SumColor (Vùng tính tổng, ô điều kiện) : Hàm tính tổng theo mầu của ô
SumFontColor (Vùng tính tổng, ô điều kiện) : Hàm tính tổng theo mầu của Font chữ
CountColor (Vùng dữ liệu, ô điều kiện) : Hàm đếm theo mầu của ô điều kiện
CountFontColor (Vùng dữ liệu, ô điều kiện) : Hàm đếm theo mầu của Font chữ
Chi tiết cách dùng ở trong File đính kèm, nếu bạn nào muốn dùng dạng Add-ins thì tìm Add-ins MyVTV có tích hợp sẵn các hàm này nhé
SumColor (Vùng tính tổng, ô điều kiện) : Hàm tính tổng theo mầu của ô
SumFontColor (Vùng tính tổng, ô điều kiện) : Hàm tính tổng theo mầu của Font chữ
CountColor (Vùng dữ liệu, ô điều kiện) : Hàm đếm theo mầu của ô điều kiện
CountFontColor (Vùng dữ liệu, ô điều kiện) : Hàm đếm theo mầu của Font chữ
Chi tiết cách dùng ở trong File đính kèm, nếu bạn nào muốn dùng dạng Add-ins thì tìm Add-ins MyVTV có tích hợp sẵn các hàm này nhé
Mã:
Function ColorCell(xlRange As Range)
ColorCell = xlRange.Cells(1, 1).Interior.Color
End Function
Function ColorFont(xlRange As Range)
ColorFont = xlRange.Cells(1, 1).Font.Color
End Function
Function CountColor_VungDL_oDieuKien(rData As Range, cellRefColor As Range) As Long
Dim indRefColor As Long
Dim cellCurrent As Range
Dim cntRes As Long
Application.Volatile
cntRes = 0
indRefColor = cellRefColor.Cells(1, 1).Interior.Color
For Each cellCurrent In rData
If indRefColor = cellCurrent.Interior.Color Then
cntRes = cntRes + 1
End If
Next cellCurrent
CountColor_VungDL_oDieuKien = cntRes
End Function
Function SumColor_VungTinhTong_oDieuKien(rData As Range, cellRefColor As Range)
Dim indRefColor As Long
Dim cellCurrent As Range
Dim sumRes
Application.Volatile
sumRes = 0
indRefColor = cellRefColor.Cells(1, 1).Interior.Color
For Each cellCurrent In rData
If indRefColor = cellCurrent.Interior.Color Then
sumRes = WorksheetFunction.Sum(cellCurrent, sumRes)
End If
Next cellCurrent
SumColor_VungTinhTong_oDieuKien = sumRes
End Function
Function CountFontColor_VungDL_oDieuKien(rData As Range, cellRefColor As Range) As Long
Dim indRefColor As Long
Dim cellCurrent As Range
Dim cntRes As Long
Application.Volatile
cntRes = 0
indRefColor = cellRefColor.Cells(1, 1).Font.Color
For Each cellCurrent In rData
If indRefColor = cellCurrent.Font.Color Then
cntRes = cntRes + 1
End If
Next cellCurrent
CountFontColor_VungDL_oDieuKien = cntRes
End Function
Function SumFontColor_VungTinhTong_oDieuKien(rData As Range, cellRefColor As Range)
Dim indRefColor As Long
Dim cellCurrent As Range
Dim sumRes
Application.Volatile
sumRes = 0
indRefColor = cellRefColor.Cells(1, 1).Font.Color
For Each cellCurrent In rData
If indRefColor = cellCurrent.Font.Color Then
sumRes = WorksheetFunction.Sum(cellCurrent, sumRes)
End If
Next cellCurrent
SumFontColor_VungTinhTong_oDieuKien = sumRes
End Function