**Please Note: **
This article is written for users of the following Microsoft Excel versions: 2007, 2010, and 2013. If you are using an earlier version (Excel 2003 or earlier), *this tip may not work for you*. For a version of this tip written specifically for earlier versions of Excel, click here: Getting a Count of Unique Names.

John has a worksheet that he uses for registration of attendees at a conference. Column A has a list of each person attending, and column B has the company represented by each attendee. Each company can have multiple people attend. John can easily figure out how many individuals are coming to the conference; it is simply the number of rows in column A (minus any header rows). The more difficult task is to determine how many companies are going to be represented at the conference.

There are a couple of ways to determine the desired count. First, if there are no blank cells in column B, you can use an array formula (entered by **Ctrl+Shift+Enter**) such as the following:

=SUM(1/COUNTIF(B2:B50,B2:B50))

If there are blanks in the range (B2:B50 in this case), then the array formula will return a #DIV/0! error. If that case, the array formula needs to be changed to the following:

=SUM(IF(FREQUENCY(IF(LEN(B2:B50)>0,MATCH(B2:B50,B1:B50,0), ""),IF(LEN(B2:B50)>0,MATCH(B2:B50,B2:B50,0),""))>0,1))

If you prefer to not use an array formula, you can add regular formulas to column C to do the count. First, sort the table of data by the contents of column B. That way the data will be in company order. Then add a formula such as the following to cell C2 (assuming you have a header in row 1):

=IF(B2<>B3,1,0)

Copy the formula down through all the rest of the cells in column C, and then do a sum on the column. The sum represents the number of unique companies attending, since a 1 only appears in column C when the company name changes.

Of course, if you need to find the names of all the companies represented at the conference, you can use Excel's filtering capabilities. Follow these steps:

- Sort the data by column B, the company names.
- Select all the cells containing data (including the header cell) in column B.
- Display the Data tab of the ribbon.
- Click the Advanced tool, in the Sort & Filter group. Excel displays the Advanced Filter dialog box. (See Figure 1.)
- Make sure the Copy to Another Location radio button is selected.
- Make sure the Unique Records Only check box is selected.
- With the insertion point in the Copy To box, click on a blank cell, such as E1. (This is where the list of companies will be copied to.)
- Click OK. Excel copies the unique company names from the original list to column E.

** Figure 1.** The Advanced Filter dialog box.

You now can easily see how many companies are being represented, along with who those companies are.

*ExcelTips* is your source for cost-effective Microsoft Excel training.
This tip (7562) applies to Microsoft Excel 2007, 2010, and 2013. You can find a version of this tip for the older menu interface of Excel here: **Getting a Count of Unique Names**.

**Create Custom Apps with VBA!** Discover how to extend the capabilities of Office 2013 (Word, Excel, PowerPoint, Outlook, and Access) with VBA programming, using it for writing macros, automating Office applications, and creating custom applications. Check out *Mastering VBA for Office 2013* today!

Excel's AutoFilter tool is a great way to make a long list of items much more manageable. This tip explains how to set up an ...

Discover MoreWant a tool that will help you toggle AutoFilter on and off? Excel provides some tools you can use, but you need to be ...

Discover MoreExcel has some built-in limits on what you can do with the program. When you run into those limits, it can be frustrating to ...

Discover More**FREE SERVICE:** Get tips like this every week in *ExcelTips,* a free productivity newsletter. Enter your address and click "Subscribe."

2017-08-08 06:30:29

Harish Gupta

2017-08-07 12:33:56

Harish

If there are blank cells in a Column, As you said Formula "=SUM(1/COUNTIF(B2:B50,B2:B50))" would return an error.

I used IFERROR in this formula to ignore the error values and it worked for me.

The formula is "=SUM(IFERROR(1/COUNTIF(B2:B50,B2:B50),0))".

I hope this is right and a simple one.

2017-07-31 08:53:33

Pete Zicari

Taking the reciprocal of each element of that second array means that no matter how many instances of a unique element there are, the sum of the reciprocals will always be 1.

Adding the result gets you the count of the unique elements.

