We can count unique text values in a range by using a combination of **FREQUENCY**, **MATCH**, **ROW **and **SUMPRODUCT** functions. We can also achieve the same result with the **COUNTIF** function. The steps below will walk through the process.

*Figure 1: Result of Count of Unique Text Values in a Range*

**General formula **

**=SUMPRODUCT(--(FREQUENCY(MATCH(txt,txt,0),ROW(txt)-ROW(txt.firstcell+1)>0))**

”txt” is the range containing the **text **or **names**

**Formula**

**=SUMPRODUCT(--(FREQUENCY(MATCH(A4:A13,A4:A13,0),ROW(A4:A13)-ROW(A4)+1)>0))**

**Setting up the Data **

We will set up the table as shown in figure 2 with hypothetical players who have scored some points. Now, we have players whose names have appeared more than once. Our intention is to count the number of unique names that appear.

- We will input the names in range
**A4:A13** - The points will be placed in
**Column B** - Cell E3 and Cell E4 will contain the results by applying the FREQUENCY and COUNTIF functions respectively

* Figure 2: Setting up the Data*

**Applying the Frequency Function**

- We will insert the formula below into Cell E3

**=SUMPRODUCT(--(FREQUENCY(MATCH(A4:A13,A4:A13,0),ROW(A4:A13)-ROW(A4)+1)>0))**

* Figure 3: How to Count Unique Text Values in a Range*

- We will press the
**enter key**

* Figure 4: Result of Unique Text Values in the Range*

**Applying the COUNTIF Function**

- We will insert the formula below into Cell E4

**=SUMPRODUCT(1/COUNTIF(A4:A13,A4:A13))**

* Figure 5: How to Count Unique Text Values in a Range with the COUNTIF function*

**We will press the enter key**

* Figure 6: Result of Count of Unique Text Values in a Range*

**Explanation**

`=SUMPRODUCT(--(FREQUENCY(MATCH(A4:A13,A4:A13,0),ROW(A4:A13)-ROW(A4)+1)>0))`

**MATCH Function**

This function gets the position of each name in the range. MATCH only returns the position of the first match in the range, as a result, any name that appears more than once will bear the same number so that the returned array of this example looks like this:

**{1;1;1;4;4;6;6;8;8;8}**

**ROW Function**

`ROW(A4:A13)-ROW(A4)+1`

The argument above is used to build a straight and sequential array. This is achieved by using the row number of each item in the range and the first item in the range. The returned array will look like this:

**{1;2;3;4;5;6;7;8;9;10}**

**FREQUENCY Function**

The FREQUENCY function does not work with non-numeric data; hence, the bulk of the formula will convert the data into numeric data that FREQUENCY works with.

The FREQUENCY function uses the array supplied by MATCH and that supplied by ROW.

The FREQUENCY function will return an array of values that shows the count for every value that is present in the array. FREQUENCY will return zero for any number that repeats itself in the array. The resultant array will look like this:

**{3;0;0;2;0;2;0;3;0;0;0}**

**SUMPRODUCT Function**

The returned array from FREQUENCY is evaluated by TRUE or FALSE to know if the numbers are greater than zero. Afterward, TRUE values are returned as 1 and FALSE as 0. The resultant array in SUMPRODUCT will look like this:

**{1;0;0;1;0;1;0;1;0;0;0}**

SUMPRODUCT then sums the values and the result is 4 as shown.

**Instant Connection to an Expert through our Excelchat Service**

Most of the time, the problem you will need to solve will be more complex than a simple application of a formula or function. If you want to save hours of research and frustration, try our live Excelchat service! Our Excel Experts are available 24/7 to answer any Excel question you may have. We guarantee a connection within 30 seconds and a customized solution within 20 minutes.

## Leave a Comment