- Tham gia
- 22/7/14
- Bài viết
- 355
- Được thích
- 31
Nếu trong vùng dữ liệu mà có ô bị lỗi thì tính len = bao nhiêu?Chào anh chị. Hiện e chỉ biết hàm Len chỉ đếm được 1 ô. Muốn đếm được nhiều ô, em đang đếm từng ô sau đó cộng lại. . Có cách nào khắc phục không mọi người. Mong mọi người chỉ giáo. em xin cảm ơn các anh chị thầy
View attachment 234082
Em cảm ơn thầy. nhờ thầy sữa giúp Funtion sao nó không chạy=Sum(Len($A$1:$B$3))
Hàm mảng (Ctrl+Shift+Enter)
Function demtong(cell As Range)
demtong = FormulaArray(Application.Sum(Application.Len(cell)))
End Function
Bỏ qua lổi Thầy. nếu ô nào lổi thì = 0Nếu trong vùng dữ liệu mà có ô bị lỗi thì tính len = bao nhiêu?
Thử công thức sau, chơi Enter cho đỡ ì ạch.Chào anh chị. Hiện e chỉ biết hàm Len chỉ đếm được 1 ô. Muốn đếm được nhiều ô, em đang đếm từng ô sau đó cộng lại. . Có cách nào khắc phục không mọi người. Mong mọi người chỉ giáo. em xin cảm ơn các anh chị thầy
View attachment 234082
Sai cả thúng luôn bạn àEm cảm ơn thầy. nhờ thầy sữa giúp Funtion sao nó không chạy
Mã:Function demtong(cell As Range) demtong = FormulaArray(Application.Sum(Application.Len(cell))) End Function
Bài đã được tự động gộp:
Bỏ qua lổi Thầy. nếu ô nào lổi thì = 0
View attachment 234086
cảm ơn thầy. Nhưng em muốn thêm 1 điều kiện nữa . nếu ô nào trong đó Lổi Name, Div...thì ô đó = 0. Cũng giống như Sum, ô nào lổi sẽ bỏ quaThử công thức sau, chơi Enter cho đỡ ì ạch.
=SUMPRODUCT(LEN(A1:B3))
1/3 thì 0.33 em dùng hàm len thì nó ra 17, Thì =17 , Có điều cái bảng em áp dụng toàn là Chữ ( text) không à.Sai cả thúng luôn bạn à
Tôi chưa làm vội vì còn phải hỏi lại bạn lần nữa: Giả sửa dữ liệu giống như trên nhưng cell A1 có công thức =1/3 thì kết quả bạn cần sẽ là bao nhiêu?
Vậy thì vầy đi:cảm ơn thầy. Nhưng em muốn thêm 1 điều kiện nữa . nếu ô nào trong đó Lổi Name, Div...thì ô đó = 0. Cũng giống như Sum, ô nào lổi sẽ bỏ qua
Bài đã được tự động gộp:
1/3 thì 0.33 em dùng hàm len thì nó ra 17, Thì =17 , Có điều cái bảng em áp dụng toàn là Chữ ( text) không à.
Function SumLen(ParamArray Arrays()) As Long
Dim aTmp, item
Dim idx As Long, lSum As Long
'On Error Resume Next
For idx = LBound(Arrays) To UBound(Arrays)
aTmp = Arrays(idx)
If Not IsArray(aTmp) Then aTmp = Array(aTmp)
For Each item In aTmp
If TypeName(item) <> "Error" Then
lSum = lSum + Len(CStr(item))
End If
Next
Next
SumLen = lSum
End Function
Vậy thì vầy đi:
Hàm này đếm được mảng, vùng dữ liệu và đếm được nhiều vùng cùng lúc nha bạnMã:Function SumLen(ParamArray Arrays()) As Long Dim aTmp, item Dim idx As Long, lSum As Long 'On Error Resume Next For idx = LBound(Arrays) To UBound(Arrays) aTmp = Arrays(idx) If Not IsArray(aTmp) Then aTmp = Array(aTmp) For Each item In aTmp If TypeName(item) <> "Error" Then lSum = lSum + Len(CStr(item)) End If Next Next SumLen = lSum End Function
Thử xem còn lỗi nào không?
Sub Test()
Dim LR As Long
MsgBox Range("A1:B" & Cells(Rows.Count, 1).End(3).Row).SpecialCells(xlCellTypeConstants, 7).Count
Range("D1").Value = Range("A1:B" & Cells(Rows.Count, 1).End(3).Row).SpecialCells(xlCellTypeConstants, 7).Count
End Sub
cái này là đếm tổng ký tự của từng ô sau đó Sum lại. chứ không phải count Anh nhé@congnguyen88 :
Bạn thử dùng:
PHP:Sub Test() Dim LR As Long MsgBox Range("A1:B" & Cells(Rows.Count, 1).End(3).Row).SpecialCells(xlCellTypeConstants, 7).Count Range("D1").Value = Range("A1:B" & Cells(Rows.Count, 1).End(3).Row).SpecialCells(xlCellTypeConstants, 7).Count End Sub