View Single Post
  #20   Report Post  
Posted to microsoft.public.excel.worksheet.functions
Alan Beban[_2_] Alan Beban[_2_] is offline
external usenet poster
 
Posts: 783
Default REPORTING unique values

ryguy7272 wrote:
There are MANY ways to do this!

Count Uniques:
=SUMPRODUCT((A1:A1001<"")/(COUNTIF(A1:A1001,A1:A1001&"")))
=SUMPRODUCT((A1:A1001<"")/(COUNTIF(A1:A1001,A1:A1001)+(A1:A1001="")))
=SUMPRODUCT((A1:A1001<"")/COUNTIF(A2:A1001,A2:A1001&"")*(A1:A105<""))
=SUMPRODUCT(--(A1:A1001<""),1/COUNTIF(A1:A1001,A1:A1001&""))
=SUM(IF(FREQUENCY(IF(LEN(A1:A1001)0,MATCH(A1:A100 1,A1:A1001,0),""),IF(LEN(A1:A1001)0,MATCH(A1:A100 1,A2:A1001,0),""))0,1))
=SUM(--(FREQUENCY(IF(A1:A1001<"",MATCH(A1:A1001,A1:A1001 ,0)),ROW(INDIRECT("1:"&ROWS(A1:A1001))))0))
=SUM(IF(A1:A1001<"",1/COUNTIF(A1:A1001,A1:A1001)))
=SUM(IF(FREQUENCY(IF(A1:A1001<"",MATCH("~"&A1:A10 01,A1:A1001&"",0)),ROW(A1:A1001)-ROW(A1)+1),1))
=COUNT(1/FREQUENCY(A1:A1001,A1:A1001))

List Uniques:
Cell C1 will have the result of "Count Uniques" from above:
=IF(ROWS(C$1:C1)<=$C$1,INDEX($A$1:$A$1000,SMALL(IF (FREQUENCY(IF($A$1:$A$1000<"",MATCH("~"&$A$1:$A$1 000,$A$1:$A$1000&"",0)),ROW($A$1:$A$1000)-ROW($A$1)+1),ROW($A$1:$A$1000)-ROW($A$1)+1),ROWS(C$1:C1))),"")
(this does the same thing as TM's Function).


Regards,
Ryan---


And if the functions in the freely downloadable file at
http://home.pacbell.net/beban are available to your workbook

=ArrayUniques(A1:A1001), array entered, will list 'em vertically,

and

=ArrayUniques(A1:A1001,,"1horiz"), array entered, will list 'em
horizontally.

Or, if array entering is inconvenient, you can use

=INDEX(ArrayUniques($A$31:$A$1001),ROW(A1),1) filled down, or

=INDEX(ArrayUniques($A$31:$A$1001,,"1horiz"),1,COL UMN(A1)), filled across.

And

=ArrayCount(ArrayUniques(A1:A1001)) will count 'em.

Alan Beban