The missing information, for me, was understanding that countif(A1:A13,A1:A13) yields an array with the count of each of the uniques in each of the result rows. It follows that adding up the reciprocals would yield the true count, but frankly, that bit of mathematical cleverness would never have occurred to me. I guess that's why some of us launch rockets and some of us count beans. Thanks to both of you.

2017-07-29 04:00:29

Michael (Micky) Avidan

@Pete Zicari,

Can the following picture be considered as "Counter-intuitive than....." ?

(see Figure 1 below)

--------------------------

Michael (Micky) Avidan

“Microsoft® Answers" - Wiki author & Forums Moderator

“Microsoft®” Excel MVP – Excel (2009-2018)

ISRAEL

**Figure 1.**

2017-07-28 09:54:10

Pete Zicari

=SUM(1/COUNTIF(A5:A796,A5:A796))

... I would be surprised to see it. And yet it worked exactly as advertised for me. (Excel 2016 for Mac). Where would I go to figure this out?

-- and thanks.

2017-07-28 09:26:11

Lee Webber

2017-07-28 04:49:46

Eliz Ward

A quick pivot table would also do the trick nicely.

2013-07-28 14:01:48

giri

I have one doubt please help me

1 cell I put "sudheersudheer" like this I want only "ee" another cell

2013-07-24 12:00:05

steve

If you do follow the specifics of my example it would be ...

=COUNTIF($A$3:$A$5563,L25)

=COUNTIF($A$3:$A$5563,L26)<- not L25 as you copy down the column.

2013-07-24 11:53:18

Steve Nadel

I might be slow, but I couldn't get the advance filter to work no matter what. My guess is I'm not fully understanding what goes into the "list range" and what goes into the criteria range".

This is how I have handled this issue for years. Maybe it is so simple that I am missing things that people are trying to achieve.

If I have a large list of data and I want to count how many of each unique group are in a specific column are there, I run a simple =COUNTIF on a table that looks like a =VLOOKUP table.

I start a table listing all the unique criteria (i.e. companies) in the first column. I do this on the right side of the data (skipping a column for future sorting of course).

I build a formula in the cell to the right of the first example

=countif(entire data range as an absolute range, unique group to the immediate left side.) Then copy that formula down for the other unique group. i.e.

=COUNTIF($A$3:$A$5563,L25)

then

=COUNTIF($A$3:$A$5563,L25)

My apologies for anyone who is not familiar with VLOOKUP tables.

2013-07-23 08:25:04

kdp

2013-07-22 07:56:12

mjsamo

I would use a pivot table to both sort and count.

2013-07-21 23:31:33

Dnyandeo

Dear Allen Wyatt,

It is great. Very useful.

Thank you.

2013-07-21 23:23:26

James Cameron

If you run the formula across a small volume of data containing some duplications you will soon see how it works.

In essence,

(1) assume you create a list of names in which one particular name appears n times;

(2) on each occasion that the formula finds that name in the list the Countif portion of the formula will calcuate a value of n;

(3) The reciprocal portion of the formual will convert each value of n to 1/n;

(4) the Sum portion of the formual will add up each of these fractions, ie n*1/n, which results in a value of 1 for that name;

(5) As each specific name results in a Countif value of 1 (regardless of how often it is repeated), the final value of the Sum function gives the total number of specific names in the list.

2013-07-21 04:13:47

Gtegs comments are relevant and I have noticed that whilst solutions are offered up there is no detailed explanation as to why they work which is very frustrating as it does not engender greater understanding. A little more detail in terms of why thinks work would be a great help make this site more user-friendly.

Great site anyway.

2013-07-20 09:14:59

newdoverman

=IF(COUNTIF($B$2:B2,B2)=1,MAX($C$1:C1)+1,"")

2013-07-20 08:31:09

Gteg

I did like the array formulas... I'll have to look into those more... not sure I understand the 1/ portion of thus one.

Got a version of Excel that uses the
ribbon interface (Excel 2007 or later)?
**This site is for you!** If you
use an earlier version of Excel, visit
our *ExcelTips* site focusing on the menu interface.

**FREE SERVICE:** Get tips like this every week in *ExcelTips,* a free productivity newsletter. Enter your address and click "Subscribe."

Copyright © 2017 Sharon Parq Associates, Inc.

## Comments