Identify and count unique values
Thanks Tom
Will that avoid an entry in the collection list being duplicated? As we loop
through each line of the file a sinlge date is repeated for every employee
name it finds.
If it does it shows that I've still got a lot to learn and, though my method
works, your suggestion is clearly better and more concise.
Thanks and regards
Michael Bond
"Tom Ogilvy" wrote:
Think you missed how to use the collection to do this:
Dim x As New Collection
Dim y As Integer
y = 1
Do
If Cells(y, 4).Value = "Monday" Then
On Error Resume Next
x.Add Item:=Cells(y, 5).Value, cells(y,5).Text
On Error goto 0
End If
y = y + 1
Loop Until y = 1000
z = x.Count
--
Regards,
Tom Ogilvy
"mabond" wrote:
Nigel
Thanks, it was a push in the right direction I needed. Because of the layout
of the exported file from the third party app the Filters was not an easy
option....but the collection object came up with the result. I'm already
looping through each line in the file so I included the following to identify
unique dates
Dim x As New Collection
Dim y As Integer
Dim MyObject
y = 1
Dim dateExists As Boolean
dateExists = False
x.Add Item:=Cells(4, 5).Value ' the first date is always in this cell
Do
If Cells(y, 4).Value = "Monday" Then
dateExists = False
For Each MyObject In x
If MyObject = Cells(y, 5).Value Then
dateExists = True
End If
Next MyObject
If dateExists = False Then
x.Add Item:=Cells(y, 5).Value
End If
End If
y = y + 1
Loop Until y = 1000
z = x.Count
Many thanks again
Regards
Michael Bond
"Nigel" wrote:
Have you looked at using advanced filters? This can be configured to
produce a list of unique values that may provide the list you require.
If not then you might consider using a Collection Object to build a unique
list
--
Cheers
Nigel
"mabond" wrote in message
...
Hi all
I'm hoping someone out there can suggest a way forward with a spreadsheet
application Ive recently developed.
The spreadsheet contains data from a third party application which in
effect
produces a "csv" file with the planned shifts for a group of employees. My
application is designed to analyse the hours being worked in various
categories from the data contained in the spreadsheet.
The user has the option from the third party application to select more
than
one employee and more than one week. If that option is selected the output
is
sorted by employee then by date. So employee 1 has a number of lines under
week 1 followed by a number of lines under week 2 followed by employee 2
with
week 1 and employee 2 with week 2 etc.
Part of my analysis of the data requires that I know the number of weeks
in
the report. Presently that is done by way of a text box on the user form
asking the user to select 1 or 2 or 3 etc.
I'd prefer if the number of weeks could be identified programatically so
my
question is :
Is there a way we can count the number of unique values from all of the
values in a column .....
Emp1, 22/05/06
Emp1, 29/05/06
Emp2, 22/05/06
Emp2, 29/05/06
would give the result 2
Note: the dates are not in consecutive rows. There is data in rows between
the firstd ate for Emp1 and second date for Emp2 etc., however the only
date
format which exists in the column is that against the employee name. None
of
the other rows between employee names contains a date format
I hope I've explained my problem and add that I'm happy with a suggestion
for the principle of how to do it as I'm confident in my own coding to be
able to move forward if I can just have an idea as to how I could appraoch
it.
Any help or suggestions would be greatly appreciated.
Regards
Michael
in employee order
|