Вычислим в MS EXCEL количество значений в массиве, которые больше (или меньше) заданного числа.
Пусть исходный массив в диапазоне ячеек
А12:А62
содержит 51 значение (см.
файл примера
).
Найти сколько значений в массиве больше заданного числа можно используя формулу:
=СЧЁТЕСЛИ(A12:A62;»>»&B6)
В формуле предполагается, что заданное число, с которым производится сравнение (критерий), размещено в ячейке
В6
. Чтобы подсчитать какой процент значений больше критерия — имспользуйте формулу
=СЧЁТЕСЛИ(A12:A62;»>»&B6)/СЧЁТ(A12:A62)
Аналогичным образом можно подсчитать % от общего количества значений, которые:
-
больше или равны критерию:
=СЧЁТЕСЛИ(A12:A62;»>=»&B6)/
СЧЁТ(A12:A62)
меньше критерия:
=СЧЁТЕСЛИ(A12:A62;»<«&B6)/
СЧЁТ(A12:A62)
меньше или равны критерию:
=СЧЁТЕСЛИ(A12:A62;»<=»&B6)/
СЧЁТ(A12:A62)
Если список значений
отсортирован по возрастанию
, то для подсчета количества значений, которые больше критерия, можно использовать формулу
=РАНГ(ВПР(B6;A12:A62;1);A12:A62)-1
Skip to content
В статье предлагается несколько различных формул для выполнения поиска в двумерном массиве значений Excel. Просмотрите эти варианты и выберите наиболее для вас подходящий.
При поиске данных в электронных таблицах Excel чаще всего вы будете искать вертикально в столбцах или горизонтально в строках. Но иногда вам нужно просматривать сразу два условия – как строки, так и столбцы. Другими словами, вы стремитесь найти значение на пересечении определенной строки и столбца. Это называется матричным поиском (также известным как двумерный или поиск в диапазоне). Далее показано, как это можно сделать различными способами.
- Поиск в массиве при помощи ИНДЕКС ПОИСКПОЗ
- Формула ВПР и ПОИСКПОЗ для поиска в диапазоне
- Функция ПРОСМОТРX для поиска в строках и столбцах
- Формула СУММПРОИЗВ для поиска по строке и столбцу
- Поиск в матрице с именованными диапазонами
Поиск в массиве при помощи ИНДЕКС ПОИСКПОЗ
Самый популярный способ выполнить двусторонний поиск в Excel — использовать комбинацию ИНДЕКС с двумя ПОИСКПОЗ. Это разновидность классической формулы ПОИСКПОЗ ИНДЕКС , к которой вы добавляете еще одну функцию ПОИСКПОЗ, чтобы получить номера строк и столбцов:
ИНДЕКС( массив_данных ; ПОИСКПОЗ( значение_вертикальное ; диапазон_поиска_столбец ; 0), ПОИСКПОЗ( значение_горизонтальное ; диапазон_поиска_строка ; 0))
В этом способе, как и во всех остальных, мы используем поиск по двум условиям. Первое из них должно обнаружить совпадение в определенном столбце (в заголовках строк), а второе – в определенной строке (то есть, в заголовках столбцов). В результате мы имеем строку и столбец, которые соответствуют заданным условиям. А на пересечении их как раз и будут находиться искомые данные.
В качестве примера составим формулу для получения количества проданного товара за определённый период времени из таблицы, которую вы можете видеть ниже. Для начала определим все аргументы:
- Массив_данных — B2:E11 (ячейки данных, не включая заголовки строк и столбцов)
- Значение_вертикальное — H1 (целевой товар)
- Диапазон_поиска_столбец – A2:A11 (заголовки строк: названия напитков)
- Значение_горизонтальное — H2 (целевой период)
- Диапазон_поиска_строка — B1:E1 (заголовки столбцов: временные периоды)
Соедините все аргументы вместе, и вы получите следующую формулу для поиска числа в диапазоне:
=ИНДЕКС(B2:E11; ПОИСКПОЗ(H1;A2:A11;0); ПОИСКПОЗ(H2;B1:E1;0))
Как работает эта формула?
Хотя на первый взгляд это может показаться немного сложным, логика здесь простая. Функция ИНДЕКС извлекает значение из массива данных на основе номеров строк и столбцов, а две функции ПОИСКПОЗ предоставляют ей эти номера:
ИНДЕКС( B2:E11; номер_строки ; номер_столбца )
Здесь мы используем способность ПОИСКПОЗ возвращать относительную позицию значения в искомом массиве .
Итак, чтобы получить номер строки, мы ищем нужный нам товар (H1) в заголовках строк (A2:A11):
ПОИСКПОЗ(H1;A2:A11;0)
Чтобы получить номер столбца, мы ищем нужную нам неделю (H2) в заголовках столбцов (B1:E1):
ПОИСКПОЗ(H2;B1:E1;0)
В обоих случаях мы ищем точное совпадение, присваивая третьему аргументу значение 0.
В этом примере первое ПОИСКПОЗ возвращает 2, потому что нужный товар (Sprite) находится в ячейке A3, которая является второй по счёту в диапазоне A2:A11. Второй ПОИСКПОЗ возвращает 3, так как «Неделя 3» находится в ячейке D1, которая является третьей ячейкой в B1:E1.
С учетом вышеизложенного формула сводится к:
ИНДЕКС(B2:E11; 2 ; 3 )
Она возвращает число на пересечении второй строки и третьего столбца в матрице B2:E4, то есть в ячейке D3.
Думаю, вы понимаете, что аналогичным образом можно производить поиск в двумерном массиве Excel не только числа, но и текста. Тип данных здесь не имеет значения.
Формула ВПР и ПОИСКПОЗ для поиска в диапазоне
Другой способ выполнить матричный поиск в Excel — использовать комбинацию функций ВПР и ПОИСКПОЗ:
ВПР( значение_вертикальное ; массив_данных ; ПОИСКПОЗ( значение_горизонтальное , диапазон_поиска_строка , 0), ЛОЖЬ)
Для нашего образца таблицы формула принимает следующий вид:
=ВПР(H1; A2:E11; ПОИСКПОЗ(H2;A1:E1;0); ЛОЖЬ)
Где:
- Массив_данных — B2:E11 (ячейки данных, не включая заголовки строк и столбцов)
- Значение_вертикальное — H1 (целевой товар)
- Значение_горизонтальное — H2 (целевой период)
- Диапазон_поиска_строка — А1:E1 (заголовки столбцов: временные периоды)
Основой формулы является функция ВПР, настроенная на точное совпадение (последний аргумент имеет значение ЛОЖЬ). Она ищет заданное значение (H1) в первом столбце массива (A2:E11) и возвращает данные из другого столбца в той же строке. Чтобы определить, из какого столбца вернуть значение, вы используете функцию ПОИСКПОЗ, которая также настроена на точное совпадение (последний аргумент равен 0):
ПОИСКПОЗ(H2;A1:E1;0)
ПОИСКПОЗ ищет текст из H2 в заголовках столбцов (A1:E1) и указывает относительное положение найденной ячейки. В нашем случае нужная неделя (3-я) находится в D1, которая является четвертой по счету в массиве поиска. Итак, число 4 идет в аргумент номер_столбца функции ВПР:
=ВПР(H1; A2:E11; 4; ЛОЖЬ)
Далее ВПР находит точное совпадение H1 со значением в A3 и возвращает значение из 4-го столбца в той же строке, то есть из ячейки D3.
Важное замечание! Чтобы формула работала корректно, диапазон_поиска (A2:E11) функции ВПР и диапазон_поиска (A1:E1) функции ПОИСКПОЗ должны иметь одинаковое количество столбцов. Иначе число, переданное в номер_столбца, будет неправильным (не будет соответствовать положению столбца в массиве данных).
Функция ПРОСМОТРX для поиска в строках и столбцах
Недавно Microsoft представила еще одну функцию в Excel, которая призвана заменить все существующие функции поиска, такие как ВПР, ГПР и ИНДЕКС+ПОИСКПОЗ. Помимо прочего, ПРОСМОТРX может смотреть на пересечение определенной строки и столбца:
ПРОСМОТРX( значение_вертикальное ; диапазон_поиска_столбец ; ПРОСМОТРX( значение_горизонтальное ; диапазон_поиска_строка ; массив_данных ))
Для нашего примера набора данных формула выглядит следующим образом:
=ПРОСМОТРX(H1; A2:A11; ПРОСМОТРX(H2; B1:E1; B2:E11))
Примечание. В настоящее время ПРОСМОТРX — это функция, доступная только подписчикам Office 365 и более поздних версий.
В формуле используется функция ПРОСМОТРX для возврата всей строки или столбца. Внутренняя функция ищет целевой период времени в строке заголовка и возвращает все значения для этой недели (в данном примере для 3-й). Эти значения переходят в аргумент возвращаемый_массив внешнего ПРОСМОТРX:
=ПРОСМОТРX(H1; A2:A11; {544:87:488:102:87:433:126:132:111:565})
Внешняя функция ПРОСМОТРX ищет нужный товар в заголовках столбцов и извлекает значение из той же позиции из возвращаемого_массива.
Формула СУММПРОИЗВ для поиска по строке и столбцу
Функция СУММПРОИЗВ чрезвычайно универсальна — она может делать множество вещей, выходящих за рамки ее предназначения, особенно когда речь идет об оценке нескольких условий.
Чтобы найти значение на пересечении определенных строки и столбца, используйте эту общую формулу:
СУММПРОИЗВ ( диапазон_поиска_столбец = значение_вертикальное ) * ( диапазон_поиска_строка = значение_горизонтальное), массив_данных )
Чтобы выполнить поиск данных в массиве по строке и столбцу в нашем наборе данных, формула выглядит следующим образом:
=СУММПРОИЗВ((A2:A11=H1)*(B1:E1=H2); B2:E11)
Приведенный ниже вариант также будет работать:
=СУММПРОИЗВ((A2:A11=H1)*(B1:E1=H2)*B2:E11)
Теперь поясним подробнее. В начале мы сравниваем два значения поиска с заголовками строк и столбцов (целевой товар в H1 со всеми наименованиями в A2: A11 и целевой период времени в H2 со всеми неделями в B1: E1):
(A2:A11=H1)*(B1:E1=H2)
Это дает нам два массива значений ИСТИНА и ЛОЖЬ, где ИСТИНА означает совпадения:
{ЛОЖЬ:ИСТИНА:ЛОЖЬ:ЛОЖЬ:ЛОЖЬ:ЛОЖЬ:ЛОЖЬ:ЛОЖЬ:ЛОЖЬ:ЛОЖЬ}) * ({ЛОЖЬ;ЛОЖЬ;ИСТИНА;ЛОЖЬ}
Операция умножения преобразует значения ИСТИНА и ЛОЖЬ в 1 и 0 и создает матрицу из 4 столбцов и 10 строк (строки разделяются двоеточием, а каждый столбец данных — точкой с запятой):
{0;0;0;0:0;0;1;0:0;0;0;0:0;0;0;0:0;0;0;0:0;0;0;0:0;0;0;0:0;0;0;0:0;0;0;0:0;0;0;0}
Функция СУММПРОИЗВ умножает элементы приведенного выше массива на элементы B2:E4, находящихся в тех же позициях:
{0;0;0;0:0;0;1;0:0;0;0;0:0;0;0;0:0;0;0;0:0;0;0;0:0;0; 0;0:0;0;0;0:0;0;0;0:0;0;0;0} * {455;345;544;366:65;77;87;56:766; 655;488;865:129;66;102;56:89;141;87;89:566;511;433;522:154; 144;126; 162:158;165;132;155:112;143;111; 125:677;466;565;766})
И поскольку умножение на ноль дает в результате ноль, остается только элемент, соответствующий 1 в первом массиве:
=СУММПРОИЗВ({0;0;0;0:0;0;87;0:0;0;0;0:0;0;0;0:0;0;0;0:0; 0;0;0:0;0;0;0:0;0;0;0:0;0;0;0:0;0;0;0})
Наконец, СУММПРОИЗВ складывает все элементы результирующего массива и возвращает значение 87.
Примечание . Если в вашей таблице несколько заголовков строк и/или столбцов с одинаковыми именами, итоговый массив будет содержать более одного числа, отличного от нуля. И все эти числа будут суммированы. В результате вы получите сумму значений, удовлетворяющую обоим критериям. Это то, что отличает формулу СУММПРОИЗВ от ПОИСКПОЗ и ВПР, которые возвращают только первое найденное совпадение.
Поиск в матрице с именованными диапазонами
Еще один достаточно простой способ поиска в массиве в Excel — использование именованных диапазонов. Рассмотрим пошагово:
Шаг 1. Назовите столбцы и строки
Самый быстрый способ назвать каждую строку и каждый столбец в вашей таблице:
- Выделите всю таблицу (в нашем случае A1:E11).
- На вкладке « Формулы » в группе « Определенные имена » щелкните « Создать из выделенного » или нажмите комбинацию клавиш Ctrl + Shift + F3.
- В диалоговом окне « Создание имени из выделенного » выберите « в строке выше » и « в столбце слева» и нажмите «ОК».
Это автоматически создает имена на основе заголовков строк и столбцов. Однако есть пара предостережений:
- Если ваши заголовки столбцов и/или строк являются числами или содержат определенные символы, которые не разрешены в именах Excel, то имена для таких столбцов и строк не будут созданы. Чтобы просмотреть список созданных имен, откройте Диспетчер имен (
Ctrl + F3
). Если некоторые имена отсутствуют, определите их вручную. - Если некоторые из ваших заголовков строк или столбцов содержат пробелы, то они будут заменены символами подчеркивания, например, Неделя_1.
Шаг 2. Создание формулы поиска по матрице
Чтобы получить значение из матрицы на пересечении определенной строки и столбца, просто введите одну из следующих общих формул в пустую ячейку:
=имя_строки имя_столбца
Или наоборот:
=имя_столбца имя_строки
Например, чтобы получить продажу Sprite в 3-й неделе, используйте выражение:
=Sprite неделя_3
То есть, имена диапазонов здесь разделены пробелом, который в данном случае является оператором пересечения массивов.
Если кому-то нужны более подробные инструкции, опишем весь процесс пошагово:
- В ячейке, в которой вы хотите отобразить результат, введите знак равенства (=).
- Начните вводить имя целевой строки, Sprite. После того, как вы введете пару символов, Excel отобразит все существующие имена, соответствующие вашему вводу. Дважды щелкните нужное имя, чтобы ввести его в формулу.
- После имени строки введите пробел , который в данном случае работает как оператор пересечения.
- Введите имя целевого столбца ( в нашем случае неделя_3 ).
- Как только будут введены имена строки и столбца, Excel выделит соответствующую строку и столбец в вашей таблице, и вы нажмете Enter, чтобы завершить ввод:
Ваш поиск нужной ячейки в массиве выполнен, найден результат 87.
Вот какими способами можно выполнять поиск в массиве значений – в строках и столбцах таблицы Excel. Я благодарю вас за чтение и надеюсь еще увидеть вас в нашем блоге.
Еще несколько материалов по теме:
Содержание
- Процедура подсчета значений в столбце
- Способ 1: индикатор в строке состояния
- Способ 2: оператор СЧЁТЗ
- Способ 3: оператор СЧЁТ
- Способ 4: оператор СЧЁТЕСЛИ
- Вопросы и ответы
В некоторых случаях перед пользователем ставится задача не подсчета суммы значений в столбце, а подсчета их количества. То есть, попросту говоря, нужно подсчитать, сколько ячеек в данном столбце заполнено определенными числовыми или текстовыми данными. В Экселе существует целый ряд инструментов, которые способны решить указанную проблему. Рассмотрим каждый из них в отдельности.
Читайте также: Как посчитать количество строк в Excel
Как посчитать количество заполненных ячеек в Экселе
Процедура подсчета значений в столбце
В зависимости от целей пользователя, в Экселе можно производить подсчет всех значений в столбце, только числовых данных и тех, которые соответствуют определенному заданному условию. Давайте рассмотрим, как решить поставленные задачи различными способами.
Способ 1: индикатор в строке состояния
Данный способ самый простой и требующий минимального количества действий. Он позволяет подсчитать количество ячеек, содержащих числовые и текстовые данные. Сделать это можно просто взглянув на индикатор в строке состояния.
Для выполнения данной задачи достаточно зажать левую кнопку мыши и выделить весь столбец, в котором вы хотите произвести подсчет значений. Как только выделение будет произведено, в строке состояния, которая расположена внизу окна, около параметра «Количество» будет отображаться число значений, содержащихся в столбце. В подсчете будут участвовать ячейки, заполненные любыми данными (числовые, текстовые, дата и т.д.). Пустые элементы при подсчете будут игнорироваться.
В некоторых случаях индикатор количества значений может не высвечиваться в строке состояния. Это означает то, что он, скорее всего, отключен. Для его включения следует кликнуть правой кнопкой мыши по строке состояния. Появляется меню. В нем нужно установить галочку около пункта «Количество». После этого количество заполненных данными ячеек будет отображаться в строке состояния.
К недостаткам данного способа можно отнести то, что полученный результат нигде не фиксируется. То есть, как только вы снимете выделение, он исчезнет. Поэтому, при необходимости его зафиксировать, придется записывать полученный итог вручную. Кроме того, с помощью данного способа можно производить подсчет только всех заполненных значениями ячеек и нельзя задавать условия подсчета.
Способ 2: оператор СЧЁТЗ
С помощью оператора СЧЁТЗ, как и в предыдущем случае, имеется возможность подсчета всех значений, расположенных в столбце. Но в отличие от варианта с индикатором в панели состояния, данный способ предоставляет возможность зафиксировать полученный результат в отдельном элементе листа.
Главной задачей функции СЧЁТЗ, которая относится к статистической категории операторов, как раз является подсчет количества непустых ячеек. Поэтому мы её с легкостью сможем приспособить для наших нужд, а именно для подсчета элементов столбца, заполненных данными. Синтаксис этой функции следующий:
=СЧЁТЗ(значение1;значение2;…)
Всего у оператора может насчитываться до 255 аргументов общей группы «Значение». В качестве аргументов как раз выступают ссылки на ячейки или диапазон, в котором нужно произвести подсчет значений.
- Выделяем элемент листа, в который будет выводиться итоговый результат. Щелкаем по значку «Вставить функцию», который размещен слева от строки формул.
- Тем самым мы вызвали Мастер функций. Переходим в категорию «Статистические» и выделяем наименование «СЧЁТЗ». После этого производим щелчок по кнопке «OK» внизу данного окошка.
- Мы переходим к окну аргументов функции СЧЁТЗ. В нём располагаются поля ввода аргументов. Как и количество аргументов, они могут достигать численности 255 единиц. Но для решения поставленной перед нами задачи хватит и одного поля «Значение1». Устанавливаем в него курсор и после этого с зажатой левой кнопкой мыши выделяем на листе тот столбец, значения в котором нужно подсчитать. После того, как координаты столбца отобразились в поле, жмем на кнопку «OK» в нижней части окна аргументов.
- Программа производит подсчет и выводит в ячейку, которую мы выделяли на первом шаге данной инструкции, количество всех значений (как числовых, так и текстовых), содержащихся в целевом столбце.
Как видим, в отличие от предыдущего способа, данный вариант предлагает выводить результат в конкретный элемент листа с возможным его сохранением там. Но, к сожалению, функция СЧЁТЗ все-таки не позволяет задавать условия отбора значений.
Урок: Мастер функций в Excel
Способ 3: оператор СЧЁТ
С помощью оператора СЧЁТ можно произвести подсчет только числовых значений в выбранной колонке. Он игнорирует текстовые значения и не включает их в общий итог. Данная функция также относится к категории статистических операторов, как и предыдущая. Её задачей является подсчет ячеек в выделенном диапазоне, а в нашем случае в столбце, который содержит числовые значения. Синтаксис этой функции практически идентичен предыдущему оператору:
=СЧЁТ(значение1;значение2;…)
Как видим, аргументы у СЧЁТ и СЧЁТЗ абсолютно одинаковые и представляют собой ссылки на ячейки или диапазоны. Различие в синтаксисе заключается лишь в наименовании самого оператора.
- Выделяем элемент на листе, куда будет выводиться результат. Нажимаем уже знакомую нам иконку «Вставить функцию».
- После запуска Мастера функций опять перемещаемся в категорию «Статистические». Затем выделяем наименование «СЧЁТ» и щелкаем по кнопке «OK».
- После того, как было запущено окно аргументов оператора СЧЁТ, следует в его поле внести запись. В этом окне, как и в окне предыдущей функции, тоже может быть представлено до 255 полей, но, как и в прошлый раз, нам понадобится всего одно из них под названием «Значение1». Вводим в это поле координаты столбца, над которым нам нужно выполнить операцию. Делаем это все тем же образом, каким выполняли данную процедуру для функции СЧЁТЗ: устанавливаем курсор в поле и выделяем колонку таблицы. После того, как адрес столбца был занесен в поле, жмем на кнопку «OK».
- Результат тут же будет выведен в ячейку, которую мы определили для содержания функции. Как видим, программа подсчитала только ячейки, которые содержат числовые значения. Пустые ячейки и элементы, содержащие текстовые данные, в подсчете не участвовали.
Урок: Функция СЧЁТ в Excel
Способ 4: оператор СЧЁТЕСЛИ
В отличие от предыдущих способов, использование оператора СЧЁТЕСЛИ позволяет задавать условия, отвечающие значения, которые будут принимать участие в подсчете. Все остальные ячейки будут игнорироваться.
Оператор СЧЁТЕСЛИ тоже причислен к статистической группе функций Excel. Его единственной задачей является подсчет непустых элементов в диапазоне, а в нашем случае в столбце, которые отвечают заданному условию. Синтаксис у данного оператора заметно отличается от предыдущих двух функций:
=СЧЁТЕСЛИ(диапазон;критерий)
Аргумент «Диапазон» представляется в виде ссылки на конкретный массив ячеек, а в нашем случае на колонку.
Аргумент «Критерий» содержит заданное условие. Это может быть как точное числовое или текстовое значение, так и значение, заданное знаками «больше» (>), «меньше» (<), «не равно» (<>) и т.д.
Посчитаем, сколько ячеек с наименованием «Мясо» располагаются в первой колонке таблицы.
- Выделяем элемент на листе, куда будет производиться вывод готовых данных. Щелкаем по значку «Вставить функцию».
- В Мастере функций совершаем переход в категорию «Статистические», выделяем название СЧЁТЕСЛИ и щелкаем по кнопке «OK».
- Производится активация окошка аргументов функции СЧЁТЕСЛИ. Как видим, окно имеет два поля, которые соответствуют аргументам функции.
В поле «Диапазон» тем же способом, который мы уже не раз описывали выше, вводим координаты первого столбца таблицы.
В поле «Критерий» нам нужно задать условие подсчета. Вписываем туда слово «Мясо».
После того, как вышеуказанные настройки выполнены, жмем на кнопку «OK».
- Оператор производит вычисления и выдает результат на экран. Как видим, в выделенной колонке в 63 ячейках содержится слово «Мясо».
Давайте немного изменим задачу. Теперь посчитаем количество ячеек в этой же колонке, которые не содержат слово «Мясо».
- Выделяем ячейку, куда будем выводить результат, и уже описанным ранее способом вызываем окно аргументов оператора СЧЁТЕСЛИ.
В поле «Диапазон» вводим координаты все того же первого столбца таблицы, который обрабатывали ранее.
В поле «Критерий» вводим следующее выражение:
<>Мясо
То есть, данный критерий задает условие, что мы подсчитываем все заполненные данными элементы, которые не содержат слово «Мясо». Знак «<>» означает в Экселе «не равно».
После введения этих настроек в окне аргументов жмем на кнопку «OK».
- В предварительно заданной ячейке сразу же отображается результат. Он сообщает о том, что в выделенном столбце находятся 190 элементов с данными, которые не содержат слово «Мясо».
Теперь давайте произведем в третьей колонке данной таблицы подсчет всех значений, которые больше числа 150.
- Выделяем ячейку для вывода результата и производим переход в окно аргументов функции СЧЁТЕСЛИ.
В поле «Диапазон» вводим координаты третьего столбца нашей таблицы.
В поле «Критерий» записываем следующее условие:
>150
Это означает, что программа будет подсчитывать только те элементы столбца, которые содержат числа, превышающие 150.
Далее, как всегда, жмем на кнопку «OK».
- После проведения подсчета Excel выводит в заранее обозначенную ячейку результат. Как видим, выбранный столбец содержит 82 значения, которые превышают число 150.
Таким образом, мы видим, что в Excel существует целый ряд способов подсчитать количество значений в столбце. Выбор определенного варианта зависит от конкретных целей пользователя. Так, индикатор на строке состояния позволяет только посмотреть количество всех значений в столбце без фиксации результата; функция СЧЁТЗ предоставляет возможность их число зафиксировать в отдельной ячейке; оператор СЧЁТ производит подсчет только элементов, содержащих числовые данные; а с помощью функции СЧЁТЕСЛИ можно задать более сложные условия подсчета элементов.
Формула массива представляет собой формулу, с помощью которой можно выполнять различные вычисления с одним или несколькими элементами в массиве. Массив можно представить в виде строки или столбца значений или их сочетания. Формулы массива могут возвращать как отдельное значение, так и множество значений.
Начиная с обновления для Microsoft 365 за сентябрь 2018 г., любая формула, которая может возвращать несколько результатов, автоматически переносит их вниз или в соседние ячейки. Это изменение поведения также сопровождается несколькими новыми функциями динамического массива. Формулы динамического массива, независимо от того, используют ли они существующие функции или функции динамического массива, необходимо вводить только в одну ячейку, а затем подтверждать, нажав ВВОД. Ранее в устаревших формулах массива сначала требовалось выбрать весь выходной диапазон, а затем подтвердить формулу с помощью CTRL+SHIFT+ВВОД. Их часто называют формулами CSE.
Формулы массива позволяют выполнять сложные задачи, например следующие:
-
Быстро создавать образцы наборов данных.
-
Подсчитывать числа знаков в диапазоне ячеек.
-
Суммировать только те числа, которые отвечают определенным условиям, например наименьших значений в диапазоне чисел, определенном верхней и нижней границами.
-
Суммировать всех n-х значения в диапазоне значений.
Следующие примеры иллюстрируют создание формул массива с одной или несколькими ячейками. По возможности мы включили примеры с некоторыми функциями динамического массива, а также с существующими формулами массивов, которые введены как динамические, так и устаревшие массивы.
Скачивание примеров
Скачать образец книги со всеми примерами формул массива из этой статьи.
В этом упражнении вы научитесь использовать формулы массива с одной или несколькими ячейками для вычисления набора данных по продажам. В первой последовательности шагов при помощи формулы с несколькими ячейками вычисляется набор промежуточных итоговых значений. Во второй последовательности применяется формула с одной ячейкой, которая вычисляет общий итог.
-
Формула массива с несколькими ячейками
-
Здесь мы вычисляем совокупный объем продаж купе и седанов для каждого продавца, вводя =F10:F19*G10:G19 в ячейку H10.
При нажатии клавиши ВВОД вы увидите, как результаты распределяются по ячейкам H10:H19. Обратите внимание, что диапазон переноса выделяется границей при выделении любой ячейки в пределах диапазона. Вы также можете заметить, что формулы в ячейках H10:H19 неактивны. Они нужны только для справки, поэтому, если вы хотите изменить формулу, вам нужно выбрать ячейку H10, в которой находится основная формула.
-
Формула массива с одной ячейкой
В ячейке H20 образца книги введите или скопируйте и вставьте =СУММ(F10:F19*G10:G19), а затем нажмите ВВОД.
В этом случае будет выполнено перемножение значений массива (диапазон ячеек F10–G19), а затем — при помощи функции СУММ — сложение полученных результатов. Общий итог продаж составит 1 590 000 рублей.
В данном примере демонстрируется, какие широкие возможности предоставляет данный тип формул. Например, предположим, что у вас есть 1000 строк с данными. Вы можете частично или полностью сложить их значения, создав формулу массива в отдельной ячейке, а не перетаскивать формулу на 1000 строк ниже. Кроме того, обратите внимание на то, что формула с одной ячейкой в ячейке H20 полностью независима от формулы с несколькими ячейками (формула в ячейках H10–H19). Это указывает на еще одно преимущество использования формул массива — их гибкость. Можно изменить формулы в столбце H, и это не повлияет на формулу в ячейке H20. Также может быть полезно иметь независимые итоги, как это, так как это помогает проверить точность результатов.
-
Ниже перечислены дополнительные преимущества, которые обеспечивает использование формул динамического массива.
-
Согласованность Если щелкнуть несколько ячеек ниже ячейки H10, вы увидите, что все они содержат одну и ту же формулу. Такая согласованность помогает обеспечить более высокую точность результатов.
-
Безопасность Компонент формулы массива с несколькими ячейками нельзя переписать. Например, щелкните ячейку H11 и нажмите клавишу DELETE. Excel не будет изменять выходные данные массива. Чтобы их изменить, необходимо выбрать левую верхнюю ячейку массива или ячейку H10.
-
Меньший размер файлов Зачастую вместо нескольких промежуточных формул можно использовать одну формулу массива. Например, в примере с продажей автомобилей для вычисления результатов в столбце E используется одна формула массива. Если бы вы прибегли к обычным формулам (таким как =F10*G10, F11*G11, F12*G12 и т. д.), вам понадобилось бы 11 разных формул для получения таких же результатов. Это не очень важно, но что, если вам необходимо суммировать тысячи строк? Тогда это может иметь большое значение.
-
Эффективность Функции массива могут быть эффективным способом создания сложных формул. Формула массива =СУММ(F10:F19*G10:G19) та же: =СУММ(F10*G10,F11*G11,F12*G12,F13*G13,F14*G14,F15*G15,F16*G16,F17*G17,F18*G18,F19*G19).
-
Перенос Динамические формулы массива будут автоматически перенесены в диапазон вывода. Если исходные данные хранятся в таблице Excel, тогда формулы динамического массива будут автоматически изменять размер при добавлении и удалении данных.
-
Ошибка #ПЕРЕНОС! Динамические массивы ввели Ошибка #ПЕРЕНОС!, что означает, что предполагаемый диапазон переноса по какой-либо причине заблокирован. При устранении блока формула будет автоматически перенесены.
-
Константы массива являются компонентами формул массива. Константы массива создаются путем ввода списка элементов с последующей вставкой фигурных скобок ({ }) вокруг списка, следующим образом:
={1;2;3;4;5} или ={«Январь»;»Февраль»;»Март»}
Если элементы списка разделяются точками с запятой, будет создан горизонтальный массив (строка). Если элементы разделяются двоеточиями, будет создан вертикальный массив (столбец). Чтобы создать двумерный массив, следует разделить элементы строк точками с запятой, а строки — двоеточиями.
В описанных ниже процедурах вы потренируетесь создавать горизонтальные, вертикальные и двумерные константы. Мы покажем примеры использования функции ПОСЛЕД для автоматического создания констант массива, а также для введенных вручную констант массива.
-
Создание горизонтальной константы
Воспользуйтесь книгой из предыдущих примеров или создайте новую книгу. Выберете любую пустую ячейку и введите =ПОСЛЕД(1,5). Функция ПОСЛЕД создает массив из 1 строки на 5 столбцов, как ={1;2;3;4;5}. Будет отображен следующий результат:
-
Создание вертикальной константы
Выберите любую пустую ячейку с помещением под ней и введите =ПОСЛЕД(5), или ={1;2;3;4;5}. Будет отображен следующий результат:
-
Создание двумерной константы
Выберите любую пустую ячейку с помещением справа и введите =ПОСЛЕД(3,4). Вы получите следующий результат:
Вы также можете ввести: или={1;2;3;4:5;6;7;8:9;10;11;12}, но обратите внимание, где вы ставите точки с запятой вместо запятых.
Как видите, параметр ПОСЛЕД имеет значительные преимущества по сравнению с вводом значений констант массива вручную. В основном это экономит время, но также помогает сократить количество ошибок, возникающих при вводе вручную. Его также проще читать, особенно потому, что точки с запятой трудно отличить от разделителей запятой.
Вот пример использования констант массива в составе более крупной формулы. В примере книги перейдите к листу Константа в формуле или создайте новый лист.
В ячейке D9 мы ввели =ПОСЛЕД(1,5,3,1), но вы также можете ввести 3, 4, 5, 6 и 7 в ячейки A9:H9. В этом конкретном выборе числа нет ничего особенного, мы просто выбрали что-то другое, кроме 1-5.
В ячейке E11 введите =СУММ(D9:H9*ПОСЛЕДОВАТЕЛЬНОСТЬ(1,5)) или =СУММ(D9:H9*{1;2;3;4;5}). Формулы возвращают 85.
Функция ПОСЛЕД создает эквивалент константы массива {1;2;3;4;5}. Поскольку Excel в первую очередь выполняется операции с элементами, заключенными в скобки, далее будут использоваться значения ячеек в D9: H9 и оператор умножения (*). На этом этапе формула выполнит умножение значений в сохраненном массиве на соответствующие значения в константе. Это эквивалент следующей формулы:
=СУММ(D9*1;E9*2,F9*3,G9*4;H9*5) или =СУММ(3*1,4*2,5*3,6*4,7*5)
В последнюю очередь выполняется сложение значений при помощи функции СУММ и возвращается 85.
Чтобы избежать использования сохраненного массива и полностью сохранить операцию в памяти, замените сохраненный массив другой константой массива:
=СУММ(ПО(1;5;3;1)*ПОСЛЕД(1,5)) или =СУММ({3;4;5;6;7}*{1;2;3;4;5})
Элементы, которые можно использовать в константах массива
-
Константы массива могут содержать числа, текст, логические значения (например, ИСТИНА и ЛОЖЬ) и значения ошибок, такие как #N/A. Можно использовать числа в целочисленном, десятичном или экспоненциальном формате. При добавлении текста требуется заключить его в кавычки («текст»).
-
Константы массива не могут содержать дополнительные массивы, формулы или функции. Другими словами, они могут содержать только текст или числа, разделенные запятыми или точками с запятой. При вводе такой формулы, как {1;2;A1:D4} или {1;2;СУММ(Q2:Z8)}, выводится предупреждение. Кроме того, числовые значения не могут содержать знаки процента, знаки валюты, запятые или кавычки.
Один из лучших способов использовать константы массива — присвоить им имена. С именованными константами проще работать, и они позволяют частично скрыть сложность формул массива от других пользователей. Чтобы присвоить имя константе массива, а затем использовать ее в формуле, сделайте следующее.
Выберите Формулы > Присвоить имена > Определить имена. В поле Имя введите Квартал 1. В поле Диапазон введите следующую константу (не забудьте ввести скобки вручную):
={«Январь»;»Февраль»;»Март»}
Диалоговое окно должно выглядеть следующим образом:
Нажмите кнопку ОК, выберите любую строку с тремя пустыми ячейками и введите =Квартал1.
Будет отображен следующий результат:
Если вы хотите, чтобы результаты переносились по вертикали, а не по горизонтали, можно использовать =ТРАНСП(Квартал1).
Если вы хотите отобразить список из 12 месяцев, например, который вы можете использовать при создании финансового отчета, вы можете использовать функцию ПОСЛЕД в качестве основы для текущего года. Отличительной особенностью этой функции является то, что, несмотря на то, что отображается только месяц, за ним стоит допустимая дата, которую можно использовать в других вычислениях. Эти примеры можно найти на листах Константа именованного массива и Быстрый образец набора данных в книге примера.
=ТЕКСТ(ДАТА(ГОД(СЕГОДНЯ()),ПОСЛЕД(1,12),1),»ммм»)
При этом функция ДАТА используется для создания даты на основе текущего года, функция ПОСЛЕД создает константу массива от 1 до 12 с января по декабрь, затем функция ТЕКСТ преобразует формат отображения в «ммм» (январь, февраль, март и т..д.). Если вы хотите отобразить полное название месяца, например «Январь», используйте «мммм».
При использовании именованной константы в качестве формулы массива не забудьте ввести знак равенства, например, =Квартал1, а не только в Квартал1. Если не сделать этого, массив будет интерпретирован как строка текста и формула не будет работать должным образом. Кроме того, помните, что можно сочетать функции, текст и числа. Все зависит от того, насколько креативно вы хотите все сделать.
В следующих ниже примерах демонстрируется несколько способов, при помощи которых можно применять константы массива в формулах массива. В некоторых из примеров используется функция ТРАНСП, которая выполняет преобразование строк в столбцы и наоборот.
-
Умножение каждого из элементов массива
Введите =ПОСЛЕД(1,12)*2 или ={1;2;3;4:5;6;7;8:9;10;11;12}*2
Вы также можете выполнить деление с помощью (/), сложить с помощью (+) и вычесть с помощью (—).
-
Возведение в квадрат элементов массива
Введите =ПОСЛЕД(1,12)^2 или ={1;2;3;4:5;6;7;8:9;10;11;12}^2
-
Поиск квадратного корня из квадрата элементов массива
Введите =КОРЕНЬ(ПОСЛЕД(1,12)^2) или =КОРЕНЬ({1;2;3;4:5;6;7;8:9;10;11;12}^2)
-
Транспонирование одномерной строки
Введите =ТРАНСП(ПОСЛЕД(1,5)) или =ТРАНСП({1;2;3;4;5})
Даже если была введена горизонтальная константа массива, функция ТРАНСП преобразует константу массива в столбец.
-
Транспонирование одномерного столбца
Введите =ТРАНСП(ПОСЛЕД(5,1)) или =ТРАНСП({1:2:3:4:5})
Даже если была введена вертикальная константа массива, функция ТРАНСП преобразует константу массива в строку.
-
Транспонирование двумерного массива
Введите =ТРАНСП(ПОСЛЕД(3,4)) или =ТРАНСП({1;2;3;4:5;6;7;8:9;10;11;12})
Функция ТРАНСП преобразует каждую из строк в последовательность столбцов.
В данном разделе приводятся примеры использования основных формул массива.
-
Создание массива на основе существующих значений
В следующем примере объясняется, как использовать формулы массива для создания нового массива из существующего массива.
Введите =ПОСЛЕД(3,6,10,10) или ={10;20;30;40;50;60:70;80;90;100;110;120:130;140;150;160;170;180}
Не забудьте ввести { (открывающую фигурную скобку) перед числом 10 и} (закрывающую фигурную скобку) после числа 180, так как вы создаете массив чисел.
Затем введите =D9# или =D9:I11 в пустую ячейку. Появится массив ячеек 3 x 6 с одинаковыми значениями, которые отображаются в D9:D11. Знак # называется оператором диапазона переноса, и это способ ссылки Excel на весь диапазон массива вместо того, чтобы вводить его.
-
Создание константы массива на основе существующих значений
Вы можете получить результаты формулы перенесенного массива и преобразовать его в компоненты. Выберите ячейку D9 и нажмите клавишу F2, чтобы переключиться в режим правки. Затем нажмите клавишу F9, чтобы преобразовать ссылки на ячейки в значения, которые Excel преобразует в константу массива. При нажатии клавиши ВВОД формула =D9# теперь должна быть ={10;20;30:40;50;60:70;80;90}.
-
Подсчет знаков в диапазоне ячеек
В примере ниже демонстрируется, как подсчитать число знаков в диапазоне ячеек. К ним относятся пробелы.
=СУММ(LEN(C9:C13))
В данном случае функция ДЛСТР возвращает длину каждой текстовой строки в каждой из ячеек диапазона. Затем функция СУММ складывает эти значения и выводит полученный результат (66). Если вы хотите получить среднее количество символов, можно использовать:
=СРЗНАЧ(ДЛСТР(C9:C13))
-
Содержимое самой длинной ячейки в диапазоне C9:C13
=ИНДЕКС(C9:C13;ПОИСКПОЗ(МАКС(ДЛСТР(C9:C13)),ДЛСТР(C9:C13);0);1)
Эта формула работает только в том случае, если диапазон данных содержит один столбец ячеек.
Рассмотрим эту формулу подробнее, начиная с элементов в скобках. Функция ДЛСТР возвращает длину каждого элемента в диапазон ячеек D2:D6. Функция МАКС вычисляет наибольшее значение среди этих элементов, соответствующее самой длинной текстовой строке, которая находится в ячейке D3.
Следующие функции немного сложнее. Функция ПОИСКПОЗ вычисляет смещение (относительную позицию) ячейки, которая содержит строку текста максимальной длины. Для этого требуется три аргумента: искомое значение, массив для поиска и тип соответствия. Функция ПОИСКПОЗ выполняет поиск указанного искомого значения в массиве поиска. В данном случае искомое значение представляет собой строку максимальной длины:
МАКС(ДЛСТР(C9:C13)
из следующего массива:
ДЛСТР(C9:C13)
Аргумент типа соответствия в этом случае равен 0. Тип соответствия может иметь значение 1, 0 или -1.
-
Значение 1 возвращает наибольшее значение, которое не превышает искомое значение.
-
Значение 0 возвращает первое значение, равное искомому.
-
Значение -1 возвращает наименьшее из значений, которые превышают искомое значение или равно ему
-
Если тип соответствия не указан, предполагается, что он равен 1.
Наконец, функция ИНДЕКС имеет следующие аргументы: массив, номер строки и номер столбца в этом массиве. Массив образуется диапазоном ячеек C9:C13, функция ПОИСКПОЗ задает адрес ячейки, а последний аргумент (1) указывает, что значение должно быть найдено в первом столбце массива.
Если вы хотите получить содержимое из наименьшей текстовой строки, замените значение МАКС в примере выше на МИН.
-
-
Поиск n наименьших значений в диапазоне
В этом примере показано, как найти три наименьших значения в диапазоне ячеек, где массив образцов данных в ячейках B9:B18 был создан с помощью: =ЦЕЛОЕ(СЛМАССИВ(10,1)*100). Обратите внимание, что ФУНКЦИЯ СЛМАСИМВ — это переменная функция, поэтому вы будете получать новый набор случайных чисел при каждом вычислении в Excel.
Введите =НАИМЕНЬШИЙ(B9#,ПОСЛЕД(D9), =НАИМЕНЬШИЙ(B9:B18,{1:2:3})
В этой формуле константа массива используется для трехкратной оценки функции НАИМЕНЬШИЙ и возврата 3 наименьших членов массива, содержащихся в ячейках B9:B18, где 3 — это переменное значение в ячейке D9. Чтобы найти дополнительные значения, можно увеличить значение в функции ПОСЛЕД или добавить дополнительные аргументы в константу. С этой формулой также используются дополнительные функции, например СУММ или СРЗНАЧ. Например:
=СУММ(НАИМЕНЬШИЙ(B9#;ПОСЛЕД(D9))
=СРЕДНИЙ(НАИМЕНЬШИЙ(B9#;ПОСЛЕД(D9))
-
Поиск n наибольших значений в диапазоне
Чтобы найти наибольшие значения в диапазоне, следует заменить функцию НАИМЕНЬШИЙ функцией НАИБОЛЬШИЙ. Кроме того, в следующем примере используются функции СТРОКА и ДВССЫЛ.
Введите =НАИБОЛЬШИЙ(B9#,СТРОКА(ДВССЫЛ(«1:3»))) или =НАИБОЛЬШИЙ(B9:B18,СТРОКА(ДВССЫЛ(«1:3»)))
На этом этапе может быть полезно ознакомиться с функциями СТРОКА и ДВССЫЛ. При помощи функции СТРОКА можно создать массив последовательных целых чисел. Например, выберите пустое и введите:
=СТРОКА(1:10)
В результате выполнения этой формулы будет создан столбец, содержащий 10 последовательных целочисленных значений. Чтобы понять, где может возникнуть проблема, вставьте строку над диапазоном, содержащим формулу массива (то есть над строкой 1). Ссылки на строки будут изменены и в результате выполнения формулы теперь вы получите числа от 2 до 11. Чтобы избежать возникновения этой проблемы, следует добавить в формулу функцию ДВССЫЛ.
=СТРОКА(ДВССЫЛ(«1:10»))
В функции ДВССЫЛ в качестве аргументов используются текстовые строки (именно поэтому диапазон 1:10 заключен в кавычки). Текстовые значения не изменяются при вставке строк или перемещении формулы массива. В результате при выполнении функции СТРОКА всегда будет создаваться нужный массив целочисленных значений. Вы можете так же легко использовать функцию ПОСЛЕД:
=ПОСЛЕД(10)
Рассмотрим формулу, которую вы использовали ранее — =НАИБОЛЬШИЙ(B9#,СТРОКА(ДВССЫЛ(«1:3»))), начиная с внутренних скобок и работая наружу: функция ДВССЫЛ возвращает набор текстовых значений, в данном случае значения от 1 до 3. Функция СТРОКА, в свою очередь, создает массив столбцов из трех ячеек. Функция НАИБОЛЬШИЙ использует значения в диапазоне ячеей B9:B18 и вычисляется три раза для каждой ссылки, возвращаемой функцией СТРОКА. Если вы хотите найти дополнительные значения, добавьте к функции ДВССЫЛ более широкий диапазон ячеек. Как и в примерах с функцией НАИМЕНЬШИЙ, эту формулу можно использовать и с другими функциями, такими как СУММ и СРЗНАЧ.
-
Суммирование диапазона, который содержит значения ошибки
При попытке просуммировать диапазон, содержащий значения ошибки (например, #ЗНАЧЕН), функция СУММ в Excel не работает. или #Н/Д. В приведенном ниже примере демонстрируется, как просуммировать значения в диапазоне «Данные», который содержит ошибки:
-
=СУММ(ЕСЛИ(ЕОШИБКА(Данные);»»;Данные))
Формула создает новый массив, содержащий исходные значения за вычетом любых значений ошибок. Начиная с внутренних функций и работы наружу, функция ЕОШИБКА выполняет поиск ошибок в диапазоне ячеей (Данные). Функция ЕСЛИ возвращает определенное значение, если указанное условие дает в результате значение ИСТИНА, и другое значение, если условие дает в результате значение ЛОЖЬ. В этом случае он возвращает пустые строки («») для всех значений ошибок, так как они оцениваются как ИСТИНА, и возвращает оставшиеся значения из диапазона (Данные), так как они оцениваются как ЛОЖЬ, то есть они не содержат значений ошибок. Функция СУММ затем вычисляет итог для отфильтрованного массива.
-
Подсчет количества значений ошибки в диапазоне
Формула в этом примере похожа на формулу предыдущего примера, однако она возвращает количество значений ошибки в диапазоне с именем «Данные» вместо исключения таких значений.
=СУММ(ЕСЛИ(ЕОШИБКА(Данные);1;0))
В результате выполнения этой формулы создается массив, в котором для ячеек со значениями ошибки указывается значение 1, а для других ячеек — значение 0. Для получения аналогичного результата указанную формулу можно упростить, удалив третий аргумент функции ЕСЛИ следующим образом.
=СУММ(ЕСЛИ(ЕОШИБКА(Данные);1))
Если этот аргумент не задан и ячейка не содержит значения ошибки, функция ЕСЛИ возвращает значение ЛОЖЬ. Формулу можно упростить еще больше:
=СУММ(ЕСЛИ(ЕОШИБКА(Данные)*1))
Такой вариант формулы допустим, поскольку ИСТИНА*1=1 и ЛОЖЬ*1=0.
При выполнении определенных условий может потребоваться вложение значений.
Например, в указанной ниже формуле массива суммируются только положительные целые числа в диапазоне с именем «Продажи», который представляет ячейки E9:E24 в приведенном выше примере:
=СУММ(ЕСЛИ(Продажи>0;Продажи))
В результате выполнения функции ЕСЛИ создается массив положительных и ложных значений. Функция СУММ будет игнорировать ложные значения, поскольку 0+0=0. Используемый в этой формуле диапазон ячеек может включать любое количество строк и столбцов.
Можно также выполнить суммирование значений с учетом нескольких условий. Например, эта формула массива вычисляет значения больше 0 И меньше 2500:
=СУММ((Продажи>0)*(Продажи<2500)*(Продажи))
Следует помнить, что при наличии в указанном диапазоне одной или нескольких ячеек, не являющихся числовыми, эта формула возвратит ошибку.
Доступно создание формул массива с использованием условия типа ИЛИ. Например, можно суммировать значения, которые больше 0 ИЛИ меньше 2500:
=СУММ(ЕСЛИ((Продажи>0)+(Продажи<2500);Продажи))
В формулах массива нельзя использовать непосредственно функции И или ИЛИ, поскольку эти функции возвращают отдельный результат, ИСТИНА или ЛОЖЬ, а для функций массива требуется массив результатов. Чтобы разрешить эту проблему, воспользуйтесь логикой, показанной в предыдущей формуле. Другими словами, математические операции, такие как сложение и умножение, выполняются в отношении значений, которые отвечают условию ИЛИ или И.
В этом примере демонстрируется, как удалить нулевые значения из диапазона, чтобы затем вычислить для него среднее значение. В формуле используется диапазон данных с именем «Продажи».
=СРЗНАЧ(ЕСЛИ(Продажи<>0,Продажи))
В результате выполнения функции ЕСЛИ создается массив значений, не равных 0, которые затем передаются в функцию СРЗНАЧ.
В данной формуле массива сравниваются значения в двух диапазонах ячеек с именами МоиДанные и ДругиеДанные, в результате чего возвращается количество различающихся ячеек между этими двумя диапазонами. Если содержимое двух диапазонов идентично, формула возвращает 0. Эту формулу можно использовать только для диапазонов ячеек с одинаковым размером и одинаковой размерностью. Например, если МоиДанные — это диапазон из 3 строк и 5 столбцов, то диапазон ДругиеДанные тоже должен состоять из 3 строк и 5 столбцов:
=СУММ(ЕСЛИ(МоиДанные=ДругиеДанные;0;1))
В результате выполнения формулы создается массив, имеющий такой же размер, что и сравниваемые диапазоны. Функция ЕСЛИ заполняет массив значениями 0 и 1 (0 для ячеек с различными значениями, 1 — для ячеек с одинаковыми значениями). Затем функция СУММ возвращает сумму значений в массиве.
Эту формулу можно упростить следующим образом:
=СУММ(1*(МоиДанные<>ДругиеДанные))
Подобно формуле, подсчитывающей количество значений ошибки в диапазоне, эта формула работает благодаря тому, что ИСТИНА*1=1, а ЛОЖЬ*1=0.
Следующая формула массива возвращает номер строки максимального значения в диапазоне с именем «Данные», состоящем из одного столбца:
=МИН(ЕСЛИ(Данные=МАКС(Данные);СТРОКА(Данные);»»))
В результате выполнения функции ЕСЛИ создается новый массив, соответствующий диапазону с именем «Данные». Если соответствующая ячейка содержит максимальное значение в диапазоне, массив будет содержать номер этой строки. В обратном случае массив содержит пустую строку («»). Функция МИН использует полученный массив в качестве своего второго аргумента и возвращает наименьшее значение, соответствующее номеру строки с максимальным значением в диапазоне с именем «Данные». Если диапазон «Данные» содержит одинаковые максимальные значения, формула возвращает строку первого значения.
Если требуется, чтобы формула возвращала фактический адрес ячейки с максимальным значением, воспользуйтесь следующей формулой:
=АДРЕС(МИН(ЕСЛИ(Данные=МАКС(Данные);СТРОКА(Данные);»»));СТОЛБЕЦ(Данные))
Похожие примеры можно найти в примере книги на листе Различия между наборами данных.
В этом упражнении вы научитесь использовать формулы массива с одной или несколькими ячейками для вычисления набора данных по продажам. В первой последовательности шагов при помощи формулы с несколькими ячейками вычисляется набор промежуточных итоговых значений. Во второй последовательности применяется формула с одной ячейкой, которая вычисляет общий итог.
-
Формула массива с несколькими ячейками
Скопируйте всю таблицу, приведенную ниже, и вставьте ее на пустой лист книги, начиная с ячейки A1.
Продавец |
Тип |
Число |
Цена |
Итоги |
---|---|---|---|---|
Зуева |
Седан |
5 |
33000 |
|
Купе |
4 |
37000 |
||
Егоров |
Седан |
6 |
24000 |
|
Купе |
8 |
21000 |
||
Еременко |
Седан |
3 |
29000 |
|
Купе |
1 |
31000 |
||
Климов |
Седан |
9 |
24000 |
|
Купе |
5 |
37000 |
||
Шашков |
Седан |
6 |
33000 |
|
Купе |
8 |
31000 |
||
Формула (общий итог) |
Общий итог |
|||
‘=СУММ(C2:C11*D2:D11) |
=СУММ(C2:C11*D2:D11) |
-
Чтобы просмотреть итоги продаж автомобилей типа «купе» и «седан» для каждого продавца, выберите ячейки E2:E11, введите формулу =C2:C11*D2:D11, а затем нажмите клавиши CTRL+SHIFT+ВВОД.
-
Чтобы просмотреть итоги всех продаж, выберите ячейку F11, введите формулу =СУММ(C2:C11*D2:D11), а затем нажмите клавиши CTRL+SHIFT+ВВОД.
При нажатии CTRL+SHIFT+ВВОД Excel заключает формулу в скобки ({ }) и вставляет экземпляр формулы в каждую ячейку выбранного диапазона. Это происходит очень быстро, поэтому в столбце E отображается сумма продаж каждого типа автомобиля для каждого продавца. Если вы выберете E2, а затем выберите E3, E4 и так далее, вы увидите, что отображается та же формула: {=C2:C11*D2:D11}.
-
Создание формулы массива с одной ячейкой
В ячейке D13 книги введите указанную ниже формулу, а затем нажмите сочетание клавиш CTRL+SHIFT+ВВОД:
=СУММ(C2:C11*D2:D11)
В этом случае будет выполнено перемножение значений массива (диапазон ячеек C2–D11), а затем — при помощи функции СУММ — сложение полученных результатов. Общий итог продаж составит 1 590 000 рублей. В данном примере демонстрируется, какие широкие возможности предоставляет данный тип формул. Например, предположим, что у вас есть 1000 строк с данными. Вы можете частично или полностью сложить их значения, создав формулу массива в отдельной ячейке, а не перетаскивать формулу на 1000 строк ниже.
Кроме того, обратите внимание на то, что формула с одной ячейкой в ячейке D13 полностью независима от формулы с несколькими ячейками (формула в ячейках E2–E11). Это указывает на еще одно преимущество использования формул массива — их гибкость. Можно изменить формулы в столбце E или вообще удалить этот столбец, и это не повлияет на формулу в ячейке D13.
Ниже перечислены дополнительные преимущества, которые обеспечивает использование формул массива.
-
Согласованность Если щелкнуть несколько ячеек ниже ячейки E2, вы увидите, что все они содержат одну и ту же формулу. Такая согласованность помогает обеспечить более высокую точность результатов.
-
Безопасность Компонент формулы массива с несколькими ячейками нельзя переписать. Например, щелкните ячейку E3 и нажмите клавишу DELETE. Вам придется выделить весь диапазон ячеек (E2–E11) и изменить формулу для всех ячеек либо оставить массив без изменений. В качестве меры безопасности необходимо нажать CTRL+SHIFT+ВВОД чтобы подтвердить изменение формулы.
-
Меньший размер файлов Зачастую вместо нескольких промежуточных формул можно использовать одну формулу массива. Например, в книге для вычисления результатов в столбце E применяется всего лишь одна формула массива. Если бы вы прибегли к обычным формулам (таким как =C2*D2, C3*D3, C4*D4 и т. д.), вам понадобилось бы 11 разных формул для получения таких же результатов.
Как правило, в формулах массива используется стандартный синтаксис формулы. Они все начинаются со знака равенства (=) и могут содержать многие встроенные функции Excel. Ключевое отличие заключается в том, что при использовании формулы массива, чтобы ввести формулу необходимо ввести клавиши CTRL+SHIFT+ВВОД. В этом случае Excel заключит формулу массива в фигурные скобки — если вы введете фигурные скобки вручную, ваша формула будет преобразована в текстовую строку и не будет работать.
Функции массива могут быть эффективным способом создания сложных формул. Формула массива =СУММ(C2:C11*D2:D11) эквивалентна формуле =СУММ(C2*D2;C3*D3;C4*D4;C5*D5;C6*D6;C7*D7;C8*D8;C9*D9;C10*D10;C11*D11).
Важно: Нажимайте клавиши CTRL+SHIFT+ВВОД, когда хотите ввести формулу массива. Это правило действует для формул как с одной, так и с несколькими ячейками.
При работе с формулами с несколькими ячейками учитывайте указанные ниже моменты.
-
Выделите диапазон ячеек, который будет содержать результаты, прежде чем вводить формулу. Вы делали это при создании формулы массива с несколькими ячейками, выбирая ячейки E2–E11.
-
Содержимое отдельной ячейки в формуле массива изменить нельзя. Чтобы проверить это правило, выделите ячейку E3 в книге и нажмите клавишу DELETE. В приложении Excel отобразится сообщение о том, что нельзя изменить часть формулы массива.
-
Формулу массива можно переместить или удалить только целиком. Другими словами, чтобы уменьшить формулу массива, сначала нужно удалить существующую формулу, а затем создать новую формулу с самого начала.
-
Чтобы удалить формулу массива, выберите весь диапазон формул (например, E2:E11), а затем нажмите Удалить.
-
В формулу массива с несколькими ячейками нельзя вставить пустые строки (или удалить строки из нее).
Иногда возникает необходимость увеличить диапазон формулы массива. Выберите первую ячейку в существующем диапазоне массива и продолжайте, пока не выберете весь диапазон, на который вы хотите расширить формулу. Нажмите F2, чтобы изменить формулу, а затем нажмите CTRL+SHIFT+ВВОД, чтобы подтвердить формулу после изменения диапазона формул. Ключом является выбор всего диапазона, начиная с верхней левой ячейки массива. Верхняя левая ячейка — это ячейка, которая редактируется.
Несмотря на все преимущества формул массива, у них имеются свои недостатки.
-
Вы можете случайно забыть нажать сочетание клавиш CTRL+SHIFT+ВВОД. Это может случиться даже с самыми опытными пользователями Excel. Не забывайте нажимать это сочетание клавиш каждый раз при вводе или изменении формулы массива.
-
Для других пользователей книги используемые формулы могут быть непонятны. На практике описание формулы массива редко приводится на листе. Поэтому, если нужно, чтобы другие люди могли редактировать книгу, следует избегать использования в ней формул массива или убедиться в том, что пользователи знают обо всех формулах массива и понимают, как изменить их при необходимости.
-
Большие формулы массива могут замедлять вычисления на компьютерах с невысокой скоростью процессора или небольшим объемом памяти.
Константы массива являются компонентами формул массива. Константы массива создаются путем ввода списка элементов с последующей вставкой фигурных скобок ({ }) вокруг списка, следующим образом:
={1;2;3;4;5}
Теперь вы знаете о необходимости нажимать клавиши CTRL+SHIFT+ВВОД при создании формул массива. Константы массива являются составляющей формул массива, поэтому скобки вокруг них необходимо ввести вручную. Затем нажмите клавиши CTRL+SHIFT+ВВОД, чтобы завершить ввод формулы.
Если элементы списка разделяются точками с запятой, будет создан горизонтальный массив (строка). Если элементы разделяются двоеточиями, будет создан вертикальный массив (столбец). Чтобы создать двумерный массив, следует разделить элементы строк точками с запятой, а строки — двоеточиями.
Так выглядит массив из одной строки: {1;2;3;4}. Массив из одного столбца: {1:2:3:4}. А вот массив из двух строк и четырех столбцов: {1;2;3;4:5;6;7;8}. В двухстрочном массиве первая строка представлена 1, 2, 3 и 5, 6, 7, а вторая строка — 8 и 4. Строки разделены двоеточием между записями 4 и 5.
Как и формулы массива, константы массива можно использовать с большинством встроенных функций Excel. В следующих ниже разделах объясняется, как создавать те или иные типы констант и использовать эти константы с функциями Excel.
В описанных ниже процедурах вы потренируетесь создавать горизонтальные, вертикальные и двумерные константы.
Создание горизонтальной константы
-
На пустом листе выделите ячейки от A1 до E1 включительно.
-
В строке формул введите указанную ниже формулу, а затем нажмите клавиши CTRL+SHIFT+ВВОД:
={1;2;3;4;5}
В этом случае нужно ввести открывающую и закрывающую фигурные скобки ({ }), и Excel добавит второй набор.
Будет отображен следующий результат:
Создание вертикальной константы
-
Выделите в книге столбец из пяти ячеек.
-
В строке формул введите указанную ниже формулу, а затем нажмите клавиши CTRL+SHIFT+ВВОД:
={1:2:3:4:5}
Будет отображен следующий результат:
Создание двумерной константы
-
Выделите в книге блок ячеек из четырех столбцов и трех строк.
-
В строке формул введите указанную ниже формулу, а затем нажмите клавиши CTRL+SHIFT+ВВОД:
={1;2;3;4:5;6;7;8:9;10;11;12}
Вы получите следующий результат:
Использование констант в формулах
Рассмотрим простой пример с константами.
-
Создайте новый лист в образце книги.
-
В ячейку A1 введите значение 3, затем введите 4 в ячейку B1, 5 — в C1, 6 — в D1 и 7 — в E1.
-
В ячейке A3 введите следующую формулу, а затем нажмите клавиши CTRL+SHIFT+ВВОД:
=СУММ(A1:E1*{1;2;3;4;5})
Обратите внимание, что константа будет автоматически заключена в дополнительный набор скобок, поскольку она введена как формула массива.
В ячейке A3 появится значение 85.
В следующем разделе поясняется работа этой формулы.
Использованная формула состоит из нескольких частей.
1. Функция
2. Сохраненный массив
3. Оператор
4. Константа массива
Последний элемент внутри скобок — это константа массива: {1;2;3;4;5}. Помните, что Excel не заключает константы массива в фигурные скобки, их нужно вводить вручную. Также помните о том, что после ввода константы в формулу массива необходимо нажать сочетание клавиш CTRL+SHIFT+ВВОД, чтобы завершить ввод формулы.
Поскольку в первую очередь выполняются операции с элементами, заключенными в скобки, далее будут использоваться значения, хранящиеся в книге (диапазон A1:E1), и соответствующий оператор. На этом этапе формула выполнит умножение значений в сохраненном массиве на соответствующие значения в константе. Это эквивалент следующей формулы:
=СУММ(A1*1;B1*2;C1*3;D1*4;E1*5)
В последнюю очередь выполняется сложение значений при помощи функции СУММ, итоговое значение 85 отображается в ячейке A3.
Чтобы избежать использования сохраненного массива и выполнять операцию исключительно в памяти, замените сохраненный массив другой константой массива:
=СУММ({3;4;5;6;7}*{1;2;3;4;5})
Для этого скопируйте функцию, выделите пустую ячейку в книге, вставьте формулу в строку формул, а затем нажмите клавиши CTRL+SHIFT+ВВОД. Получится тот же результат, что и в предыдущем упражнении, где использовалась формула массива:
=СУММ(A1:E1*{1;2;3;4;5})
Константы массива могут содержать числа, текст, логические значения (такие как ИСТИНА и ЛОЖЬ), а также значения ошибок (например, #Н/Д). Можно использовать числа в целочисленном, десятичном или экспоненциальном формате. При добавлении текста требуется заключить его в кавычки («).
Константы массива не могут содержать дополнительные массивы, формулы или функции. Другими словами, они могут содержать только текст или числа, разделенные запятыми или точками с запятой. При вводе такой формулы, как {1;2;A1:D4} или {1;2;СУММ(Q2:Z8)}, выводится предупреждение. Кроме того, числовые значения не могут содержать знаки процента, знаки валюты, запятые или кавычки.
Один из лучших способов использовать константы массива — присвоить им имена. С именованными константами проще работать, и они позволяют частично скрыть сложность формул массива от других пользователей. Чтобы присвоить имя константе массива, а затем использовать ее в формуле, сделайте следующее.
-
На вкладке Формулы в группе Определенные имена выберите команду Присвоить имя.
Откроется диалоговое окно Задать имя. -
В поле Имя введите Квартал1.
-
В поле Диапазон введите следующую константу (не забудьте ввести скобки вручную):
={«Январь»;»Февраль»;»Март»}
Содержимое этого диалогового окна должно иметь следующий вид:
-
Нажмите кнопку ОК, а затем выделите строку из трех пустых ячеек.
-
Введите указанную ниже формулу, а затем нажмите сочетание клавиш CTRL+SHIFT+ВВОД.
=Квартал1
Будет отображен следующий результат:
При использовании именованной константы в качестве формулы массива не забудьте ввести знак равенства. Если не сделать этого, массив будет интерпретирован как строка текста и формула не будет работать должным образом. Кроме того, помните, что можно сочетать текст и числа.
Если константы массива не действуют, проверьте наличие перечисленных ниже причин.
-
Возможно, некоторые элементы разделены неверным знаком. Если запятая или точка с запятой опущена или указана в неверном месте, создание константы может завершиться неудачей либо может быть выведено предупреждение.
-
Возможно, выделен диапазон ячеек, не соответствующий числу элементов в константе. Например, если выделен столбец из шести ячеек для использования в константе с пятью ячейками, в пустой ячейке будет выведено значение ошибки #Н/Д. Наоборот, если выделено слишком мало ячеек, значения, не имеющие соответствующей ячейки, будут пропущены.
В следующих ниже примерах демонстрируется несколько способов, при помощи которых можно применять константы массива в формулах массива. В некоторых из примеров используется функция ТРАНСП, которая выполняет преобразование строк в столбцы и наоборот.
Умножение каждого из элементов массива
-
Создайте новый лист и выделите блок пустых ячеек из четырех столбцов и трех строк.
-
Введите указанную ниже формулу, а затем нажмите сочетание клавиш CTRL+SHIFT+ВВОД:
={1;2;3;4:5;6;7;8:9;10;11;12}*2
Возведение в квадрат элементов массива
-
Выделите блок пустых ячеек из четырех столбцов и трех строк.
-
Введите указанную ниже формулу массива, а затем нажмите клавиши CTRL+SHIFT+ВВОД:
={1;2;3;4:5;6;7;8:9;10;11;12}*{1;2;3;4:5;6;7;8:9;10;11;12}
Можно также ввести следующую формулу массива, где используется оператор возведения в степень (^):
={1;2;3;4:5;6;7;8:9;10;11;12}^2
Транспонирование одномерной строки
-
Выделите столбец из пяти пустых ячеек.
-
Введите указанную ниже формулу, а затем нажмите сочетание клавиш CTRL+SHIFT+ВВОД:
=ТРАНСП({1;2;3;4;5})
Даже если была введена горизонтальная константа массива, функция ТРАНСП преобразует константу массива в столбец.
Транспонирование одномерного столбца
-
Выделите строку из пяти пустых ячеек.
-
Введите указанную ниже формулу, а затем нажмите сочетание клавиш CTRL+SHIFT+ВВОД:
=ТРАНСП({1:2:3:4:5})
Даже если была введена вертикальная константа массива, функция ТРАНСП преобразует константу массива в строку.
Транспонирование двумерного массива
-
Выделите блок ячеек из трех столбцов и четырех строк.
-
Введите указанную ниже константу, а затем нажмите клавиши CTRL+SHIFT+ВВОД.
=ТРАНСП({1;2;3;4:5;6;7;8:9;10;11;12})
Функция ТРАНСП преобразует каждую из строк в последовательность столбцов.
В данном разделе приводятся примеры использования основных формул массива.
Создание массивов и констант массива на основе существующих значений
В следующем примере рассматривается использование формул массива для создания связей между диапазонами ячеек на разных листах. Здесь также объясняется, как создать константу массива на основе такого же набора значений.
Создание массива на основе существующих значений
-
На листе Excel выберите диапазон ячеек C8:E10, а затем введите такую формулу:
={10;20;30:40;50;60:70;80;90}
Не забудьте ввести { (открывающую фигурную скобку) перед числом 10 и} (закрывающую фигурную скобку) после числа 90, так как вы создаете массив чисел.
-
Нажмите клавиши CTRL+SHIFT+ВВОД, чтобы поместить этот массив чисел в диапазон ячеек C8:E10 с помощью формулы массива. На листе ячейки с C8 по E10 должны выглядеть следующим образом:
10
20
30
40
50
60
70
80
90
-
Выделите диапазон ячеек C1–E3.
-
Введите указанную ниже формулу, а затем нажмите сочетание клавиш CTRL+SHIFT+ВВОД.
=C8:E10
В ячейках C1–E3 отобразится массив ячеек 3×3 с теми же значениями, что и в ячейках C8–E10.
Создание константы массива на основе существующих значений
-
Выделите диапазон ячеек C1:C3 и нажмите клавишу F2, чтобы перейти в режим правки.
-
Нажмите клавишу F9, чтобы преобразовать ссылки на ячейки в значения. Значения будут преобразованы в константы массива. Теперь формула должна быть ={10;20;30:40;50;60:70;80;90}.
-
Нажмите сочетание клавиш CTRL+SHIFT+ВВОД, чтобы ввести константу массива в качестве формулы массива.
Подсчет знаков в диапазоне ячеек
В примере ниже демонстрируется, как подсчитать число знаков, включая пробелы, в диапазоне ячеек.
-
Скопируйте всю таблицу и вставьте ее на лист, начиная с ячейки A1.
Данные
Это
группа ячеек,
собранных вместе,
чтобы составить
единое предложение.
Общее количество символов в диапазоне ячеек A2:A6
=СУММ(ДЛСТР(A2:A6))
Содержимое ячейки с наибольшим количеством символов (A6)
=ИНДЕКС(A2:A6;ПОИСКПОЗ(МАКС(ДЛСТР(A2:A6));ДЛСТР(A2:A6);0);1)
-
Выберите ячейку A8 и нажмите клавиши CTRL+SHIFT+ВВОД, чтобы увидеть общее количество символов в диапазоне ячеек A2:A6 (66).
-
Выберите ячейку A10 и нажмите клавиши CTRL+SHIFT+ВВОД, чтобы увидеть содержимое ячейки с наибольшим количеством символов в диапазоне A2:A6 (ячейка A3).
Приведенная ниже формула используется в ячейке A8 для подсчета общего количества символов (66) в ячейках A2–A6.
=СУММ(ДЛСТР(A2:A6))
В данном случае функция ДЛСТР возвращает длину каждой текстовой строки в каждой из ячеек диапазона. Затем функция СУММ складывает эти значения и выводит полученный результат (66).
Поиск n наименьших значений в диапазоне
В данном примере демонстрируется, как найти три наименьших значения в диапазоне ячеек.
-
Введите случайные числа в ячейки A1:A11.
-
Выделите ячейки от C1 до C3. Этот набор ячеек будет содержать результаты, возвращенные формулой массива.
-
Введите указанную ниже формулу, а затем нажмите сочетание клавиш CTRL+SHIFT+ВВОД:
=НАИМЕНЬШИЙ(A1:A11,{1:2:3})
В этой формуле используется константа массива, при помощи которой три раза выполняется функция НАИМЕНЬШИЙ, в результате чего возвращаются три элемента массива, находящегося в ячейках A1:A10, которые имеют наименьшие значения (1, 2 и 3 по возрастанию). Чтобы найти дополнительные значения, следует добавить аргументы в константу. С этой формулой также используются дополнительные функции, например СУММ или СРЗНАЧ. Например:
=СУММ(НАИМЕНЬШИЙ(A1:A10,{1;2;3})
=СРЗНАЧ(НАИМЕНЬШИЙ(A1:A10,{1;2;3})
Поиск n наибольших значений в диапазоне
Чтобы найти наибольшие значения в диапазоне, следует заменить функцию НАИМЕНЬШИЙ функцией НАИБОЛЬШИЙ. Кроме того, в следующем примере используются функции СТРОКА и ДВССЫЛ.
-
Выделите ячейки от D1 до D3.
-
В строке формул введите указанную ниже формулу, а затем нажмите клавиши CTRL+SHIFT+ВВОД.
=НАИБОЛЬШИЙ(A1:A10;СТРОКА(ДВССЫЛ(«1:3»)))
На этом этапе может быть полезно ознакомиться с функциями СТРОКА и ДВССЫЛ. При помощи функции СТРОКА можно создать массив последовательных целых чисел. Например, выберите пустой столбец из 10 ячеек в книге практики, введите эту формулу массива и нажмите CTRL+SHIFT+ВВОД:
=СТРОКА(1:10)
В результате выполнения этой формулы будет создан столбец, содержащий 10 последовательных целочисленных значений. Чтобы понять, где может возникнуть проблема, вставьте строку над диапазоном, содержащим формулу массива (то есть над строкой 1). Ссылки на строки будут изменены и в результате выполнения формулы вы получите числа от 2 до 11. Чтобы избежать возникновения этой проблемы, следует добавить в формулу функцию ДВССЫЛ.
=СТРОКА(ДВССЫЛ(«1:10»))
В функции ДВССЫЛ в качестве аргументов используются текстовые строки (именно поэтому диапазон 1:10 заключен в двойные кавычки). Текстовые значения не изменяются при вставке строк или перемещении формулы массива. В результате при выполнении функции СТРОКА всегда будет создаваться нужный массив целочисленных значений.
Рассмотрим формулу, которую вы использовали ранее — =НАИБОЛЬШИЙ(A5:A14,СТРОКА(ДВССЫЛ(«1:3»))), начиная с внутренних скобок и работая наружу: функция ДВССЫЛ возвращает набор текстовых значений, в данном случае значения от 1 до 3. Функция СТРОКА, в свою очередь, создает массив столбцов из трех ячеек. Функция НАИБОЛЬШИЙ использует значения в диапазоне ячеей A5:A14 и вычисляется три раза для каждой ссылки, возвращаемой функцией СТРОКА. Значения 3200, 2700 и 2000 возвращаются в массив столбцов с тремя ячейками. Если вы хотите найти дополнительные значения, добавьте к функции ДВССЫЛ более широкий диапазон ячеек.
Как и в предыдущих примерах, эту формулу можно использовать и с другими функциями, такими как СУММ и СРЗНАЧ.
Поиск наиболее длинной строки текста в диапазоне ячеек
Вернитесь к предыдущему примеру текстовой строки, введите следующую формулу в пустую ячейку и нажмите CTRL+SHIFT+ВВОД:
=ИНДЕКС(A2:A6;ПОИСКПОЗ(МАКС(ДЛСТР(A2:A6));ДЛСТР(A2:A6);0);1)
Отобразится текст «группа ячеек».
Рассмотрим эту формулу подробнее, начиная с элементов в скобках. Функция ДЛСТР возвращает длину каждого элемента в диапазон ячеек A2:A6. Функция МАКС вычисляет наибольшее значение среди этих элементов, соответствующее самой длинной текстовой строке, которая находится в ячейке A3.
Следующие функции немного сложнее. Функция ПОИСКПОЗ вычисляет смещение (относительную позицию) ячейки, которая содержит строку текста максимальной длины. Для этого требуется три аргумента: искомое значение, массив для поиска и тип соответствия. ФункцияПОИСКПОЗ выполняет поиск указанного искомого значения в массиве поиска. В данном случае искомое значение представляет собой строку максимальной длины:
(МАКС(ДЛСТР(A2:A6))
из следующего массива:
ДЛСТР(A2:A6)
Аргумент типа соответствия равен 0. Тип соответствия может иметь значение 1, 0 или -1. Если для аргумента задано значение 1, функция ПОИСКПОЗ возвращает наибольшее значение, которое не превышает искомое значение. Если для аргумента задано значение 0, функция ПОИСКПОЗ возвращает первое значение, равное искомому. Если для аргумента задано значение -1, функция ПОИСКПОЗ ищет наименьшее из значений, которые превышают искомое значение или равны ему. Если тип соответствия не указан, предполагается, что он равен 1.
Наконец, функция ИНДЕКС имеет следующие аргументы: массив, номер строки и номер столбца в этом массиве. Массив образуется диапазоном ячеек A2:A6, функция ПОИСКПОЗ задает адрес ячейки, а последний аргумент (1) указывает, что значение должно быть найдено в первом столбце массива.
В данном разделе приводятся примеры использования более сложных формул массива.
Суммирование диапазона, который содержит значения ошибки
При попытке просуммировать диапазон, содержащий значения ошибки (например, #Н/Д), функция СУММ в Excel не работает. В приведенном ниже примере демонстрируется, как просуммировать значения в диапазоне «Данные», который содержит ошибки.
=СУММ(ЕСЛИ(ЕОШИБКА(Данные);»»;Данные))
Формула создает новый массив, содержащий исходные значения за вычетом любых значений ошибок. Начиная с внутренних функций и работы наружу, функция ЕОШИБКА выполняет поиск ошибок в диапазоне ячеей (Данные). Функция ЕСЛИ возвращает определенное значение, если указанное условие дает в результате значение ИСТИНА, и другое значение, если условие дает в результате значение ЛОЖЬ. В этом случае он возвращает пустые строки («») для всех значений ошибок, так как они оцениваются как ИСТИНА, и возвращает оставшиеся значения из диапазона (Данные), так как они оцениваются как ЛОЖЬ, то есть они не содержат значений ошибок. Функция СУММ затем вычисляет итог для отфильтрованного массива.
Подсчет количества значений ошибки в диапазоне
Формула в этом примере похожа на формулу предыдущего примера, однако она возвращает количество значений ошибки в диапазоне с именем «Данные» вместо исключения таких значений.
=СУММ(ЕСЛИ(ЕОШИБКА(Данные);1;0))
В результате выполнения этой формулы создается массив, в котором для ячеек со значениями ошибки указывается значение 1, а для других ячеек — значение 0. Для получения аналогичного результата указанную формулу можно упростить, удалив третий аргумент функции ЕСЛИ следующим образом.
=СУММ(ЕСЛИ(ЕОШИБКА(Данные);1))
Если этот аргумент не задан и ячейка не содержит значения ошибки, функция ЕСЛИ возвращает значение ЛОЖЬ. Формулу можно упростить еще больше:
=СУММ(ЕСЛИ(ЕОШИБКА(Данные)*1))
Такой вариант формулы допустим, поскольку ИСТИНА*1=1 и ЛОЖЬ*1=0.
Суммирование значений с учетом условий
При выполнении определенных условий может потребоваться вложение значений. Например, в указанной ниже формуле массива суммируются только положительные целые числа в диапазоне с именем «Продажи».
=СУММ(ЕСЛИ(Продажи>0;Продажи))
В результате выполнения функции ЕСЛИ создается массив положительных значений и ложных значений. Функция СУММ будет игнорировать ложные значения, поскольку 0+0=0. Используемый в этой формуле диапазон ячеек может включать любое количество строк и столбцов.
Можно также выполнить суммирование значений с учетом нескольких условий. Например, в следующей формуле массива вычисления выполняются по значениям, которые больше 0 и не меньше 5:
=СУММ((Продажи>0)*(Продажи<=5)*(Продажи))
Следует помнить, что при наличии в указанном диапазоне одной или нескольких ячеек, не являющихся числовыми, эта формула возвратит ошибку.
Доступно создание формул массива с использованием условия типа ИЛИ. Например, можно выполнить сложение значений, которые меньше 5 и больше 15:
=СУММ(ЕСЛИ((Продажи<5)+(Продажи>15);Продажи))
Функция ЕСЛИ возвращает все значения меньше 5 и больше 15, которые затем передаются в функцию СУММ.
В формулах массива нельзя использовать непосредственно функции И или ИЛИ, поскольку эти функции возвращают отдельный результат, ИСТИНА или ЛОЖЬ, а для функций массива требуется массив результатов. Чтобы разрешить эту проблему, воспользуйтесь логикой, показанной в предыдущей формуле. Другими словами, математические операции, такие как сложение и умножение, выполняются в отношении значений, которые отвечают условию ИЛИ или И.
Подсчет среднего значения с исключением нулей
В этом примере демонстрируется, как удалить нулевые значения из диапазона, чтобы затем вычислить для него среднее значение. В формуле используется диапазон данных с именем «Продажи».
=СРЗНАЧ(ЕСЛИ(Продажи<>0,Продажи))
В результате выполнения функции ЕСЛИ создается массив значений, не равных 0, которые затем передаются в функцию СРЗНАЧ.
Подсчет количества различающихся ячеек в двух диапазонах
В данной формуле массива сравниваются значения в двух диапазонах ячеек с именами МоиДанные и ДругиеДанные, в результате чего возвращается количество различающихся ячеек между этими двумя диапазонами. Если содержимое двух диапазонов идентично, формула возвращает 0. Эту формулу можно использовать только для диапазонов ячеек с одинаковым размером и одинаковой размерностью (например, если МоиДанные — это диапазон из 3 строк и 5 столбцов, то диапазон ДругиеДанные тоже должен состоять из 3 строк и 5 столбцов).
=СУММ(ЕСЛИ(МоиДанные=ДругиеДанные;0;1))
В результате выполнения формулы создается массив, имеющий такой же размер, что и сравниваемые диапазоны. Функция ЕСЛИ заполняет массив значениями 0 и 1 (0 для ячеек с различными значениями, 1 — для ячеек с одинаковыми значениями). Затем функция СУММ возвращает сумму значений в массиве.
Эту формулу можно упростить следующим образом:
=СУММ(1*(МоиДанные<>ДругиеДанные))
Подобно формуле, подсчитывающей количество значений ошибки в диапазоне, эта формула работает благодаря тому, что ИСТИНА*1=1, а ЛОЖЬ*1=0.
Поиск позиции максимального значения в диапазоне
Следующая формула массива возвращает номер строки максимального значения в диапазоне с именем «Данные», состоящем из одного столбца:
=МИН(ЕСЛИ(Данные=МАКС(Данные);СТРОКА(Данные);»»))
В результате выполнения функции ЕСЛИ создается новый массив, соответствующий диапазону с именем «Данные». Если соответствующая ячейка содержит максимальное значение в диапазоне, массив будет содержать номер этой строки. В обратном случае массив содержит пустую строку («»). Функция МИН использует полученный массив в качестве своего второго аргумента и возвращает наименьшее значение, соответствующее номеру строки с максимальным значением в диапазоне с именем «Данные». Если диапазон «Данные» содержит одинаковые максимальные значения, формула возвращает строку первого значения.
Если требуется, чтобы формула возвращала фактический адрес ячейки с максимальным значением, воспользуйтесь следующей формулой:
=АДРЕС(МИН(ЕСЛИ(Данные=МАКС(Данные);СТРОКА(Данные);»»));СТОЛБЕЦ(Данные))
Подтверждение
Части этой статьи основаны на серии рубрик «Опытные пользователи Excel», написанных Колином Уилкоксом (Colin Wilcox), а также на главах 14 и 15 из книги «Формулы Excel 2002», написанной Джоном Уокэнбахом (John Walkenbach), бывшим специалистом по Excel со статусом MVP.
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
См. также
Динамические массивы и поведение рассеянного массива
Формулы динамического массива и устаревшие формулы массива CSE
Функция ФИЛЬТР
Функция СЛУЧМАССИВ
Функция ПОСЛЕДОВ
Функция СОРТ
Функция СОРТПО
Функция УНИК
Ошибки #ПЕРЕНОС! в Excel
Оператор неявного пересечения: @
Обзор формул
Как подсчитать сумму значений в ячейках таблицы Excel, наверняка, знает каждый пользователь, который работает в этой программе. В этом поможет функция СУММ, которая вынесена в последних версиях программы на видное место, так как, пожалуй, используется значительно чаще остальных. Но порой перед пользователем может встать несколько иная задача – узнать количество значений с заданными параметрами в определенном столбце. Не их сумму, а простой ответ на вопрос – сколько раз встречается N-ое значение в выбранном диапазоне? В Эксель можно решить эту задачу сразу несколькими методами.
Какой из перечисленных ниже способов окажется для вас наиболее подходящим, во многом зависит от вашей цели и данных, с которыми вы работаете. Одни операторы подойдут только для числовых данных, другие не работают с условиями, а третьи не зафиксируют результат в таблице. Мы расскажем обо всех методах, среди которых вы точно найдете тот, который наилучшим образом подойдет именно вам.
Содержание
- Метод 1: отображение количества значений в строке состояния
- Метод 2: применение функции СЧЕТЗ
- Метод 3: использование функции СЧЕТ
- Метод 4: оператор СЧЕТЕСЛИ
- Метод 5: использование оператора СЧЕТЕСЛИМН
- Метод 6: функция СЧИТАТЬПУСТОТЫ
- Заключение
Метод 1: отображение количества значений в строке состояния
Пожалуй, это самый легкий метод, который подойдет для работы с текстовыми и числовыми данными. Но он не способен работать с условиями.
Воспользоваться этим методом крайне просто: выделяем интересующий массив данных (любым удобным способом). Результат сразу появится в строке состояния (Количество). В расчете участвуют все ячейки, за исключением пустых.
Еще раз подчеркнем, что при таком методе учитываются ячейки с любыми значениями. В теории, можно вручную выделить только интересующие участки таблицы или даже конкретные ячейки и посмотреть результат. Но это удобно только при работе с небольшими массивами данных. Для больших таблиц существуют другие способы, которые мы разберем далее.
Другой минус этого метода состоит в том, результат сохраняется лишь до тех пор, пока мы не снимем выделение с ячеек. Т.е. придется либо запоминать, либо записывать результат куда-то отдельно.
Порой бывает, что по умолчанию показатель “Количество” не включен в строку состояния, однако это легко поправимо:
- Щелкаем правой клавишей мыши по строке состояния.
- В открывшемся перечне обращаем вниманием на строку “Количество”. Если рядом с ней нет галочки, значит она не включена в строку состояния. Щелкаем по строке, чтобы добавить ее.
- Все готово, с этого момента данный показатель добавится на строку состояния программы.
Метод 2: применение функции СЧЕТЗ
Данная функция позволяет сделать то же самое, но с одной существенной разницей – полученный результат будет зафиксирован. Остальные минусы предыдущего метода сохраняются, т.е. СЧЕТ3 не работает с условиями.
Функция СЧЕТ3 выполняет задачу по подсчету всех заполненных ячеек в заданном диапазоне (пустые не учитываются). Формула функции может выглядет по-разному:
- =СЧЕТЗ(ячейка1;ячейка2;…ячейкаN)
- =СЧЕТЗ(ячейка1:ячейкаN)
В первом случае функция выполнит подсчет всех перечисленных ячеек. Во втором – определит количество непустых ячеек в диапазоне от ячейки 1 до ячейки N. Обратите внимание, что количество аргументов функции ограничено на отметке 255.
Давайте попробуем применить функцию СЧЕТ3 на примере:
- Выбираем ячейку, где по итогу будет выведен результат подсчета.
- Переходим во вкладку “Формулы” и нажимаем кнопку “Вставить функцию”.Также можно кликнуть по значку «Вставить функцию» рядом со строкой формул.
- В открывшемся меню (Мастер функций) выбираем категорию «Статистические», далее ищем в перечне нужную функцию СЧЕТ3, выбираем ее и нажимаем OK, чтобы приступить к ее настройке.
- В окне «Аргументы функции» задаем нужные ячейки (перечисляя их или задав диапазон) и щелкаем по кнопке OK. Задать диапазон можно как с заголовком, так и без него.
- Результат подсчет будет отображен в выбранной нами ячейке, что изначально и требовалось. Учтены все ячейки с любыми данными (за исключением пустых).
Метод 3: использование функции СЧЕТ
Функция СЧЕТ подойдет, если вы работаете исключительно с числами. Ячейки, заполненные текстовыми значениями, этой функцией учитываться не будут. В остальном СЧЕТ почти идентичен СЧЕТЗ из ранее рассмотренного метода.
Так выглядит формула функции СЧЕТ:
- =СЧЕТ(ячейка1;ячейка2;…ячейкаN)
- =СЧЕТ(ячейка1:ячейкаN)
Алгоритм действий также похож на тот, что мы рассмотрели выше:
- Выбираем ячейку, где будет сохранен и отображен результат подсчета значений.
- Заходим в Мастер функций любым удобным способом, выбираем в категории “Статистические” необходимую строку СЧЕТ и щелкаем OK.
- В «Аргументах функции» задаем диапазон ячеек или перечисляем их. Далее жмем OK.
- В выбранной ячейке будет выведен результат. Функция СЧЕТ проигнорирует все ячейки с пустым содержанием или с текстовыми значениями. Таким образом, будет произведен подсчет исключительно тех ячеек, которые содержат числовые данные.
Метод 4: оператор СЧЕТЕСЛИ
Наконец, мы подошли к функции, которая способна сделать подсчет по определенным условиям. Оператор СЧЕТЕСЛИ создан именно для этой задачи. Все ячейки без данных и те, которые не отвечают заданным пользователем параметрам, данная функция игнорирует.
Синтаксис СЧЕТЕСЛИ типичен для всех операторов, работающих с условиями:
=СЧЕТЕСЛИ(диапазон;критерий)
Диапазон – область ячеек, внутри которой необходимо найти количество совпадений по заданному условию.
Критерий – конкретное условие, совпадение по которому ищет функция. Условие указывается в кавычках, может быть задано как в виде точного совпадения с введенным числом или текстом, или же как математическое сравнение, заданное знаками «не равно» («<>»), «больше» («>») и «меньше» («<»). Также предусмотрена возможность добавить условия «больше или равно» / «меньше или равно» («=>/=<»).
Разберем наглядно применение функции СЧЕТЕСЛИ:
- Давайте, к примеру, определим, сколько раз в столбце с видами спорта встречается слово «бег». Переходим в ячейку, куда нужно вывести итоговый результат.
- Одним из двух описанных выше способов входим в Мастер функций. В списке статистических функций выбираем СЧЕТЕСЛИ и кликаем ОК.
- Окно аргументов несколько отличается от тех, что мы видели при работе с СЧЕТЗ и СЧЕТ. Заполняем аргументы и кликаем OK.
- В поле «Диапазон» указываем область таблицы, которая будет участвовать в подсчете.
- В поле «Критерий» указываем условие. Нам нужно определить частоту встречаемости ячеек, содержащих значение “бег”, следовательно пишем это слово в кавычках. Кликаем ОК.
- Функция СЧЕТЕСЛИ посчитает и отобразит в выбранной ячейке количество совпадений с заданным словом. В нашем случае их 16.
Для лучшего понимания работы с функцией СЧЕТЕСЛИ попробуем изменить условие:
- Давайте теперь определим сколько раз в этом же столбце встречаются любые другие значения, кроме слова «бег».
- Выбираем ячейку, заходим в Мастер функций, находим оператор СЧЕТЕСЛИ, жмем ОК.
- В поле «Диапазон» вводим координаты того же столбца, что и в примере выше. В поле «Критерий» добавляем знак не равно («<>») перед словом «бег».
- После нажатия кнопки OK мы получаем число, которое сообщает нам, сколько в выбранном диапазоне (столбце) ячеек, не содержащих слово «бег». На этот раз количество равно 17.
Напоследок, можно разобрать работу с числовыми условиями, содержащими знаки «больше» («>») или «меньше» («<»). Давайте, например, выясним сколько раз в столбце “Продано” встречается значение больше 350.
- Выполняем уже привычные шаги по вставке функции СЧЕТЕСЛИ в нужную результирующую ячейку.
- В поле диапазон указываем нужный интервал ячеек столбца. Задаем условие “>350” в поле “Критерий” и жмем OK.
- В заранее выбранной ячейке получим итог – 10 ячеек содержат значения больше числа 350.
Метод 5: использование оператора СЧЕТЕСЛИМН
СЧЕТЕСЛИМН – функция, полностью аналогичная СЧЕТЕСЛИ, но позволяет ввести несколько диапазонов с одинаковыми или разными условиями.
Например, нам нужно посчитать количество товаров, которые проданы более 300 шт, а также, товары, чья стоимость более 6000 руб.
Разберем, как это сделать при помощи функцией ЧТОЕСЛИМН:
- В Мастере функций уже хорошо знакомым способом находим оператор СЧЕТЕСЛИМН, который находится все в той же категории “Статические” и вставляем в ячейку для вывода результата, нажав кнопку OK.
- Кажется, что окно настроек функции не отличается от СЧЕТЕСЛИ, но как только мы введем данные первого условия, появятся поля для ввода второго.
- В поле «Диапазон 1» вводим координаты столбца, содержащего данные по продажам в шт. В поле «Условие 1» согласно нашей задаче пишем “>300”.
- В «Диапазоне 2» указываем координатами столбца, который содержит данные по ценам. В качестве «Условия 2», соответственно, указываем “>6000”.
- Нажимаем OK и получаем в итоговой ячейке число, сообщающее нам, сколько раз в выбранных диапазонах встретились ячейки с заданными нами параметрами. В нашем примере число равно 14.
Метод 6: функция СЧИТАТЬПУСТОТЫ
В некоторых случаях перед нами может стоять задача – посчитать в массиве данных только пустые ячейки. Тогда крайне полезной окажется функция СЧИТАТЬПУСТОТЫ, которая проигнорирует все ячейки, за исключением пустых.
По синтаксису функция крайне проста:
=СЧИТАТЬПУСТОТЫ(диапазон)
Порядок действий практически ничем не отличается от вышеперечисленных:
- Выбираем ячейку, куда хотим вывести итоговый результат по подсчету количества пустых ячеек.
- Заходим в Мастер функций, среди статистических операторов выбираем “СЧИТАТЬПУСТОТЫ” и нажимаем ОК.
- В окне «Аргументы функции» указываем нужный диапазон ячеек и кликаем по кнопку OK.
- В заранее выбранной нами ячейке отобразится результат. Будут учтены исключительно пустые ячейки и проигнорированы все остальные.
Заключение
Программа Microsoft Excel – крайне мощный инструмент, способный решать множество проблем самого разного уровня сложности. Даже в простейшей задаче по подсчету количества значений программа может сильно облегчить жизнь пользователю, причем несколькими разными способами. На каком именно способе подсчета количества значений из перечисленных в данной статье остановиться – зависит от ваших целей и задач.