Nickolay.info. Обучение. Excel: Подсчёт количества уникальных значений в массиве

Типовой приём решения подобных задач - тот же, что при отборе ячеек функцией СУММ, ПРОИЗВЕД, МАКС или любой другой, то есть, объединение функции расчёта и функции ЕСЛИ. Достаточно уметь вкладывать условные функции в функции подсчёта, например:

=СУММ(ЕСЛИ(A1:A10>0; A1:A10;0))

- сумма положительных значений из диапазона A1:A10

=ПРОИЗВЕД(ЕСЛИ(A1:A10>0;ЕСЛИ(A1:A10<=1;A1:A10;1);1))

- произведение значений из диапазона A1:A10, попадающих в интервал ]0,1]

Формула, где в условии участвует диапазон, завершается нажатием комбинации клавиш Ctrl+Shift+Enter.

Теперь наш подсчёт количества различных значений в диапазоне-столбце.

=СУММ(ЕСЛИ(ЧАСТОТА(Диапазон;Диапазон)>0;1;0))

- если данные - только числовые.

=СУММ(ЕСЛИ(ЧАСТОТА(ПОИСКПОЗ(Диапазон;Диапазон;0),ПОИСКПОЗ(Диапазон;Диапазон;0))>0;1;0))

- работает и со строками.

Третий аргумент функции ПОИСКПОЗ (равный здесь 0) на самом деле обозначает тип поиска:

Как для всех формул массива, после ввода нажимается Ctrl+Shift+Enter.

Пустых ячеек эти формулы "не понимают", лист должен быть заполнен без пропусков. Регистры при сопоставлении текстов не различаются. Если не настроены российские региональные стандарты, разделитель аргументов ; в формулах, возможно, придётся заменить на запятые.

При указании диапазонов в виде целых столбцов (A:A) функция ПОИСКПОЗ, скорее всего, откажется работать, а вот при указании ограниченных дипазонов всё будет нормально. Скажем, этой формулой я пользовался сегодня:

=СУММ(ЕСЛИ(ЧАСТОТА(ПОИСКПОЗ(Лист1!$A$2:$A$6585;Лист1!$A$2:$A$6585;1);
ПОИСКПОЗ(Лист1!$A$2:$A$6585;Лист1!$A$2:$A$6585;1))>0;1;0))

Обратите внимание, что для нормальной работы ПОИСКПОЗ лист сортируется по столбцу, содержащему указанный диапазон (меню Данные, Сортировка).

Рейтинг@Mail.ru

вверх гостевая; E-mail