Формула Excel: подсчет уникальных дат -

Содержание

Общая формула

=COUNT(UNIQUE(date))

Резюме

Для подсчета уникальных дат (в примере - «торговых дней») вы можете использовать функцию UNIQUE с функцией COUNT или формулу, основанную на функции COUNTIF. В показанном примере формула в ячейке G8:

=COUNT(UNIQUE(date))

где дата - именованный диапазон B5: B16.

Объяснение

Традиционно подсчет уникальных элементов с помощью формулы Excel был сложной задачей, потому что не было специальной уникальной функции. Однако это изменилось, когда в Excel 365 были добавлены динамические массивы вместе с несколькими новыми функциями, включая UNIQUE.

Примечание. В более старых версиях Excel вы можете подсчитывать уникальные элементы с помощью функции СЧЁТЕСЛИ или ЧАСТОТА, как описано ниже.

В показанном примере каждая строка в таблице представляет торговлю акциями. На несколько дат совершается более одной сделки. Цель - подсчитать торговые дни - количество уникальных дат, в которые произошла какая-то сделка. Формула в ячейке G8:

=COUNT(UNIQUE(date))

Работая изнутри, функция UNIQUE используется для извлечения списка уникальных дат из именованного диапазона "date":

UNIQUE(date) // extract unique values

Результатом является массив из 5 чисел, подобный этому:

(44105;44109;44111;44113;44116)

Каждое число представляет дату в Excel без форматирования даты. Пять дат: 1 октября 20, 5 октября 20, 7 октября 20, 9 октября 20 и 12 октября 20.

Этот массив доставляется непосредственно в функцию COUNT:

=COUNT((44105;44109;44111;44113;44116)) // returns 5

который возвращает количество числовых значений 5 в качестве окончательного результата.

Примечание. Функция COUNT подсчитывает числовые значения, а функция COUNTA подсчитывает как числовые, так и текстовые значения. В зависимости от ситуации может иметь смысл использовать один или другой. В этом случае, поскольку даты числовые, мы используем COUNT.

С СЧЁТЕСЛИ

В более старой версии Excel вы можете использовать функцию СЧЁТЕСЛИ для подсчета уникальных дат с помощью такой формулы:

=SUMPRODUCT(1/COUNTIF(date,date))

Работая изнутри, COUNTIF возвращает массив со счетчиком для каждой даты в списке:

COUNTIF(date,date) // returns (2;2;3;3;3;2;2;2;2;3;3;3)

На данный момент у нас есть:

=SUMPRODUCT(1/(2;2;3;3;3;2;2;2;2;3;3;3))

После деления 1 на этот массив у нас есть массив дробных значений:

(0.5;0.5;0.333333333333333;0.333333333333333;0.333333333333333;0.5;0.5;0.5;0.5;0.333333333333333;0.333333333333333;0.333333333333333)

Этот массив доставляется непосредственно в функцию СУММПРОИЗВ. СУММПРОИЗВ суммирует элементы в массиве и возвращает итоговое значение 5.

С ЧАСТОТОЙ

Если вы работаете с большим набором данных, у вас могут возникнуть проблемы с производительностью при использовании приведенной выше формулы СЧЁТЕСЛИ. В этом случае вы можете переключиться на формулу массива на основе функции ЧАСТОТА:

(=SUM(--(FREQUENCY(date,date)>0)))

Примечание. Это формула массива, которую необходимо вводить с помощью Ctrl + Shift + Enter, кроме Excel 365.

Эта формула будет вычислять быстрее, чем версия СЧЁТЕСЛИ выше, но она будет работать только с числовыми значениями. Подробнее читайте в этой статье.

Интересные статьи...