Често възниква необходимостта да се намери броят уникални стойности в дадена колона или ред.
Например долната таблица съдържа измислен списък на клиенти, на които измислена фирма е издала фактури с някакви (измислени) стойности.
Искаме да разберем колко на брой са въпросните клиенти. Той очевидно не е 14, колкото е последният номер на фактура, защото има повтарящи се клиенти.
Един начин да се отговори на този въпрос е да се направи списък, в който всеки клиент се повтаря само веднъж. За целта се използва Advanced filter.
В появилото се меню избираме:
Copy to another location (за да не запишем нещо върху оригиналната таблица)
Unique records only (за да получим списък с уникални стойности)
А в Copy to посочваме клетката, в която искаме да започва уникалният списък. В случая е избрана клетка G2.
Накрая кликаме ОК и получаваме списък с уникални стойности, в който всеки клиент се среща само веднъж. Остава само да преброим клиентите с помощта на функцията COUNTA.
Този метод работи без грешка, но ако трябва да го направим с една формула?
РЕШЕНИЕ: SUMPRODUCT(1/COUNTIF(B3:B16;B3:B16))
Резултат: 8
Как работи:
1. COUNTIF(B3:B16;B3:B16)
Търси в областта B3:B16 и брои колко пъти се среща всяка от стойностите там.
В резултат създава област (array), която за Ексел изглежда така: {4;2;2;4;2;4;1;2;4;2;1;1;1;2}
2. 1/COUNTIF(B3:B16;B3:B16)
Тук всяко едно число от горната област се използва като делител на 1
Резултатът е нова област от вида {0.25;0.5;0.5;0.25;0.5;0.25;1;0.5;0.25;0.5;1;1;1;0.5}
3. SUMPRODUCT
Тази функция събира всички стойности от областта
Или 0.25+0.5+0.5+0.25+0.5+0.25+1+0.5+0.25+0.5+1+1+1+0.5 = 8
Повече подробности за използваните функции: