Формула на Excel: Брой уникални текстови стойности в диапазон -

Съдържание

Обща формула

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

Обобщение

За да преброите уникални текстови стойности в диапазон, можете да използвате формула, която използва няколко функции: FREQUENCY, MATCH, ROW и SUMPRODUCT. В показания пример формулата във F5 е:

=SUMPRODUCT(--(FREQUENCY(MATCH(B5:B14,B5:B14,0),ROW(B5:B14)-ROW(B5)+1)>0))

което връща 4, тъй като в B5 има 4 уникални имена: B14.

Забележка: Друг начин за преброяване на уникални стойности е използването на функцията COUNTIF. Това е много по-проста формула, но може да работи бавно при големи масиви от данни. С Excel 365 можете да използвате по-проста и по-бърза формула, базирана на УНИКАЛЕН.

Обяснение

Тази формула е по-сложна от подобна формула, която използва FREQUENCY за преброяване на уникални числови стойности, защото FREQUENCY не работи с нечислови стойности. В резултат на това голяма част от формулата просто трансформира нечисловите данни в числови данни, които FREQUENCY може да обработва.

Работейки отвътре навън, функцията MATCH се използва за получаване на позицията на всеки елемент, който се появява в данните:

MATCH(B5:B14,B5:B14,0)

Резултатът от MATCH е масив като този:

(1;1;1;4;4;6;6;6;9;9)

Тъй като MATCH винаги връща позицията на първото съвпадение, стойностите, които се появяват повече от веднъж в данните, връщат една и съща позиция. Например, тъй като „Джим“ се появява 3 пъти в списъка, той се показва в този масив 3 пъти като числото 1.

Този масив се подава в FREQUENCY като аргумент data_array . Аргументът bins_array се изгражда от тази част на формулата:

ROW(B5:B14)-ROW(B5)+1)

който изгражда последователен списък с числа за всяка стойност в данните:

(1;2;3;4;5;6;7;8;9;10)

В този момент FREQUENCY е конфигуриран по следния начин:

FREQUENCY((1;1;1;4;4;6;6;6;9;9),(1;2;3;4;5;6;7;8;9;10))

FREQUENCY връща масив от числа, които указват брой за всяко число в масива от данни, организиран от bin. Когато числото вече е преброено, FREQUENCY ще върне нула. Това е ключова характеристика в работата на тази формула. Резултатът от FREQUENCY е масив като този:

(3;0;0;2;0;3;0;0;2;0;0) // output from FREQUENCY

Забележка: FREQUENCY винаги връща масив с още един елемент от bins_array .

Вече можем да пренапишем формулата по следния начин:

=SUMPRODUCT(--((3;0;0;2;0;3;0;0;2;0;0)>0))

След това проверяваме за стойности, по-големи от нула (> 0), което преобразува числата в TRUE или FALSE, след което използваме двойно отрицателно (-), за да преобразуваме TRUE и FALSE стойности в 1s и 0s. Сега имаме:

=SUMPRODUCT((1;0;0;1;0;1;0;0;1;0;0))

И накрая, SUMPRODUCT просто събира числата и връща общата сума, която в този случай е 4.

Работа с празни клетки

Празните клетки в диапазона ще накарат формулата да върне грешка # N / A. За да обработвате празни клетки, можете да използвате по-сложна формула на масив, която използва функцията IF за филтриране на празни стойности:

(=SUM(IF(FREQUENCY(IF(data"", MATCH(data,data,0)),ROW(data)-ROW(data.firstcell)+1),1)))

Забележка: Добавянето на IF превръща това във формула на масив, която изисква control-shift-enter.

За повече информация вижте тази страница.

Други начини за преброяване на уникални стойности

Ако имате Excel 365, можете да използвате функцията UNIQUE, за да преброите уникални стойности с много по-проста формула.

Осевата таблица също е отличен начин за преброяване на уникални стойности.

Добри връзки

Книгата на Майк Гирвин Control-Shift-Enter

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