bluecat
Thành viên mới
- Tham gia
- 7/10/06
- Bài viết
- 37
- Được thích
- 1
Khi gặp số 1 thìđếm,sau đó lấy giá trị lớn nhất
tương tự cho các số khác 0
VD : Trong khoảng màu xanh Max của số 1 = 3
Xin chỉ giúp công thức hoặc cách viết hàm để làm chuyện này
Function MaxCount(MyCell As Range, DK As Long) As Long
Application.Volatile (False)
If MyCell.Columns.Count <> 1 Then Exit Function
Dim i As Long, MC As Long
For i = 1 To MyCell.Rows.Count
If MyCell(i) = DK Then
MC = MC + 1
Else
If MC > MaxCount Then MaxCount = MC
MC = 0
End If
If MC > MaxCount Then MaxCount = MC
Next
End Function
OKBap ơi:
- Tác giả nói "tương tự cho các số khác 0". Theo mình hiểu thì đừng đếm những số bằng 0, nhưng cái hàm của OKBap đếm tuốt...
2. Hình như chưa đúng yêu cầu. Cũng theo mình hiểu (xem ví dụ của bạn ấy ở cột B), thì bạn ấy muốn đếm theo nhóm những số giống nhau đứng liền nhau, nếu như bị ngắt bởi một số khác thì đếm lại từ đầu.
Cụ thể là A7:A9: 3 số 1, kết quả là: Ở B7=0, B8=0, và B9=3 (tức là 3 số 1)
Rồi từ A10:A14 là những số 0, cho nên A15:A16 phải đếm lại, và kết quả phải là: B15=0, B16=2
Nhưng nói chung lại thì thật sự mình không hiểu cái hàm của OKBap đếm cái gì.
Ở D1=19, là nó đếm số 1 trong dãy A1:A369?
Nếu dùng COUNTIF để đếm có bao nhiêu số 1 trong dãy A1:A369, có đến 120 số 1 lận. Vậy 19 là cái gì vậy?
Cho mình hỏi câu lệnh đó có ý nghĩa là gì vậy?Mr_Okebab đã viết:PHP:Application.Volatile (False)
Cho mình hỏi câu lệnh đó có ý nghĩa là gì vậy?
PHP:Application.Volatile (False)
Marks a user-defined function as volatile. A volatile function must be recalculated whenever calculation occurs in any cells on the worksheet. A nonvolatile function is recalculated only when the input variables change. This method has no effect if it's not inside a user-defined function used to calculate a worksheet cell.
expression.Volatile(Volatile)
expression Required. An expression that returns an Application object.
Volatile Optional Variant. True to mark the function as volatile. False to mark the function as nonvolatile. The default value is True
Example
This example marks the user-defined function "My_Func" as volatile. The function will be recalculated whenever calculation occurs in any cells on the worksheet on which this function appears.
Function My_Func()
Application.Volatile
'
' Remainder of the function
">
End Function
Function MaxCount(MyCell As Range, DK As Long) As Long
Application.Volatile (False)
If MyCell.Columns.Count <> 1 Then Exit Function
Dim i As Long, MC As Long
For i = 1 To MyCell.Rows.Count
If MyCell(i) = DK Then
MC = MC + 1
Else
If MC > MaxCount Then MaxCount = MC
MC = 0
End If
Next
If MC > MaxCount Then MaxCount = MC
End Function