ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Number of different items in an entire column without knowing if some of the cells are blank (https://www.excelbanter.com/excel-programming/325708-number-different-items-entire-column-without-knowing-if-some-cells-blank.html)

[email protected]

Number of different items in an entire column without knowing if some of the cells are blank
 
Hi all:

i posted similar question before but i would like to expand on it.

i have marks(J1,J2,J3,.....) that might repeat in column A, but i would
not know the extent of how many cells in the entire column (65536)cells
will have marks in them. on some projects i might have every cell of
that column has a mark in it,and on some other projects i might have
marks in 10000 cells of that column. it depends on the project.

is there a macro that will tell me how many different marks in that
column, becuse that number will determine the number of my loops.


the way the marks are in column A is

J1
J1
J1
..
..
..
J2
J2
J2
J2
..
..
J3
J3
..


galimi[_2_]

Number of different items in an entire column without knowing if s
 
Sam,

You can count the total number of rows being used with the UsedRange method.
Something like the following will tell you the max number of rows being used

lngMaxRows = activesheet.usedrange.rows.count

http://HelpExcel.com

" wrote:

Hi all:

i posted similar question before but i would like to expand on it.

i have marks(J1,J2,J3,.....) that might repeat in column A, but i would
not know the extent of how many cells in the entire column (65536)cells
will have marks in them. on some projects i might have every cell of
that column has a mark in it,and on some other projects i might have
marks in 10000 cells of that column. it depends on the project.

is there a macro that will tell me how many different marks in that
column, becuse that number will determine the number of my loops.


the way the marks are in column A is

J1
J1
J1
..
..
..
J2
J2
J2
J2
..
..
J3
J3
..



[email protected]

Number of different items in an entire column without knowing if s
 
Thanks!

i have been able to determine the number of rows in column A that has
marks like J1,J2,.... with this code line:

LastRow = shtQDS.Range("A3").End(xlDown).Row

but i dont know how to write the syntax to tell me how many different
marks between cell A3, columnA and row"LasrRow".

I would appreciate any help with this!


Tom Ogilvy

Number of different items in an entire column without knowing if s
 
that would indicate no blank cells, so

Sub AA()
Dim lastrow As Long
Dim numUnique as Long
lastrow = Range("A3").End(xlDown).Row
numUnique = Evaluate("Sumproduct(1/countif(A3:A" & lastrow & _
",A3:A" & lastrow & "))")
MsgBox "Number of uniques: " & numUnique
End Sub

Regards,
Tom Ogilvy



wrote in message
oups.com...
Thanks!

i have been able to determine the number of rows in column A that has
marks like J1,J2,.... with this code line:

LastRow = shtQDS.Range("A3").End(xlDown).Row

but i dont know how to write the syntax to tell me how many different
marks between cell A3, columnA and row"LasrRow".

I would appreciate any help with this!




[email protected]

Number of different items in an entire column without knowing if s
 
Thanks Tom! I will try it


[email protected]

Number of different items in an entire column without knowing if s
 
Tom:

when i tried it , it gave a run-time error 13, type mismatch after
trying to move on from the line where "numUnique" is and the next line.

what does seem to be the error? Thanks!


Tom Ogilvy

Number of different items in an entire column without knowing if s
 
the code was copied directly from a module where it works very well.

Do this, got to a blank sheet on that page on put in this formula

=SUMPRODUCT(1/COUNTIF(A3:A11,A3:A11))

change the 11 to reflect the last row of your data.

That is what the code is doing, but without entering it into a worksheet.

What version of Excel? I will test it in Excel 97 tonight and see if it has
a problem with over 10000 cells in a range.

If so, I will come back with a dick and jane solution if someone has't
already done it. You said you data is sorted on column A, correct?


--
Regards,
Tom Ogilvy



wrote in message
ups.com...
Tom:

when i tried it , it gave a run-time error 13, type mismatch after
trying to move on from the line where "numUnique" is and the next line.

what does seem to be the error? Thanks!




Tom Ogilvy

Number of different items in an entire column without knowing if s
 
It worked for 43,000 cells in xl97 but it took about 3 minutes.

this will be much faster for a large number or rows:
Sub AB()
Dim nodupes As New Collection
Dim lastrow As Long
Dim numUnique As Long
Dim v As Variant, i as Long
lastrow = Range("A3").End(xlDown).Row
Set rng = Range("A3:A" & lastrow)
v = rng
On Error Resume Next
For i = LBound(v) To UBound(v)
nodupes.Add v(i, 1), CStr(v(i, 1))
Next
On Error GoTo 0
numUnique = nodupes.Count
msgbox "Number of Uniques: " & numUnique
End Sub

--
Regards,
Tom Ogilvy


"Tom Ogilvy" wrote in message
...
the code was copied directly from a module where it works very well.

Do this, got to a blank sheet on that page on put in this formula

=SUMPRODUCT(1/COUNTIF(A3:A11,A3:A11))

change the 11 to reflect the last row of your data.

That is what the code is doing, but without entering it into a worksheet.

What version of Excel? I will test it in Excel 97 tonight and see if it

has
a problem with over 10000 cells in a range.

If so, I will come back with a dick and jane solution if someone has't
already done it. You said you data is sorted on column A, correct?


--
Regards,
Tom Ogilvy



wrote in message
ups.com...
Tom:

when i tried it , it gave a run-time error 13, type mismatch after
trying to move on from the line where "numUnique" is and the next line.

what does seem to be the error? Thanks!






[email protected]

Number of different items in an entire column without knowing if s
 
Tom:

I appreciate your help very much. it is working great!


[email protected]

Number of different items in an entire column without knowing if s
 
Tom:

one more question, and apprecaite an answer, what is the following
syntax in your last code you sent me do?

nodupes.Add v(i, 1), CStr(v(i, 1))


Tom Ogilvy

Number of different items in an entire column without knowing if s
 
it assigns the value in each cell to the collection and indexes it on the
value. If indexes are used (as I have) a collection doesn't allow duplicate
index values - so it raises and error rather than assign the value. The on
Error ignores the error and continues on. The end result is that the
collection nodupes holds a list of the unique entries in your range.

so you could also look at no dupes and see what the unique entries are as
shown in the code at the bottom:

Sub AB()
Dim nodupes As New Collection
Dim lastrow As Long
Dim numUnique As Long
Dim v As Variant, i As Long
Dim sStr As String
Dim itm As Variant
lastrow = Range("A3").End(xlDown).Row
Set rng = Range("A3:A" & lastrow)
v = rng
On Error Resume Next
For i = LBound(v) To UBound(v)
nodupes.Add v(i, 1), CStr(v(i, 1))
Next
On Error GoTo 0
numUnique = nodupes.Count
MsgBox "Number of Uniques: " & numUnique
sStr = ""
For Each itm In nodupes
sStr = sStr & itm & vbNewLine
Next
MsgBox sStr


End Sub

--
Regards,
Tom Ogilvy


wrote in message
oups.com...
Tom:

one more question, and apprecaite an answer, what is the following
syntax in your last code you sent me do?

nodupes.Add v(i, 1), CStr(v(i, 1))





All times are GMT +1. The time now is 12:13 PM.

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