Pers.narod.ru. Обучение. 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))
Обратите внимание, что для нормальной работы ПОИСКПОЗ лист сортируется по столбцу, содержащему указанный диапазон (меню Данные, Сортировка).
гостевая; E-mail |