Menu

Как посчитать уникальные значения в Excel (эксель)

=СЧЁТЗ(УНИК(A2:A9)) считает, сколько разных значений в A2:A9. Для старых версий Excel есть =СУММПРОИЗВ(1/СЧЁТЕСЛИ(A2:A9;A2:A9)). Значения, которые встречаются один раз, подсчёт по условию и без пустых ячеек.

Каждая таблица на этой странице живая: измените число или формулу, и она пересчитается.

=СЧЁТЗ(УНИК(A2:A9)) считает, сколько разных значений в A2:A9. УНИК (по-английски UNIQUE) возвращает каждое значение один раз, а СЧЁТЗ (COUNTA) считает этот список. Нужен Excel 2021 или Microsoft 365; старые версии разобраны ниже. В таблицах на этой странице формулы записаны по-английски, но их можно вводить и по-русски, с точкой с запятой.

Разные клиенты
D2
ABCD
1CustomerUnique listCount
2AnaAna5
3BenBen
4AnaCara
5CaraDan
6BenEva
7Dan
8Ana
9Eva
Нажмите на ячейку, чтобы увидеть её формулу. Измените число или формулу, и таблица пересчитается.В русском Excel: =СЧЁТЗ(УНИК(A2:A9))

Восемь заказов пришли от пяти клиентов. C2 выводит список имён через УНИК, чтобы было видно, что считается, а D2 считает его, не выводя список на лист. Замените A9 на Ana, и количество упадёт до 4; введите новое имя, и оно вырастет.

УНИК не учитывает регистр, поэтому Ana и ana считаются одним клиентом.

Уникальные значения в старых версиях Excel

В Excel 2019 и более ранних нет УНИК. Классическая формула такая:

=SUMPRODUCT(1/COUNTIF(A2:A9,A2:A9))

В русском Excel: =СУММПРОИЗВ(1/СЧЁТЕСЛИ(A2:A9;A2:A9)). СЧЁТЕСЛИ, у которой критерием служит весь диапазон, возвращает для каждой строки, сколько раз встречается значение этой строки. Имя, которое встречается 3 раза, получает 3 в каждой своей строке, поэтому 1/3 прибавляется три раза, и имя в сумме даёт ровно 1. Столбец B показывает количество для каждой строки, а столбец C дробь.

Как работает 1/СЧЁТЕСЛИ
E2
ABCDE
1CustomerTimes1/TimesCount
2Ana30.335
3Ben20.505.00
4Ana30.33
5Cara11.00
6Ben20.50
7Dan11.00
8Ana30.33
9Eva11.00
Нажмите на ячейку, чтобы увидеть её формулу. Измените число или формулу, и таблица пересчитается.В русском Excel: =СУММПРОИЗВ(1/СЧЁТЕСЛИ(A2:A9;A2:A9))

Три строки Ana прибавляют по 0,33, две строки Ben по 0,50, а три имени, которые встречаются один раз, по 1: всего 5, как и СУММ вспомогательного столбца. На десятках тысяч строк эта формула медленная, потому что СЧЁТЕСЛИ просматривает весь диапазон один раз на каждую строку; у УНИК такой платы нет.

Различные и уникальные: значения, которые встречаются один раз

Словом «уникальные» называют два разных подсчёта. Подсчёт выше считает различные значения: каждое имя один раз. Другой считает значения, которые встречаются ровно один раз, например клиентов, сделавших только один заказ. УНИК делает это, если её третий аргумент, exactly_once, равен ИСТИНА.

Различные и ровно один раз
D3
ABCD
1CustomerCountResult
2AnaDistinct5
3BenExactly once3
4AnaExactly once, older Excel3
5Cara
6Ben
7Dan
8Ana
9Eva
Нажмите на ячейку, чтобы увидеть её формулу. Измените число или формулу, и таблица пересчитается.В русском Excel: =СЧЁТЗ(УНИК(A2:A9;;ИСТИНА))

Различных клиентов пять, но только трое из них, Cara, Dan и Eva, сделали один заказ. Вариант для старого Excel считает строки, где СЧЁТЕСЛИ равна ровно 1. Если все значения повторяются, УНИК с exactly_once возвращает #ВЫЧИСЛ! (по-английски #CALC!, так ошибки показывают таблицы на этой странице), и СЧЁТЗ считает эту ошибку как 1; вариант с СУММПРОИЗВ даёт 0.

Уникальные значения по условию

Чтобы посчитать разных клиентов в одном регионе, сначала отфильтруйте строки, а потом считайте оставшееся. ФИЛЬТР оставляет строки North, а УНИК убирает повторы.

Разные клиенты по регионам
E2
ABCDE
1CustomerRegionRegionCustomers
2AnaNorthNorth3
3BenSouthSouth3
4AnaNorthNorth, older Excel3
5CaraNorth
6BenNorth
7DanSouth
8AnaNorth
9EvaSouth
Нажмите на ячейку, чтобы увидеть её формулу. Измените число или формулу, и таблица пересчитается.В русском Excel: =СЧЁТЗ(УНИК(ФИЛЬТР(A2:A9;B2:B9=D2)))

В North пять заказов от трёх клиентов: Ana, Cara и Ben. E3 так же считает South. E4 это вариант для Excel 2019 и более ранних: СЧЁТЕСЛИМН считает каждую пару из клиента и региона, а условие оставляет только дроби North.

