Всех приветствую на WiFiGid! В Excel нет отдельной быстрой функции, которая поможет сделать подсчет уникальных значений. Поэтому в этом уроке мы решили показать вам разные стратегии, которые помогут узнать их количество. Придется немного потрудиться, но по-другому никак.
Исходная таблица
Допустим у нас есть исходная таблица, в которой указано время дежурства авторов на нашем портале WiFiGid.
Как видно, здесь всего 4 автора, поэтому будем пытаться как-то получить эту цифру
Решение 1 – Удаление дубликатов
Предлагаю начать с чего-то простого – попробуем удалить неуникальные значения и посчитаем их.
Видел, что подобное удаление дубликатов достигается при помощи создания сводной таблицы (по умолчанию она как раз фильтрует дублирующиеся данные, а потом просто считаем в отдельной ячейке по формуле число оставшихся) или с помощью расширенного фильтра уникальных значений с дальнейшим подсчетом оставшихся строк. Но по факту описанный выше способ проще запоминается для новичков и применим гораздо чаще, а мы стараемся описывать только рабочие решения
Удаление дубликатов в Excel
Решение 2 – Формула (Excel 2021 и новее)
Способ выше хорош, если нам нужно просто и один раз для себя посчитать это значение. Но если нужно посчитать количество уникальных значений в Excel на лету при обновлении данных, тут поможет только формула. Раньше нужно было строить сложную формулу (смотрите раздел ниже), но на новом Office 2021 появилась возможность все упростить. Новые варианты формул:
=СЧЁТЗ((УНИК(A2:A13)))
=COUNTA((UNIQUE(A2:A13)))
Решение 3 – Формула (все версии)
А раньше мы должны были использовать вот такую непростую формулу для подсчета уникальных значений (привожу примеры для русскоязычного и англоязычного варианта формулы):
=СУММ(ЕСЛИ(ЕПУСТО(A2:A13);0;1/СЧЁТЕСЛИ(A2:A13;A2:A13)))
=SUM(IF(ISEMPTY(A2:A13);0;1/COUNTIF(A2:A13;A2:A13)))
Вместо A2:A13 подставляем свои диапазоны ячеек.
Краткий разбор формулы:
Возможно, кому-то покажется сложным, но очень рабочий вариант. И вникнуть можно меньше чем за 5 минут.
Решение 4 – Макросы
Если вы умеете использовать макросы Excel, сразу привожу готовый код под наш пример. Просто создаем новый макрос и применяем его на листе:
Function UniqueCount(dataRange As Range)
Dim coll As New Collection
Dim cell As Range
On Error Resume Next
For Each cell In dataRange
If Not IsEmpty(cell) Then coll.Add cell.Value, CStr(cell.Value)
Next cell
DistinctCount = coll.Count
End Function
А уже на ячейку мы ставим формулу в привычном формате =UniqueCount(A2:A13).