我需要一个公式,该公式可以计算一个单元格中字符的总数,但也可以计算出现该字符数的次数。
例如在A列中:
10个单元格的范围,其中包含201、202、203、204、205、1001、1002、1003、1004、1005。
有5个单元格的3个字符和5个单元格的4个字符。
此公式将是什么?不知道在每个单元格中要计算多少个字符方面我需要提高多少,但我希望以后在公式中可以轻松进行编辑。
答案 0 :(得分:2)
答案 1 :(得分:1)
答案 2 :(得分:0)
关于字符数,请在=len(cell)
中使用另一列。
然后创建一个动态表,在其中将len列放在表的左侧,再将len列放在中间。确保表格中显示“ len的数量”或与此类似的内容。
答案 3 :(得分:0)
Option Explicit
Sub CellCharactersCount()
Const cVntWsName As Variant = "Sheet1" ' Worksheet Name or Index
Const cStrFirstSource As String = "A1" ' First Cell of Source Column
Const cStrFirstTarget As String = "B1" ' First Cell of Target Column
Dim vntSource As Variant ' Source Array
Dim vntLngTarget As Variant ' Target Array (As Long)
Dim lng1 As Long, lng2 As Long ' Array Row Counters
Dim lngMax As Long ' Maximum Characters
' Paste range into Source Array
With ThisWorkbook.Worksheets(cVntWsName)
vntSource = .Range(.Range(cStrFirstSource), .Cells(Rows.Count, _
.Range(cStrFirstSource).Column).End(xlUp))
End With
' Count the maximum number of chars.
For lng1 = 1 To UBound(vntSource)
If Len(vntSource(lng1, 1)) > lngMax Then
lngMax = Len(vntSource(lng1, 1))
End If
Next
' Copy Len Data to Target Array.
ReDim vntLngTarget(1 To lngMax, 1 To 1) As Long
For lng1 = 1 To UBound(vntSource)
If Len(vntSource(lng1, 1)) <> 0 Then
For lng2 = 1 To lngMax
If Len(vntSource(lng1, 1)) = lng2 Then
vntLngTarget(lng2, 1) = vntLngTarget(lng2, 1) + 1
End If
Next
End If
Next
With ThisWorkbook.Worksheets(cVntWsName)
' Clear contents of Target Column Range.
.Range(cStrFirstTarget) _
.Resize(Rows.Count - .Range(cStrFirstTarget).Row + 1).ClearContents
' Paste Target Array into Target Range.
.Range(cStrFirstTarget).Resize(lngMax) = vntLngTarget
End With
End Sub