Если ни одна строка не подходит, ФИЛЬТР возвращает #ВЫЧИСЛ!, и СЧЁТЗ считает эту ошибку одним значением: введите West в D2, и E2 покажет 1, а не 0. Обёртка в ЕСЛИОШИБКА не помогает, потому что СЧЁТЗ ошибку не возвращает. Вместо этого считайте строки результата, а ЧСТРОК ошибку передаёт дальше: =ЕСЛИОШИБКА(ЧСТРОК(УНИК(ФИЛЬТР(A2:A9;B2:B9="West")));0) возвращает 0.

Уникальные значения без пустых ячеек

Пустая ячейка в диапазоне становится ещё одним «значением». УНИК возвращает её как 0, и СЧЁТЗ считает этот 0, поэтому для Ana, пустой ячейки, Ben, Ana, пустой ячейки, Cara и Ben Excel даёт:

=COUNTA(UNIQUE(A2:A8))    4   three names plus the 0 for the empty cells

В старой формуле пустая строка заставляет СЧЁТЕСЛИ вернуть 0, и 1/0 даёт #ДЕЛ/0! (#DIV/0!). Сначала уберите пустые ячейки:

Диапазон с пропусками
D2
ABCD
1CustomerFormulaCount
2AnaSkip blanks3
3Older Excel3
4Ben
5Ana
6
7Cara
8Ben
Нажмите на ячейку, чтобы увидеть её формулу. Измените число или формулу, и таблица пересчитается.В русском Excel: =СЧЁТЗ(УНИК(ФИЛЬТР(A2:A8;A2:A8<>"")))

Обе формулы считают трёх клиентов. ФИЛЬТР с A2:A8<>"" убирает пустые ячейки до того, как их увидит УНИК. В старой формуле A2:A8&"" превращает каждую пустую ячейку в пустую строку, поэтому СЧЁТЕСЛИ никогда не возвращает 0, а (A2:A8<>"") даёт этим строкам вес 0.

Практика: посчитать товары

Ваша очередь: сколько товаров?
E2
ABCDE
1OrderProductCountResult
21001AppleProducts
31002Pear
41003Apple
51004Plum
61005Pear
71006Apple
81007Plum
91008Fig
Нажмите на ячейку, чтобы увидеть её формулу. Измените число или формулу, и таблица пересчитается.

Ваша очередь: Посчитайте, сколько разных товаров встречается в B2:B9. Напишите формулу в E2.

Какая формула подходит вашему Excel

Что считатьExcel 365 / 2021Excel 2019 и более ранние
Различные значения=СЧЁТЗ(УНИК(A2:A9))=СУММПРОИЗВ(1/СЧЁТЕСЛИ(A2:A9;A2:A9))
Значения, которые встречаются один раз=СЧЁТЗ(УНИК(A2:A9;;ИСТИНА))=СУММПРОИЗВ(--(СЧЁТЕСЛИ(A2:A9;A2:A9)=1))
Различные, по условию=СЧЁТЗ(УНИК(ФИЛЬТР(A2:A9;B2:B9="North")))=СУММПРОИЗВ((B2:B9="North")/СЧЁТЕСЛИМН(A2:A9;A2:A9;B2:B9;B2:B9))
Различные, без пустых ячеек=СЧЁТЗ(УНИК(ФИЛЬТР(A2:A9;A2:A9<>"")))=СУММПРОИЗВ((A2:A9<>"")/СЧЁТЕСЛИ(A2:A9;A2:A9&""))

В сводной таблице то же самое без формулы делает итог «Число различных элементов», но только если сводная таблица создана с флажком «Добавить эти данные в модель данных». Чтобы удалить повторы, а не считать их, см. удаление дубликатов.

Часто задаваемые вопросы

Как посчитать уникальные значения в Excel?

В Excel 365 или 2021 используйте =СЧЁТЗ(УНИК(A2:A9)): УНИК выводит каждое значение один раз, а СЧЁТЗ считает этот список. В более старых версиях используйте =СУММПРОИЗВ(1/СЧЁТЕСЛИ(A2:A9;A2:A9)).

Как посчитать значения, которые встречаются только один раз?

Задайте третий аргумент УНИК, exactly_once, равным ИСТИНА: =СЧЁТЗ(УНИК(A2:A9;;ИСТИНА)). Для Ana, Ana, Ben получится 1, потому что один раз встречается только Ben. В Excel 2019 и более ранних используйте =СУММПРОИЗВ(--(СЧЁТЕСЛИ(A2:A9;A2:A9)=1)).

Как посчитать уникальные значения по условию?

Сначала отфильтруйте, потом считайте: =СЧЁТЗ(УНИК(ФИЛЬТР(A2:A9;B2:B9="North"))) считает разных клиентов в строках North. Если ни одна строка не подходит, СЧЁТЗ считает ошибку #ВЫЧИСЛ! от ФИЛЬТР как 1, поэтому, если такое возможно, используйте =ЕСЛИОШИБКА(ЧСТРОК(УНИК(ФИЛЬТР(A2:A9;B2:B9="North")));0).

Как посчитать уникальные значения без пустых ячеек?

Уберите пустые ячейки до УНИК: =СЧЁТЗ(УНИК(ФИЛЬТР(A2:A9;A2:A9<>""))). В старом Excel их пропускает =СУММПРОИЗВ((A2:A9<>"")/СЧЁТЕСЛИ(A2:A9;A2:A9&"")).

Иллюстрация языков программирования Coddy

Учитесь программировать с Coddy

НАЧАТЬ