Итак, мы подсчитали уникальные значения с помощью функций СЧЁТЕСЛИ и СУММПРОИЗВ. Хотя этот метод прост, но при больших объемах данных он работает медленно. В этой статье мы узнаем, как подсчитать уникальные текстовые значения в Excel с помощью более быстрой формулы

0041

Общая формула для подсчета уникальных текстовых значений в Excel

=SUM(--(FREQUENCY(MATCH(range,range,0),ROW(first_cell_in_range)+1)>0))

Диапазон: диапазон, из которого вы хотите получить уникальные значения.

firstCell в диапазоне: это ссылка на первую ячейку в диапазоне.

Если диапазон A2: A10, то это A2.

Давайте посмотрим на примере, чтобы прояснить ситуацию.

Пример: подсчет уникальных текстовых значений Excel

На листе Excel у меня есть эти данные имен в диапазоне A2: A10. Я хочу получить количество уникальных имен из заданного диапазона.

0042

Примените приведенную выше общую формулу для подсчета уникального текста в диапазоне Excel A2: A10. Я назвал A2: A10 в качестве имен.

=SUM(--(FREQUENCY(MATCH(names,names,0),ROW(A2)+1)>0))

Это возвращает общее количество уникальных текстов в диапазоне A2: A10.

0043

Как это работает?

Давайте решим это изнутри.

link: / lookup-formulas-excel-match-function [MATCH] (names, names, 0) *:

эта часть вернет первое местоположение каждого значения в диапазоне A2: A10 (имена) согласно свойству MATCH.

\ {1; 1; 3; 3; 5; 5; 7; 7; 7}.

Следующая ссылка: / lookup-and-reference-excel-row-function [ROW] (A2: A19): возвращает номер строки каждой ячейки в диапазоне A2: A10.

\ {2; 3; 4; 5; 6; 7; 8; 9; 10} link: / lookup-and-reference-excel-row-function [ROW] (names) -`link: / lookup-and -reference-excel-row-function [ROW] `(A2):

Теперь мы вычитаем номер первой строки из каждого номера строки. Это возвращает массив серийных номеров, начиная с 0.

\ {0; 1; 2; 3; 4; 5; 6; 7; 8} Поскольку мы хотим, чтобы серийный номер начинался с 1, мы добавляем к нему 1.

link: / lookup-and-reference-excel-row-function [ROW] (names) -`link: / lookup-and-reference-excel-row-function [ROW] `(A2) +1.

Это дает нам массив серийных номеров, начиная с 1.

\ {1; 2; 3; 4; 5; 6; 7; 8; 9} Это поможет нам получить уникальное количество при условии.

Теперь у нас есть:

ссылка: / статистические-формулы-excel-частота-функция-2 [ЧАСТОТА] (* \ {1; 1; 3; 3; 5; 5; 7; 7; 7}, \ {1; 2; 3; 4; 5; 6; 7; 8; 9}).

Это возвращает частоту каждого числа в данном массиве. \ {2; 0; 2; 0; 2; 0; 3; 0; 0; 0} Здесь каждое положительное число указывает на появление уникального значения при соблюдении критериев. Нам нужно подсчитать значения больше 0 в этом массиве.

Для этого проверяем на> 0. Это вернет ИСТИНА и ЛОЖЬ. Мы конвертируем истину в ложь, используя — (двойной бинарный оператор).

link: / math-and-trig-excel-sum-function [SUM] (- (\ {2; 0; 2; 0; 2; 0; 3; 0; 0; 0})> 0) это переводится как ссылка: / math-and-trig-excel-sum-function [SUM] (\ {1; 0; 1; 0; 1; 0; 1; 0; 0; 0})

И, наконец, мы получаем уникальное количество имен в диапазоне критериев как 4.

Как подсчитать уникальный текст в диапазоне с пустыми ячейками?

Проблема с приведенной выше формулой заключается в том, что когда у вас есть пустая ячейка в диапазоне, появляется ошибка # N / A. Чтобы решить эту проблему, нам нужно поставить условие для проверки пустых ячеек.

=SUM(--(FREQUENCY(IF(names <> “”,MATCH(names,names,0)),ROW(A2)+1)>0))

Это даст правильный результат. Здесь мы инкапсулировали ПОИСКПОЗ с функцией ЕСЛИ. Вы можете прочитать полное объяснение в статье Как подсчитать уникальные значения в Excel с несколькими критериями?

Так что да, ребята, вот как вы можете получить уникальное количество текста в Excel. Дайте мне знать, если у вас есть какие-либо сомнения относительно этой или любой другой темы, посвященной расширению Excel / vba. Раздел комментариев открыт для вас.

Скачать файл: