» Retrieving Unique Values From A List
CATEGORY - Excel Formula and Function
VERSION - All Microsoft Excel Versions
Column A contains a list of values, each of which may appear more than once.
We want to create a list in column B in which each value from column A may only appear once.
Solution:
Use the INDEX, MATCH, and COUNTIF functions as shown in the following Array formula:
{=INDEX($A$2:$A$8,MATCH(0,COUNTIF($B$2:B2,$A$2:$A$8),0))}
Note:
The first cell in the unique list (column B) must remain empty.
The formula should be entered in the second cell and copied down until the #N/A error is returned.
List_________Distinct List
Red
Blue_________Red
Green________Blue
Yellow_______Green
Green________Yellow
Blue_________#N/A
Blue

Book Store:
Recommended Books:
- Microsoft Windows XP Inside Out
- Absolute Beginner's Guide to Microsoft Excel 2002
- Rich Dad's Guide to Investing: What the Rich Invest in, That the Poor and the Middle Class Do Not!
- East of Eden (Oprah's Book Club)
- Keys to Reading an Annual Report (Barron's Business Keys)
- Investing in Real Estate, Fourth Edition
macroll
man, i can't get this to work???
Reply: macroll
Alan
Hi macroll,
[QUOTE=macroll]man, i can't get this to work???[/QUOTE]I haven't tried to decipher the tip above, but this should do what you want:
If you have a list in A1:A13 as follows:
Alan
Bob
Charlie
Alan
Alan
Alan
Charlie
Dave
Charlie
Bob
Edgar
Bob
Bob
In B1 enter either "Alan" or link to A1
In B2 enter this as an array formula:
{=OFFSET($A$1,MATCH(0,MMULT(--TRANSPOSE(TRANSPOSE($A$1:$A$13)=B$1:B1),ROW(INDIRECT("1:"&ROW()-1))/ROW(INDIRECT("1:"&ROW()-1))),0)-1,0,1,1)}
To enter the array formula, type it in without the curly brackets, and then enter using Shift-Ctrl-Enter and excel will put the braces on the formula.
Copy that formula down to B2:B13.
It returns 'Not Applicable' in B6:B13 since there are no more unique entries. If you want to show something else (or a blank cell), just wrap it in a check using the ISNA function. That would be as follows (in B2):
{=IF(ISNA(OFFSET($A$1,MATCH(0,MMULT(--TRANSPOSE(TRANSPOSE($A$1:$A$13)=B$1:B1),ROW(INDIRECT("1:"&ROW()-1))/ROW(INDIRECT("1:"&ROW()-1))),0)-1,0,1,1)),"",OFFSET($A$1,MATCH(0,MMULT(--TRANSPOSE(TRANSPOSE($A$1:$A$13)=B$1:B1),ROW(INDIRECT("1:"&ROW()-1))/ROW(INDIRECT("1:"&ROW()-1))),0)-1,0,1,1))}
I prefer to return #NA myself and trap for that whereever I use the results - just a preference though.
HTH,
Alan.
Very Helpful Formulae
Sid
Good Stuff
Something missing
someone
In the initial formula there is something the author forgot to mention:
B3 Formula: {=INDEX($A$2:$A$8,MATCH(0,COUNTIF($B2:B2,$A$2:$A$8),0))}
B4 Formula: {=INDEX($A$2:$A$8,MATCH(0,COUNTIF($B2:B3,$A$2:$A$8),0))}
B5 Formula: {=INDEX($A$2:$A$8,MATCH(0,COUNTIF($B2:B4,$A$2:$A$8),0))}
And so on... (First array in COUNTIF should be all the cells above the current cell).
Also, to enter these formulas, you need to press CTRL+SHIFT+ENTER when you're done entering the formula. This will convert the formula into an array formula.
Hope it helps.
got some problem
siju
it is not work out
Reply: siju
Alan
Hi siju,
[QUOTE=siju]it is not work out[/QUOTE]In what way?
Alan.
Advanced Filter - unique?
littleIdiot
How is this different to doing the following?
Data > Filter > Advanced Filter > Unique records only
gjcase
This is different than using the advanced filter in that the filter list does not update if the list changes, whereas this does.
Reply: gjcase
Alan
Hi gjcase,
[QUOTE=gjcase]This is different than using the advanced filter in that the filter list does not update if the list changes, whereas this does.[/QUOTE]If you want an autofilter / advanced filter to automatically update you will need to use VBA.
Alan.
Re Alan
Donna
Alan formula worked good, but when I change the $A$13 to the $74 for the number in MY list, I get error. Don't know what I did wrong..
a thousand thankyous
min5h
I have been looking for the simple fix to this excel problem for ages, wondering about it for years. Up to now I have been going into MS access and running a count query on the table with all the extra entries. This suits me perfectly:
Advanced Filter - unique?
littleIdiot wrote on December 31, 1969 18:00 EST
How is this different to doing the following?
Data > Filter > Advanced Filter > Unique records only
Can't get the other formula's to work but thanks very much for the advanced filter tip.

