ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   COUNTING 3 DIFFERENT TYPES OF DATA FROM A RANGE (https://www.excelbanter.com/excel-programming/354176-counting-3-different-types-data-range.html)

[email protected]

COUNTING 3 DIFFERENT TYPES OF DATA FROM A RANGE
 
I have a bit of a tricky one. I have a range of data that i am using
to produce reports. One of these reports relates to column m. This
range has various dates in each cell. These dates are in the past and
future. What the reports needs to do is identify the first 3 dates in
the range that are over todays date and report how many times these
dates appear in the range, for instance

the range may include

feb 12
feb 20
mar 01
mar 01
april 01
april 01
april 10
may 05
may 05

the results would be mar01 = 2 april 01 = 2 april 10 =1

the reports ignores may 05 as its the fourth furthest date in the
future

hope someone can help as this has me stumpt

regards

John


Tom Ogilvy

COUNTING 3 DIFFERENT TYPES OF DATA FROM A RANGE
 
Sub EFG()
Dim oDict As Object
Set oDict = CreateObject("scripting.dictionary")
Dim rng As Range, cell As Range
Dim v As Variant, v1 As Variant
Dim i As Long, j As Long, temp As Variant
Dim msg As String
Set rng = Range(Cells(1, "M"), Cells(1, "M").End(xlDown))
On Error Resume Next
For Each cell In rng
If cell.Value Date Then
If Not oDict.Exists(Format(cell.Value, _
"mm/dd/yyyy")) Then
oDict.Add Format(cell.Value, "mm/dd/yyyy"), _
cell.Value
End If
End If
Next
v = oDict.Keys
v1 = oDict.Items
For i = LBound(v1) To UBound(v1) - 1
For j = i + 1 To UBound(v1)
If v1(i) v1(j) Then
temp = v1(i)
v1(i) = v1(j)
v1(j) = temp
End If
Next
Next
msg = ""
For i = LBound(v1) To LBound(v1) + 2
msg = msg & Format(v1(i), "mm/dd/yyyy") & " " & _
Application.CountIf(rng, v1(i)) & vbNewLine
Next
MsgBox msg

End Sub

--
Regards,
Tom Ogilvy
wrote in message
oups.com...
I have a bit of a tricky one. I have a range of data that i am using
to produce reports. One of these reports relates to column m. This
range has various dates in each cell. These dates are in the past and
future. What the reports needs to do is identify the first 3 dates in
the range that are over todays date and report how many times these
dates appear in the range, for instance

the range may include

feb 12
feb 20
mar 01
mar 01
april 01
april 01
april 10
may 05
may 05

the results would be mar01 = 2 april 01 = 2 april 10 =1

the reports ignores may 05 as its the fourth furthest date in the
future

hope someone can help as this has me stumpt

regards

John




[email protected]

COUNTING 3 DIFFERENT TYPES OF DATA FROM A RANGE
 
This is great, how can I adapt this so that the 3 dates are placed in
separate cells with the totals in the cells next to them.

thanks



All times are GMT +1. The time now is 05:45 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com