Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Excel 2010 Excel 2007 Excel для Mac 2011 Еще…Меньше
При вводе формулы массивачаще всего используется диапазон ячеек на вашем компьютере, но это не нужно. Вы также можете использовать константымассива , значения, которые вы просто вводите в панели формул внутри скобок: {}. После этого вы сможете назвать константу, чтобы использовать ее еще раз.
Константы можно использовать как в формулах массива, так и в самих себе.
-
В формуле массива введите открываемую скобку, нужные значения и закрываюю скобку. Пример: =СУММ(A1:E1*{1;2;3;4;5})
Константа находится внутри скобок ({)}, и да, вы действительно введите эти скобки вручную.
-
Введите оставшуюся часть формулы и нажмите CTRL+SHIFT+ВВОД.
Формула будет выглядеть так: {=СУММ(A1:E1*{1;2;3;4;5})}и результаты будут выглядеть так:
Формула умножает A1 на 1, B1 на 2 и т. д., что не нужно помещает 1,2,3,4,5 в ячейки на этом сайте.
Ввод значений в столбец с помощью константы
Чтобы ввести значения в одном столбце, например 3 ячейки в столбце C, необходимо:
-
Выделите нужные ячейки.
-
Введите знак равно и константу. Значения в константах разделяются запятой, а не запятой. Если вы вводите текст, заведите его двойными кавычками. Например: ={«Квартал 1″;» Квартал2″;» Квартал 3″}
-
Нажмите клавиши CTRL+SHIFT+ВВОД. Константа выглядит так:
В данном случае это одномерная вертикальная константа.
Ввод значений в строке с помощью константы
Чтобы быстро ввести значения в одной строке, например ячейки F1, G1 и H1, вы можете:
-
Выделите нужные ячейки.
-
Введите знак равно и константы, но в этот раз значения разделяйте запятой, а не запятой. Например: ={1;2;3;4,5}
-
Нажмите CTRL+SHIFT+ВВОД, и константа будет выглядеть так:
Это одномерная горизонтальная константа.
Использование константы для ввода значений в нескольких столбцах и строках
-
Вы выберите нужные ячейки.
Убедитесь, что количество строк и столбцов, которые вы выбрали, соответствует количеству значений в константе. Например, если константа будет записывать данные в четыре столбца и три строки, выберите столько столбцов и строк.
-
Введите знак равно и константу. В этом случае разделять значения в каждой строке запятой и использовать запятую в конце каждой строки. Например:
={1;2;3;4:5;6;7;8:9;10;11;12}
-
Нажмите CTRL+SHIFT+ВВОД и:
Это двумерная константа, которая заполняет столбцы и строки. Если вам интересно, вы не можете создать трехмерную константу, то есть не сможете вложенность константы в другую.
Использование константы в формуле
Теперь, когда вы знакомы с константами массива, вот рабочий пример.
-
В любой пустой ячейке введите (или скопируйте и введите) эту формулу и нажмите CTRL+SHIFT+ВВОД:
=СУММ(A1:E1*{1;2;3;4;5})
В ячейке A3 появится значение 85.
Что произошло? Вы перемножили значение в ячейке A1 на 1, значение в ячейке B2 на 2 и так далее, после чего функция СУММ добавила эти результаты. Можно также ввести формулу =СУММ(A1*1;B1*2;C1*3;D1*4;E1*5)
При этом можно ввести оба набора значений в качестве констант массива:
=СУММ({3;4;5;6;7}*{1;2;3;4;5})
Чтобы сделать это, скопируйте формулу, выйдите из пустой ячейки и введите формулу в формулу и нажмите CTRL+SHIFT+ВВОД. Вы увидите такой же результат.
Примечания: Если константы не работают, наймите их.
-
Убедитесь, что значения следует разделять с помощью соответствующих символов. Если опустить запятую или запятую либо поместить ее в неправильное место, константа массива может выглядеть неправильно или вы увидите предупреждение.
-
Возможно, вы выбрали диапазон ячеек, не совпадающие с числом элементов в константе. Например, если выбрать столбец из шести ячеек для использования с константой из пяти ячеек, в пустой ячейке появится #N/Д. Если не выбрано достаточно ячеек, Excel опустить значения, не соответствующие ячейке.
-
Дополнительные информацию о формулах массива:
-
Ввод формулы массива
-
Расширение диапазона формулы массива
-
Удаление формулы массива
-
Правила изменения формул массива
-
К началу страницы
Нужна дополнительная помощь?
Массив значений (или константа массива или массив констант) – это совокупность чисел или текстовых значений, которую можно использовать в
формулах массива
. Константы массива необходимо вводить в определенном формате, например, для чисел {1:2:3:4:5} или для текстовых значений {«Север»:»ЮГ»:»Восток»:»Запад»}.
В обычную формулу можно ввести ссылку на ячейку, содержащую значение, или на само значение, называемое также константой. Подобным образом в
формулу массива
можно ввести или ссылку на массив, или
массив значений
, содержащихся в ячейках (в справке EXCEL его называют
константой массива
).
Константы массива
необходимо вводить в определенном формате.
Создание одномерного массива констант
Перед созданием
Массива констант
посмотрим повнимательнее на диапазон ячеек, содержащий обычные значения (см.
Файл примера
)
-
в диапазон ячеек
A
1:
A
5
введите, например, 5 последовательных чисел от 1 до 5.
-
в ячейке
B1
введите формулу
=A1:A5
;
-
в
Строке формул
выделите
A1:A5
и нажмите клавишу
F9
; -
получим некую запись {1:2:3:4:5}, представляющую собой набор значений из диапазона
A1:A5
Этот набор значений, как и
формулы массива
, обрамлен в фигурные скобки, сами значения разделены двоеточиями. Если бы значения были размещены в строке (в диапазоне
A1:E1
), а не в столбце, то значения были бы разделены точкой с запятой {1;2;3;4;5}.
Создадим
константу массива
в ячейке
B2
.
Для этого введем в ячейку выражение
={1:2:3:4:5}
и нажмем
ENTER
.
Массив значений
не заключается в скобки автоматически, как
формулы массива
после нажатия
CTRL+SHIFT+ENTER
. Это необходимо делать вручную. В ячейке отразится только первое значение массива, т.е. 1.
Обычно
массив значений
не вводят в одну ячейку, т.к. в этом случае невозможно вытащить отдельные значения. Чтобы отобразить все значения нашего
массива значений
нужно выделить 5 ячеек в столбце (например,
B1:B5
), в
Строке формул
ввести выражение
={1:2:3:4:5}
и нажать
CTRL+SHIFT+ENTER
.
Теперь попробуем удалить один элемент массива, например из ячейки
B
3
. Получим предупреждение «
Нельзя изменить часть массива
» — это определенного вида защита массива.
Чтобы избежать утомительного ввода
последовательных чисел
для
вертикального
массива констант можно воспользоваться формулой
=СТРОКА(1:5)
. Записав ее любой пустой ячейке, выделите ее в строке формул и нажмите
F9
, а затем нажмите
ENTER
. Получите массив констант
{1:2:3:4:5}
. Скопируйте содержимое ячейки в буфер обмена (
CTRL+C
), затем выделите вертикальный диапазон ячеек, соответствующий размерности массива, вставьте в активную ячейку содержимое
Буфера обмена
и нажмите
CTRL+SHIFT+ENTER.
Чтобы избежать утомительного ввода последовательных чисел для горизонтального массива констант используйте формулу
=ТРАНСП(СТРОКА(1:5))
или
=СТОЛБЕЦ(A:E)
. Получите массив констант
={1;2;3;4;5}
. Значения массива будут разделены точкой с запятой.
Применение массива констант
А. Умножение векторов (столбец на столбец, строку на строку)
С помощью
формулы массива
умножим столбец значений (
B
2:
B
6
) на
массив констант
{1:2:3:4:5} и просуммируем.
Массив констант
записан в «вертикальном» виде с использованием двоеточия, т.е. также представляет собой столбец. Размерности столбца и массива должны совпадать.
=СУММ(B2:B6*{1:2:3:4:5})
После ввода формулы необходимо нажать
CTRL+SHIFT+
ENTER
.
Формула массива
сначала выполнит поэлементное умножение значений из столбца и констант из массива. Эквивалентом данной формулы является следующее обычное выражение:
=СУММ(B2*1;B3*2; B4*3; B5*4; B6*5)
В последнюю очередь выполняется сложение значений при помощи функции
СУММ()
.
Б. Проверка значений
Проверим, равно ли значение в ячейке
А1
одному из определенных значений: 4, 6 или 9.
=ИЛИ(A1={4;6;9})
После ввода формулы нет необходимости нажимать
CTRL+SHIFT+ENTER
. Такая запись может существенно сократить время создания формулы по сравнению с использованием вложенных функций
ЕСЛИ()
.
Именование массива констант
Массиву констант
можно присвоить
Имя
. Обычно так поступают с константами, образующими группу однотипных значений, например последовательности с конечным количеством элементов
={1:2:3}
.
Чтобы присвоить
массиву констант
имя необходимо сделать следующее:
-
на вкладке
Формулы
в группе
Определенные имена
выберите команду
Присвоить имя
. -
В поле
Имя
введите
Массив123
. -
В поле
Диапазон
введите
массив констант
(не забудьте ввести скобки вручную), например
{1:2:3}
; - Нажмите кнопку ОК.
Пример, найдем
сумму 3-х наибольших значений
, записав формулу
=СУММПРОИЗВ(НАИБОЛЬШИЙ(A1:A10;Массив123))
.
Предполагается, что в диапазоне
A1:A10
имеется список числовых значений.
Создание двумерного массива констант
Чтобы создать двумерный массив констант необходимо сделать следующее:
-
выделите в книге диапазон ячеек из четырех столбцов и трех строк (
A1:D3
). -
в активной ячейке (
А1
), в
Cтроке формул
введите выражение
={1;2;3;4: 5;6;7;8: 9;10;11;12}
-
нажмите сочетание клавиш
CTRL+SHIFT+
ENTER
Мы получили двумерный массив констант, у которого нельзя удалить ни один элемент по отдельности – только все сразу. Как видно из формулы, строки в массиве разделяются двоеточиями, а элементы в строке – точкой с запятой.
Применение двумерного массива констант
Создадим небольшой
Справочник
, позволяющий по номеру месяца выводить его название.
Присвоим
Имя
Месяцы
двумерному массиву:
={1;»январь»:2;»февраль»:3;»март»:4;»апрель»:5;»май»:6;»июнь»: 7;»июль»:8;»август»:9;»сентябрь»:10;»октябрь»:11;»ноябрь»:12;»декабрь»}
Чтобы избежать утомительного ввода этого массива создайте два столбца, один с числами от 1 до 12, другой с названиями месяцев (см. статью
Текстовые последовательности
). Затем, в
Строке формул
введите ссылку на этот диапазон, нажмите
F9
и скопируйте в
Буфер обмена
.
Теперь записав формулу
=ВПР(A2;Месяцы;2)
, где в ячейке
A2
— номер месяца, получим желаемый результат.
Для желающих получить дополнительную информацию о константах массива —
]]>
ссылка на статью сайта Microsoft на английском языке
]]> .
An array constant is a hard-coded set of values provided in an Excel formula. Array constants appear in curly braces {} like this:
{"red","blue","green"}
Array constants are often used in array formulas to create or manipulate several values at once, rather than a single value. For example, the LARGE function can be used with an array constant like this to get the top 3 values in B3:B11:
=LARGE(B3:B11,{1,2,3})
In many cases, formulas that use array constants do not require Ctrl+Shift+Enter, even though they are in fact array formulas.
Multiple results
When you provide an array constant to an Excel function as an argument, you will often receive more than one result in an array. You’ll want deal with these arrays using another function that handles arrays natively. In the example shown, the LARGE function returns 3 values, which are «caught» by the SUM function, which returns the sum as a final result:
=SUM(LARGE(B3:B11,{1,2,3}))
Array constant limitations
The curly braces surrounding an array constant signify «constant» to Excel’s formula parsing engine. As a result, you can’t include references or functions in an array constant, since doing so would make an array constant variable (i.e. not a constant).
More examples
The formula in the screenshot is explained here.
Another example of array constants inside the COUNTIFs function.
OMG…..how easy! I will never do anything other than a Pivot Table if needed.
Get Training
Quick, clean, and to the point training
Learn Excel with high quality video training. Our videos are quick, clean, and to the point, so you can learn Excel in less time, and easily review key topics when needed. Each video comes with its own practice worksheet.
View Paid Training & Bundles
В Microsoft Excel можно создавать массивы, которые не хранятся в диапазонах ячеек. Их принято называть массивами констант. В этом уроке Вы узнаете, что же такое массивы констант и как с ними работать в Excel.
Коротко о массивах констант
Чтобы создать массив констант, введите его элементы и заключите их в фигурные скобки. Например, на рисунке ниже представлен массив, состоящий из 6 констант:
={1;2;3;4;5;6}
Такой массив можно использовать в формулах Excel. Например, следующая формула суммирует значения этого массива:
=СУММ({1;2;3;4;5;6})
В формулах можно обрабатывать сразу несколько массивов. Например, следующая формула вернет максимальное значение, которое получится в результате сложения двух массивов констант:
=МАКС({1;2;3;4;5;6}+{7,8,9,10,11,12})
Массивы констант могут содержать числа, текст, логические значения и значения ошибки #Н/Д:
={12;"Текст";ИСТИНА;ЛОЖЬ;#Н/Д}
У Вас может возникнуть резонный вопрос: Зачем нужен такой массив? Отвечу на него в виде примера.
Пример применения массива констант в Excel
На рисунке ниже приведен список студентов, которые получили определенные оценки:
Наша задача перевести оценку из числового вида в ее словесное описание и вывести соответствующие значения в диапазоне C2:C7. В данном случае создавать отдельную табличку для хранения текстового описания оценок не имеет смысла, поэтому выгоднее создать следующий массив констант:
={"";"Неудовл.";"Удовл.";"Хорошо";"Отлино"}
В данном случае первый элемент массива содержит пустую строку, поскольку предполагается, что оценки 1 быть не может.
Тогда формула, возвращающая нужный нам результат, будет выглядеть следующим образом:
В этом примере функция ИНДЕКС возвращает значение элемента из массива констант, положение которого задано порядковым номером (оценкой).
Данная формула не является формулой массива, хоть она и содержит массив. Поэтому при ее вводе достаточно нажать клавишу Enter.
Конечно же, мы в силах скопировать данную формулу в остальные ячейки и получить нужный нам результат:
Но грамотнее будет использовать многоячеечную формулу массива. Выглядеть она будет следующим образом:
Мы можем пойти еще дальше и присвоить массиву констант имя. Имя назначается точно так же, как и обычной константе, через диалоговое окно Создание имени:
Не забывайте указывать знак равенства в поле Диапазон, иначе Excel воспримет массив как текстовую строку.
Теперь формула выглядит менее пугающей:
Как видите, в некоторых случаях массивы констант бывают даже очень полезны.
Итак, в данном уроке Вы познакомились с массивами констант и их применением в Excel. Если желаете получить еще больше информации о массивах, читайте следующие статьи:
- Знакомство с формулами массива в Excel
- Многоячеечные формулы массива в Excel
- Одноячеечные формулы массива в Excel
- Редактирование формул массива в Excel
- Применение формул массива в Excel
- Подходы к редактированию формул массива в Excel
Оцените качество статьи. Нам важно ваше мнение:
Формула массивов в Excel – это формула, которая используют в качестве входящего параметра целый массив, а не отдельную ячейку. Формулу массива можно рассматривать как множество обычных, упакованных в одну супер формулу. В сегодняшней статье мы познакомимся с синтаксисом формул массивов: от написания простейших до более мощных версий. Прежде, чем начать, давайте разберемся, что такое массив.
Что такое массив?
В Excel массив – это диапазон ячеек. Ниже приведены несколько примеров. Массивы в Excel бывают двухмерные и одномерные. Одномерные в свою очередь делятся на горизонтальные и вертикальные.
Когда мы говорим о формулах массива, мы подразумеваем, что это нормальная формула Excel (СУММ, МАКС, СЧЁТЕСЛИ…), но немного измененная, чтобы принять в качестве входных данных массив или набор массивов. Это то, что лежит в основе формул массива и делает его столь мощным.
Формула массива вводится определенным образом – простой ввод работать не будет. Давайте рассмотрим пример. Откройте пустой рабочий лист и введите несколько значений, как показано на рисунке. Теперь предположим, что вам необходимо определить адрес ячейки с наименьшим значением, для этого введите формулу, указанную ниже и нажмите сочетание клавиш Ctrl + Shift + Enter.
=АДРЕС(МИН(ЕСЛИ((A1:A9)=МИН(A1:A9);СТРОКА(A1:A9);»»));1)
Результатом в этом случае будет адрес ячейки с наименьшим значением в данном диапазоне. Как вы можете увидеть, при обновлении данных в диапазоне, результат тоже меняется. Подобного эффекта можно также добиться с помощью обычной формулы =АДРЕС(ПОИСКПОЗ(МИН(A1:A9);A1:A9;0);1). Однако ж мы только начали изучение, в дальнейшем вы обнаружите, что некоторые вещи можно делать только с помощью формулы массива, либо с большим количеством обычных формул.
Части формул массивов в Excel
Формулы массива можно рассматривать как комбинацию массивов констант, оператора массива и диапазона массива. Воспринимайте их в качестве замены нескольких простых формул или как сокращенную формулу, в которой присутствует вся необходимая информация для проведения сложной операции. Таким образом формула массива использует массивы как часть аргументов. Внутренне она будет просматривать каждый массив как аргумент, выполняя при этом операции и генерируя единый результат.
(Прежде чем мы пойдем дальше, убедитесь, что при вводе формул массива, вы вводите Ctrl + Shift + Enter, а не обычный Enter, как при обычных формулах).
Массив констант в формулах массивов
Массив констант – это набор статических значений. Эти значения не ссылаются на другие ячейки или диапазоны. Поэтому они будут всегда одинаковыми независимо от изменений происходящих на листе.
Горизонтальный массив констант
Горизонтальный массив констант вводиться как последовательность чисел, разделенных точкой с запятой (;), заключенных в фигурные скобки. Например: {1;2;3;4;5}. Горизонтальные массивы могут быть использованы в качестве входных данных для формулы массива. Они также могут быть введены в таблицу, как показано ниже.
Вертикальный массив констант
В отличие от горизонтального, в вертикальном массиве констант значения разделяются двоеточием (:) и также заключаются в фигурные скобки. Например: {1:2:3:4:5}.
Операторы массива в формулах массивов
Оператор массива сообщает формуле, какую операцию необходимо совершить над массивами, предоставленными в качестве массива. К тому же, вы можете использовать операторы И (альтернативный вариант написания — *) и ИЛИ альтернативный вариант написания — +).
Оператор массива И
Оператор И возвращает значение ИСТИНА в случаях, когда все условия выражения возвращают значение ИСТИНА. Пример ниже показывает использование оператора массива И (*) между массивами:
Оператор массива ИЛИ
Оператор ИЛИ возвращает значение ИСТИНА, если хотя бы один из условий выражения возвращает значение ИСТИНА. Пример ниже показывает использование оператора массива ИЛИ (+) между массивами:
Что такое диапазон массива?
Диапазон массива вводиться точно также, как и обычная формула (например, A1:A10). Их не обязательно сразу же заключать в скобки (Например, =СУММ(ЕСЛИ((A1:A10)=10;10;»»)) ) или (=СУММ(ЕСЛИ((A1:A10=10);10;»»))). Но для упрощения отладки, я предпочитаю сразу установить скобки в формулах.
Синтаксис формул массивов
Возможно, вы уже получили кое-какое представление об этой части статьи. Все что вам нужно, чтобы написать формулу массива – это использовать в качестве аргументов массив и нажать сочетание клавиш Ctrl + Shift + Enter. Давайте рассмотрим некоторые основные моменты синтаксиса формул массивов.
Сортировка с помощью формулы массива
Скажем, у вас есть набор данных в ячейках D2:D10 и вы хотите отсортировать их в порядке возрастания. Вы уже наверное догадались, что нам понадобиться функция НАИМЕНЬШИЙ(), которая возвращает n-ое наименьшее значение и заданного диапазона. Нам также понадобиться диапазон, где мы будем производить вычисления.
Обычная функция НАИМЕНЬШИЙ для одной ячейки выглядит следующим образом =НАИМЕНЬШИЙ(D2:D10;1). Такая формула вернет нам наименьшее значение диапазона D2:D10. Но нам необходимо скопировать эту функцию во все остальные ячейки и внести изменения во второй аргумент, чтобы получить отсортированный список. Для начала выделим диапазон, в котором мы хотим увидеть список, затем вводим формулу в первую ячейку и жмем Ctrl + Shift + Enter. Формула будет скопирована на весь диапазон, результатом станет отсортированный список.
Поиск уникального значения, отвечающего определенным условиям
Предположим, мы хотим выяснить имя менеджера с наибольшими продажами. Вот где обнаруживается истинная мощь формул массивов. Ели бы мы использовали обычные формулы, нам понадобилось бы столько же строк, сколько менеджеров, если не больше. Однако мы можем сделать тоже самое в одну формулу массива =СМЕЩ(A1;МАКС(ЕСЛИ(СУММЕСЛИ((A2:A10);(A2:A10);(D2:D10))=МАКС(СУММЕСЛИ((A2:A10);(A2:A10);(D2:D10)));СТРОКА(A2:A10);»»))-1;0). То, что мы делаем здесь – это сравниваем сумму продаж конкретного менеджера с суммой продаж максимального менеджера. Если условие истинно, возвращает номер строки. Функция ЕСЛИ возвращает массив номеров строк, относящихся к менеджеру с наибольшим показателем продаж, в противном случае возвращается пустота. С помощью функции МАКС мы находим строку, где происходит последнее вхождение имени, а затем с помощью функции СМЕЩ возвращаем имя из этой строки.
Консолидация данных по более чем одному условию
Мы также можем использовать формулу массива для поиска суммы продаж менеджера с максимальными продажами. Функция ЕСЛИ возвращает массив отдельных сумм продаж менеджера совпадающего с менеджером с максимальными продажами, иначе 0. Затем мы используем функцию СУММ для суммирования всех этих значений массива.
Еще один пример консолидации данных по условию
Теперь попробуйте сами. Дайте мне сумму продаж всех записей, в которых 1) менеджер — Фёдор Абрамов И продукт Книги 2) Продажи >= 500. Подумайте минутку.
Мы можем достичь этого с помощью формулы массива =СУММ(ЕСЛИ(((A2:A10=»Фёдор Абрамов»)*(B2:B10=»Книги»))+((D2:D10>=500));D2:D10;0)). Так что же мы здесь сделали? Мы проверили три условия – первые два были скомбинированы с помощью оператора И (*) и третье было добавлено с помощью оператора ИЛИ (+). В результате получилась структурированная формула массива, где были указаны все три условия в качестве аргумента функции ЕСЛИ. Функция ЕСЛИ в свою очередь генерирует массив со значениями из четвертого столбца, когда оно принимает значение ИСТИНА и 0, если ЛОЖЬ. Результат, конечно, представляет собой сумму продаж отвечающим всем трем, указанным выше, условиям.
Вот некоторые из основных примеров использования формул массива. Вы можете скачать рабочую книгу с некоторыми примерами формул массива, которые предлагают мощный способ работы с данными и при разумном использовании может значительно сэкономить время.
Константы массива – это компоненты формул массива, которые создаются путем ввода списка элементов внутри фигурных скобок ({ }
).
Скобки при этом вводятся вручную. Например, ={1;2;3;4;5}
.
Константы массива могут содержать числа, текст, логические значения (ИСТИНА и ЛОЖЬ), а также значения ошибок. При этом числа можно использовать в целочисленном, десятичном или экспоненциальном формате. А текст необходимо заключать в двойные кавычки («).
Константы массива НЕ МОГУТ содержать дополнительные массивы, формулы или функции. Числовые значения НЕ МОГУТ содержать знаки процента, валюты, запятые или кавычки.
При горизонтальном массиве (строка) элементы списка разделены точкой с запятой.
При вертикальном массиве (столбец) элементы списка разделены двоеточием.
При двумерном массиве элементы строк разделены точкой с запятой запятыми, а столбцы – двоеточием. Между собой элементы отделяются пробелом.
Подстановка «из ниоткуда»
Это несложный, но интересный прием, позволяющий подставлять данные из небольших таблиц без использования ячеек вообще. Его суть в том, что можно «зашить» массив подстановочных значений прямо в формулу. Рассмотрим несколько способов это сделать.
Функция ВЫБОР
Если нужно подставить данные из одномерного массива по номеру, то можно использовать функцию ИНДЕКС или ее более простой и подходящий, в данном случае, аналог – функцию ВЫБОР (CHOOSE). Она выводит элемент массива по его порядковому номеру. Так, например, если нам нужно вывести название дня недели по его номеру, то можно использовать вот такую конструкцию
Это простой пример для начала, чтобы ухватить идею о том, что подстановочная таблица может быть вшита прямо в формулу. Теперь давайте рассмотрим пример посложнее, но покрасивее.
Массив констант в формуле
Предположим, что у нас есть список городов, куда с помощью функции ВПР (VLOOKUP)
подставляются значения коэффициентов зарплаты из второго столбца желтой таблицы справа:
Хитрость в том, что можно заменить ссылку на диапазон с таблицей $E$3:$F$5 массивом констант прямо в формуле, и правая таблица будет уже не нужна. Чтобы не вводить данные вручную можно пойти на небольшую хитрость.
Выделите любую пустую ячейку. Введите с клавиатуры знак «равно» и выделите диапазон с таблицей – в строке формул должен отобразиться его адрес:
Выделите с помощью мыши ссылку E3:F5 в строке формул и нажмите клавишу F9 – ссылка превратится в массив констант:
Осталось скопировать получившийся массив и вставить его в нашу формулу с ВПР, а саму таблицу удалить за ненадобностью:
Массив констант с именем
Развивая идею предыдущего способа, можно попробовать еще один вариант – сделать именованный массив констант в оперативной памяти, который использовать затем в формуле. Для этого нажмите на вкладке Формулы (Formulas) кнопку Диспетчер Имен (NameManager). Затем нажмите кнопку Создать, придумайте и введите имя (пусть будет, например, Города) и в поле Диапазон (Reference) вставьте скопированный в предыдущем способе массив констант:
Нажмите ОК и закройте Диспетчер имен. Теперь добавленное имя можно смело использовать на любом листе книги в любой формуле – например, в нашей функции ВПР:
Компактно, красиво и, в некотором смысле, даже защищает от шаловливых ручек непрофессионалов
Ссылки по теме
-
Как использовать функцию ВПР (VLOOKUP) для подстановки данных из одной таблицы в другую
-
Как использовать приблизительный поиск у функции ВПР (VLOOKUP)
-
Вычисления без формул
Это глава из книги: Майкл Гирвин. Ctrl+Shift+Enter. Освоение формул массива в Excel.
Предыдущая глава Оглавление Следующая глава
Ранее в этой книге вам неоднократно встречались массивы констант. Действительно, каждый раз, когда вы проводили оценку работы элементов формул, используя клавишу F9, вы видели пример массива констант. Например, в первой формуле массива, созданного в главе 2 (снова показан на рис. 7.1), вы можете выделить D2:D5-C2:C5, и нажав F9, увидеть результирующий массив {3;–8;7;6}. Однако, ранее, оценив массив, вы сразу же нажимали Ctrl+Z, чтобы оставить внутри формулы не жесткий код, а ссылку. Если бы вы не использовали Ctrl+Z, вы бы создали массив констант, который бы не изменялся при изменении исходных данных на листе. В этой главе вы узнаете о ситуациях, в которых использование массива констант дает преимущества.
Рис. 7.1. Выделите массив (слева), нажмите F9 (справа), и получите массив констант
Скачать заметку в формате Word или pdf, примеры в формате Excel2013
Рассмотрим синтаксис, используемый для создания массива констант, и примеры, иллюстрирующие три типа массива констант, с которыми вы можете столкнуться в Excel.
Вертикальный массива констант (рис. 7.2). В ячейке А6 создайте ссылку на массив =А2:А4, и нажмите F9. Вы увидите массив элементов, расположенный в фигурных скобках; текст всегда отображается в кавычках; двоеточие – разделитель, указывающий, что элементы расположены в столбце друг под другом.
Рис. 7.2. Вертикальный диапазон ячеек: выделите ссылку (слева) и нажмите F9 (справа)
Горизонтальный массив констант (рис. 7.3). В ячейке А6 создайте ссылку на массив =А2:В2, и нажмите F9. Вы увидите массив элементов, расположенный в фигурных скобках; текст всегда отображается в кавычках; цифры отображаются просто цифрами; точка с запятой, – разделитель, указывающий, что элементы расположены в одном ряду, в соседних столбцах.
Рис. 7.3. Горизонтальный диапазон ячеек: выделите ссылку (слева) и нажмите F9 (справа)
Прямоугольный массив констант (рис. 7.4). В ячейке А6 создайте ссылку на массив =А2:В4, и нажмите F9. Вы увидите массив элементов, расположенный в фигурных скобках; текст всегда отображается в кавычках; цифры отображаются просто цифрами; используются два разделителя: точка с запятой – для перехода к соседней колонке в той же строке, и двоеточие – для перехода в первую колонку новой строки.
Рис. 7.4. Прямоугольный диапазон ячеек: выделите ссылку (слева) и нажмите F9 (справа)
У вас может возникнуть вопрос, существуют ли ситуации, когда массив констант будет полезен? Не входит ли он в противоречие с золотым правилом Excel: если исходные данные могут измениться, разместите их на листе и сошлитесь на них внутри формулы; если исходные данные не изменятся, жестко закодируйте их в формуле. Польза от массива констант заключается в том, что формула с ним не требует нажатия Ctrl+Shift+Enter. Таким образом, если исходные данные не изменятся, используйте массив констант.
Рассмотрим пример из игры в гольф (рис. 7.5). Цель – найти сумму трех лучших (минимальных) результатов, при этом не учитывать 4-й и последующие результаты, если они равны третьему (видно, что в нашем примере как раз такой случай с числом 70). Для решения задачи отлично подойдет функция НАИМЕНЬШИЙ, аргумент k которой позволит выбрать требуемые значения: k = 1 даст минимальное значение, k = 2 – второе и т.д. Как видно на рис. 7.5, сумма трех наименьших при k = 1, 2, 3 дает правильный ответ. Отличная формула, имеющая, пожалуй, лишь тот недостаток, что потребует времени на написание, если вам нкжно отобрать, скажем, 10 минимальных значений.
Рис. 7.5. Аргумент k функции НАИМЕНЬШИЙ позволяет получить k-ое наименьшее значение
Чтобы создать более компактную формулу можно поместить массив в аргумент функции (рис. 7.6). И здесь вам пригодится массив констант {1,2,3}. Вы можете использовать жесткий код, поскольку число отбираемых значений меняться не будет. Поскольку аргумент k имеет три значения, функция НАИМЕНЬШИЙ также вернет три значения, которые и будут просуммированы. Чтобы убедиться в этом, выделите аргумент число1 функции СУММ и нажмите F9 (рис. 7.7). Видно, что, хотя третье наименьшее значение имеют два равных числа 70, функция НАИМЕНЬШИЙ(B3:B8;{1;2;3}) вернула только три числа.
Рис. 7.6. Массив констант помещен в k аргумент функции НАИМЕНЬШИЙ
Рис. 7.7. Функция НАИМЕНЬШИЙ возвращает три наименьших значения, исключая «лишние» 70
Примечание: не важно, зададите ли вы массив констант горизонтальным {1;2;3} или вертикальным {1:2:3}.
Для ввода формулы не потребовались Ctrl+Shift+Enter. Однако, если вы вместо массива констант в аргументе k, используете ссылку на диапазон (рис. 7.8), ввод формулы потребует нажатия Ctrl+Shift+Enter (в противном случае вы получите ошибку #ЗНАЧ!). Заметим, что Ctrl+Shift+Enter можно всё же избежать, если воспользоваться формулой: =СУММПРОИЗВ(НАИМЕНЬШИЙ(B3:B8;D3:D5))
Рис. 7.8. Использование ссылки на диапазон D3:D5 в аргументе k потребует Ctrl+Shift+Enter
Примечание: HELP функции НАИМЕНЬШИЙ не содержит упоминания, что аргумент k может быть представлен массивом констант. Это является очередным свидетельством того, насколько плохо задокументированы возможности Excel по работе с формулами массива. Я узнал об этом на форуме MrExcel и многолетних изысканий методом проб и ошибок.
Если вам потребуется просуммировать все разделенные (ничейные) результаты, можно воспользоваться обычной функцией СУММЕСЛИ, а не формулой массива (рис. 7.9).
Рис. 7.9. Формула суммирует три минимальных балла, в том числе равные
Следующий пример демонстрирует использование функции НАИБОЛЬШИЙ (рис. 7.10). Цель – суммировать три самых длительных полета бумеранга у каждого участника.
Рис. 7.10. Массив констант в аргументе k функции НАИБОЛЬШИЙ
А что, если вы хотите, чтобы формула суммировала переменное число максимальных или минимальных значений? На рис. 7.11 приведены две формулы, которые суммируют три наибольших значения. Формула [1] исключает деленные третьи значения, формула [2] включает таковые. Отличие этих формул от рассмотренных ранее заключается в том, что число максимальных значений не жестко зашито в формулу, а определяется значениями в ячейках D3 и D6. При изменении чисел в ячейках D3 и D6, сумма в ячейках Е3 и Е6 будет изменяться. На рис. 7.12 показаны суммы для двух максимальных значений.
Рис. 7.11. Если изменить значения в ячейках D3 и D6, формула вернет новое значение
Рис. 7.12. Формулы 1 и 2 дают одинаковые результаты для двух максимальных значений, так как среди вторых значений нет одинаковых
Формула [2], наверное, проста для понимания, а вот формула [1] содержит элементы, с которыми вы ранее не встречались. Используя функции СТРОКА и ДВССЫЛ можно создать динамический массив переменной длины из последовательных чисел. Начните ввод формулы с функции ДВССЫЛ (рис. 7.13). ДВССЫЛ запрограммирована возвращать ссылку, заданную текстовой строкой. В нашем случае элемент аргумент ссылка_на_ячейку "
1:"
&D3 представляет собой ссылку на строки 1:3. Чтобы убедиться в этом, выделите этот элемент и нажмите F9.
Рис. 7.13. Конкатенация "
1:"
и D3 (слева) дает ссылку на строки "
1:3"
(справа)
Если вы захотите оценить, что возвращает формула =ДВССЫЛ("
1:"
&D3), выделите ее целиком и нажмете F9 (рис. 7.14), то получите ошибку «Формула слишком длинная. Ее длина не должна превышать 8192 знака».
Рис. 7.14. При оценке формулы =ДВССЫЛ("
1:"
&D3) возвращается ошибка
Ошибку вызвана тем, что ссылка на строки 1:3 содержит все ячейки в строках с 1 по 3. На листе Excel (начиная с версии 2007) 16 384 столбца, т.е. в трех строках содержится 49 152 ячейки. Сама по себе функция ДВССЫЛ не содержит ошибки, поэтому если поместить ее в качестве аргумента функции СТРОКА, вы получите требуемый результат (рис. 7.15). Заметим, что аргумент функции СТРОКА ожидает одно значение. Вы же «подсовываете» ему 49 152 ссылки на ячейки. Правда все эти ссылки относятся к строкам 1, 2 и 3. Так что функция СТРОКА вернет массив {1:2:3} (убедитесь в этом, выделив целиком функцию СТРОКА, и нажав F9). Обратите внимание, что поскольку речь идет о строках, в синтаксисе массива в качестве разделителя присутствует двоеточие.
Рис. 7.15. Функция СТРОКА возвращает номер строки аргумента ссылка; поскольку ДВССЫЛ возвращает ячейки, относящиеся к строкам 1, 2 и 3, функция СТРОКА возвращает массив {1:2:3}
Итак, с помощью конструкции СТРОКА(ДВССЫЛ(…)) вам удалось создать аргумент k функции НАИБОЛЬШИЙ (рис. 7.16). Этот элемент формулы является динамичным. Если в ячейке D3 ввести значение 2, массив для k вернет {1;2}, а если 5, то – {1;2;3;4;5}.
Рис. 7.16. Аргументом k функции НАИБОЛЬШИЙ получает массив, созданный конструкцией СТРОКА(ДВССЫЛ(…))
Вы можете закончить ввод формулы путем размещения функции НАИБОЛЬШИЙ в качестве аргумента массив1 функции СУММПРОИЗВ. Мне СУММПРОИЗВ нравится больше, чем просто СУММ, поскольку первая не требует нажатия Ctrl+Shift+Enter, а вторая – требует.
Рис. 7.17. Завершите ввод формулы путем размещения функции НАИБОЛЬШИЙ в качестве аргумента массив1 функции СУММПРОИЗВ
Мы только что разобрали трюк, который можно назвать «массив последовательных чисел переменной длины» (рис. 7.18).
Рис. 7.18. Формула мгновенно отработает, если в ячейке D3 ввести новое значение, например, 5
Примечание: функция ДВССЫЛ является летучей (англ. – volatile). Функции этого класса пересчитываются при любом изменении в Excel. Пересчет может быть запущен, например, вставкой новой строки или изменением формата ячейки (даже в другой книге). Для сравнения, функция СУММ пересчитывается только если изменилось какое-либо значение, на которое ссылается СУММ. Вследствие этого свойства волатильные функции увеличивают время расчета формул. Вы узнаете больше о пересчете формул в главе 13.
Прежде чем перейти к следующей формуле массива, хочу познакомить вас с инструментом Excel –Таблица (рис. 7.19). [1] Для создания таблицы встаньте на любую ячейку в диапазоне А1:В8 и пройдите по меню: Главная → Стили → Форматировать как таблицу (или нажмите Ctrl+T; Т – английское). Далее в меню Конструктор область Параметры стилей таблицы поставьте галочку напротив Строка итогов. Примените фильтр в колонке Объем продаж: Числовые фильтры → Первые 10, задайте 3 наибольших элемента списка. К сожалению, отфильтрованный список будет включать дубли, так как третье наибольшее значение представлено двумя строками.
Рис. 7.19. Использование инструмента Таблице для отбора трех максимальных значений
Рассмотрим еще один пример того, как можно использовать массив констант. В главе 3 мы вывели формулу для расчета стоимости товара с учетом скидок. При этом четыре значения скидок были размещены каждая в своей ячейке. Попробуем решить задачу, когда четыре значения скидок размещены в одной ячейке (рис. 7.20).
Рис. 7.20. Значения скидок размещены в одной ячейке в виде текстовой строки
В одной ячейке нужно последовательно:
Извлечь числа из текстовой строки | {" 20" ;" 05" ;" 10" ;" 20" } |
Разделить на 100 | {0,20;0,05;0,10;0,20} |
Вычисление коэффициента | (1-0,20)*(1-0,05)*(1-0,10)*(1-0,20) |
Вычисление коэффициента | 0,80*0,95*0,90*0,80=0,5472 |
Чистая стоимость | $37*0,5472=$20,25 |
Чтобы одновременно извлечь четыре числа из текстовой строки, можно использовать массив констант в аргументе начальная_позиция функции ПСТР (рис. 7.21). Функция ПСТР возвращает заданное число знаков из строки текста, начиная с указанной позиции. Обычно аргумент начальная_позиция содержит один элемент. Например, если вы ввели формулу =ПСТР(C3;4;2), функция вернет два символа, начиная с 4-го из ячейки С3.
Рис. 7.21. Массив констант в аргументе начальная_позиция функции ПСТР
Однако, в нашем примере, вы вводите четыре значения в аргумент начальная_позиция. Поэтому функция ПСТР вернет четыре результата. Убедитесь в этом, выделив целиком функцию ПСТР и нажав F9 (рис. 7.22). Обратите внимание, что функция ПСТР возвращает текстовые элементы. Это не помешает нам, потому что на следующем шаге мы выполним с этим массивом математические операции, что автоматически приведет к преобразованию текста в числа.
Рис. 7.22. Убедитесь в том, что функция ПСТР возвращает массив, выделив ее и нажав F9
На следующем шаге разделите массив на 100, а затем вычтете результат из единицы (рис. 7.23). Поскольку деление будет выполняться первым, вам не нужны дополнительные скобки. Оцените получившуюся формулу, выделив ее и нажав F9.
Рис. 7.23. Деление на 100 преобразует текст, извлеченный функцией ПСТР, в число
Завершите ввод формулы, умножая элементы массива, полученного на предыдущем шаге, с помощью функции ПРОИЗВЕД; далее умножьте на цену по прайс-листу, и наконец округлите результат до двух знаков после запятой (рис. 7.24). Поскольку вы использовали массив констант в аргументе функции ПСТР, ввод формулы не требует Ctrl+Shift+Enter.
Рис. 7.24. Формула для вычисления чистой стоимости
Использование массива констант в функции ВПР для экономии места. На рис. 25 показано типичное применение функции ВПР (первая колонка в таблице F2:G5 отсортирована, поэтому ВПР ищет лишь приблизительное совпадение). Если вы предполагаете, что данные в таблице подстановки (F2:G5) меняться не будут и вам неудобно, чтобы таблица занимала место на листе, вы можете ввести код таблицы жестко в формулу. Проблема с жестким кодированием массива констант в формуле ВПР заключается в относительно большом объеме ввода (массив нужно поместить в фигурные скобки, текст – в кавычки, а также ввести «тучу» разделителей). Можно использовать небольшую хитрость: если таблица у вас уже есть, создайте обычную ВПР, а потом выделите аргумент таблица и нажмите F9. Вы преобразуете ссылку на диапазон в массив констант (рис. 7.26). Вы можете затем скопировать формулу ВПР вниз по колонке и удалить таблицу подстановки.
Рис. 7.25. Если данные в таблице подстановки могут меняться, обычная ВПР со ссылками на ячейки – отличный выбор
Рис. 7.26. Выделите аргумент таблица и нажмите F9; вы преобразуете ссылку на диапазон в массив констант
Еще одна возможность сэкономить пространство на листе – присвоить массиву констант имя, а затем использовать это имя в формулах. Чтобы поименовать массив констант, перейти на вкладку Формулы и щелкните Диспетчер имен (или нажмите Ctrl+F3), далее нажмите кнопку Создать. В открывшемся диалоговом окне Создание имени задайте имя, область применения имени и диапазон (в нашем случае, это не ссылка на ячейки, а массив констант). Можете воспользоваться хитростью, описанной выше, чтобы не набирать массив констант с клавиатуры (рис. 7.27).
Рис. 7.27. Присвоение имени массиву констант
Вы можете использовать это имя в качестве аргумента функции ВПР (рис. 7.28). Обратите внимание, что =ВПР(A2;ТоварЦена;2) не является формулой массива.
Рис. 7.28. Имя ТоварЦена содержит массив констант
Вы только что использовали два элемента (массив констант и определенное имя) в качестве аргумента Таблица функции ВПР. А как насчет других аргументов ВПР? Могут ли они содержать массив констант и/или операции с массивами? Как вы видели в главе 6, аргумент искомое_значение не может обрабатывать массивы. А аргумент номер_столбца? Может ли он обрабатывать массив?
На рис. 7.29 (диапазон А1:Н4) показана таблица подстановки с названиями товаров в первом столбце (отсортированы по алфавиту) и компонентами затрат в столбцах 2–8. Цель формулы – сложить затраты по столбцам 2, 4, 5, 7 и 8. Вы можете использовать массив констант в качестве аргумента номер_столбца функции ВПР, чтобы получить на выходе функции сразу пять значений затрат. Вы можете увидеть это, если выделите функцию ВПР и нажмете F9 (рис. 7.30).
Рис. 7.29. Поместите в аргумент номер_столбца функции ВПР массив констант номеров столбцов
Рис. 7.30. Так как аргумент номер_столбца содержит пять элементов, функция ВПР вернет пять значений
Если вы введете формулу =СУММ(ВПР(A7;A2:H4;{2;4;5;7;8})) простым нажатием Enter, то получите неверный ответ (рис. 7.31). Видно, что функция СУММ обработала только первый элемент массива {1,35;2,15;3;2;4}, возвращенный функцией ВПР. Чтобы получить корректный результат введите формулу в ячейку используя Ctrl+Shift+Enter (рис. 7.32). Если вам хочется сэкономить на нажатии трех клавиш, поместите ВПР внутрь СУММПРОИЗВ (рис. 7.33).
Рис. 7.31. Ввод формулы с помощь Enter дает ошибочный результат
Рис. 7.32. Независимо от того, содержит ли аргумент номер_столбца функции ВПР массив констант или ссылку на диапазон, ввод формулы требует нажатия Ctrl+Shift+Enter
Рис. 7.33. Когда вы помещаете ВПР внутрь СУММПРОИЗВ, вам не нужно нажимать Ctrl+Shift+Enter
Итак, получается, что некоторые аргументы функции, которые могут содержать массив констант, не требуют использования Ctrl+Shift+Enter (например, массив в НАИМЕНЬШИЙ и НАИБОЛЬШИЙ, текст в ДЛСТР, логическое_значение в ИЛИ), а некоторые – требуют (например, номер_столбца в ВПР).
До сих пор в этой главе вы использовали массивы констант в качестве аргументов функций. Массивы констант также могут использоваться в математических операциях и операциях сравнения массивов. При этом, если используется только массив констант, формула не требует нажатия Ctrl+Shift+Enter (рис. 7.34–7.36). Если также используется и массив в виде ссылок на диапазон, ввод формулы требует нажатия Ctrl+Shift+Enter (рис. 7.37).
Рис. 7.34. Формула массива (в ячейке С2) спрашивает: «равно ли содержимое ячейки В2 одному из значений: V.P., President или Admin?»; операция сравнения включает в себя операцию с массивом констант в аргументе логическое_значение1 функции ИЛИ и не требует нажатия Ctrl+Shift+Enter
Рис. 7.35. Формула массива рассчитывает ценовой коэффициент [2] на основании значений отдельных скидок; выполнена математическая операция умножения с использованием массива констант в аргументе число1, что не требует нажатия Ctrl+Shift+Enter
Рис. 7.36. Формула умножает два массива констант и затем суммирует результаты произведения (я не думаю, что вы будет использовать такую формулу, но я включил ее, чтобы проиллюстрировать работу массива констант); математическая операция с массивами констант помещена в аргумент число1 функции СУММ и не требует нажатия Ctrl+Shift+Enter
Рис. 7.37. Формула перемножает массивы ссылок и констант и затем суммирует результаты произведения (лучше использовать функцию СУММПРОИЗВ; я включил эту формулу, чтобы проиллюстрировать работу массива констант); математическая операция включает в себя не только массив констант, но и ссылку на диапазон ячеек, и она требует нажатия Ctrl+Shift+Enter
Резюме главы
- Массивы константы можно использовать, как в обычных, так и в формулах массива
- Синтаксис массивов констант: фигурные скобки в начале и в конце массива; точка с запятой разделяет элементы в строке, двоеточие – одну строку от другой; текстовые элементы помещаются в двойные кавычки, а числа, логические значения и значения ошибок – без кавычек
- Используются три типа массивов констант: вертикальные, горизонтальные, прямоугольные
- Массив констант не может содержать более 8192 символов
- Для ввода формулы массива:
- Если используется только массив констант, Ctrl+Shift+Enter не требуется
- Некоторые аргументы функций при размещении в них массива констант не требуют Ctrl+Shift+Enter (например, массив в НАИМЕНЬШИЙ и НАИБОЛЬШИЙ, текст в ДЛСТР, логическое_значение в ИЛИ, начальная_позиция в ПСТР, число1 в ПРОИЗВЕД и СУММ)
- Некоторые аргументы функций требуют нажатия Ctrl+Shift+Enter, если они содержат массив констант (например, аргумент номер_столбца в ВПР)
- Золотое правило Excel в отношении формул массива можно дополнить следующим:
- Если данные не будут меняться и вы экономите место на листе, используйте массив констант
- Поименуйте массив констант и используйте его имя в формулах
[2] Ценовой коэффициент – число от 0 до 1, на которое надо умножить цену по прайс-листу, чтобы учесть все скидки