Home |
Search |
Today's Posts |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hello,
I suggest to take my UDF: Function CountStrings(r As Range) As Variant 'Returns variant with info about strings in range r: 'First row contains count of different strings and count of empty cells 'Subsequent rows show all occurring strings (sorted) and their frequency. 'PB V0.90 Dim k As Long Dim lidx As Long 'index of next empty field in string table Dim l As Long Dim rc As Range ReDim v(0 To r.Rows.Count * r.Columns.Count, 0 To 1) As Variant '0: string; 1: frequency lidx = 1 For Each rc In r If IsEmpty(rc) Then v(0, 1) = v(0, 1) + 1 Else 'Search for current cell value in string table v(lidx, 0) = rc 'initialize search so that value 'will be found l = 1 Do While v(l, 0) < v(lidx, 0) l = l + 1 Loop If l = lidx Then lidx = lidx + 1 'Wasn't in. Added. Else If v(l, 0) < rc Then For k = lidx - 1 To l Step -1 v(k + 1, 0) = v(k, 0) v(k + 1, 1) = v(k, 1) Next k v(l, 0) = rc v(l, 1) = 0 lidx = lidx + 1 End If End If v(l, 1) = v(l, 1) + 1 'increase frequency End If Next rc v(lidx, 0) = "" v(0, 0) = lidx - 1 CountStrings = v End Function It has been designed to count strings but it will do dates, too. Just select a two-column range in your spreadsheet and array-enter =CountStrings(A1:A999) (terminate with CTRL+SHIFT+ENTER) Change A1:A999 to your desired input area. HTH, Bernd |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
sequence numbers | Excel Discussion (Misc queries) | |||
sequence of numbers | Excel Worksheet Functions | |||
sequence numbers | Excel Discussion (Misc queries) | |||
sequence numbers | Excel Discussion (Misc queries) | |||
how do I sequence numbers | Excel Discussion (Misc queries) |