![](https://cdn.wiki-base.com/1899231/excel_formula_count_unique_dates__2.png.webp)
Обща формула
=COUNT(UNIQUE(date))
Обобщение
За да преброите уникални дати ("търговски дни" в примера), можете да използвате функцията UNIQUE с функцията COUNT или формула, базирана на функцията COUNTIF. В показания пример формулата в клетка G8 е:
=COUNT(UNIQUE(date))
където датата е наименованият диапазон B5: B16.
Обяснение
Традиционно броенето на уникални елементи с формула на Excel е труден проблем, тъй като не е имало специална уникална функция. Това обаче се промени, когато към Excel 365 бяха добавени динамични масиви, заедно с няколко нови функции, включително UNIQUE.
Забележка: В по-старите версии на Excel можете да преброявате уникални елементи с функцията COUNTIF или функцията FREQUENCY, както е обяснено по-долу.
В показания пример всеки ред в таблицата представлява търговия с акции. Една няколко дати, извършва се повече от една сделка. Целта е да се броят търговските дни - броят на уникалните дати, на които е възникнала някаква търговия. Формулата в клетка G8 е:
=COUNT(UNIQUE(date))
Работейки отвътре навън, функцията UNIQUE се използва за извличане на списък с уникални дати от посочения диапазон "дата":
UNIQUE(date) // extract unique values
Резултатът е масив с 5 числа като този:
(44105;44109;44111;44113;44116)
Всяко число представлява дата в Excel, без форматиране на датата. 5-те дати са 1 октомври 20, 5 октомври 20, 7 октомври 20, 9 октомври 20 и 12 октомври 20.
Този масив се доставя директно на функцията COUNT:
=COUNT((44105;44109;44111;44113;44116)) // returns 5
което връща броя на числовите стойности, 5, като краен резултат.
Забележка: Функцията COUNT отчита числови стойности, докато функцията COUNTA ще отчита както цифрови, така и текстови стойности. В зависимост от ситуацията може да има смисъл да се използва едното или другото. В този случай, тъй като датите са числови, използваме COUNT.
С COUNTIF
В по-стара версия на Excel можете да използвате функцията COUNTIF, за да преброите уникални дати с формула като тази:
=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)
Този масив се доставя директно на функцията SUMPRODUCT. След това SUMPRODUCT сумира елементите в масива и връща общото, 5.
С ЧЕСТОТА
Ако работите с голям набор от данни, може да имате проблеми с производителността с формулата COUNTIF по-горе. В този случай можете да превключите към формула на масив, базирана на функцията FREQUENCY:
(=SUM(--(FREQUENCY(date,date)>0)))
Забележка: Това е формула на масив и трябва да се въвежда с control + shift + enter, освен в Excel 365.
Тази формула ще изчислява по-бързо от версията на COUNTIF по-горе, но ще работи само с числови стойности. За повече подробности вижте тази статия.