Создание формулы массива
Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Excel 2010 Excel 2007 Excel для Mac 2011 Еще. Меньше
Формулы массива — это мощные формулы, которые позволяют выполнять сложные вычисления, которые часто не могут быть выполнены с помощью стандартных функций листа. Они также называются формулами CTRL-SHIFT-ВВОД или CSE, так как для их ввода необходимо нажать клавиши CTRL+SHIFT+ВВОД. Формулы массива можно использовать для выполнения, казалось бы, невозможного, например
- Подсчитайте количество символов в диапазоне ячеек.
- Суммирование чисел, соответствующих определенным условиям, например наименьших значений в диапазоне или чисел, которые попадают между верхней и нижней границами.
- Суммирование всех n-х значений в диапазоне значений.
Excel предоставляет два типа формул массива: формулы массива, которые выполняют несколько вычислений для создания одного результата, и формулы массива, которые вычисляют несколько результатов. Некоторые функции возвращают массивы значений или требуют массив значений в качестве аргумента. Дополнительные сведения см. в разделе Рекомендации и примеры формул массива.
Примечание: Если у вас есть текущая версия Microsoft 365, можно просто ввести формулу в левую верхнюю ячейку выходного диапазона, а затем нажать клавишу ВВОД , чтобы подтвердить формулу как формулу динамического массива. Иначе формулу необходимо вводить с использованием прежней версии массива, выбрав диапазон вывода, введя формулу в левой верхней ячейке диапазона и нажав клавиши CTRL+SHIFT+ВВОД для подтверждения. Excel автоматически вставляет фигурные скобки в начале и конце формулы. Дополнительные сведения о формулах массива см. в статье Использование формул массива: рекомендации и примеры.
Создание формулы массива для вычисления одного результата
Этот тип формулы позволяет упростить модель листа благодаря замене нескольких отдельных формул.

- Щелкните ячейку, в которую нужно ввести формулу массива.
- Введите необходимую формулу. В формулах массива используется синтаксис обычных формул. Все они начинаются со знака равенства (=), и вы можете использовать любую из встроенных функций Excel в формулах массива. Например, эта формула вычисляет общее значение массива цен на акции и поместит результат в ячейку рядом с полем «Общее значение». Формула сначала умножает акции (ячейки B2 – F2) на их цены (ячейки B3 – F3), а затем добавляет эти результаты, чтобы создать общий объем в 35525. Это пример формулы массива с одной ячейкой, так как формула находится только в одной ячейке.
- Нажмите клавишу ВВОД (если у вас есть текущая подписка на Microsoft 365 ); В противном случае нажмите клавиши CTRL+SHIFT+ВВОД. При нажатии клавиш CTRL+SHIFT+ВВОД Excel автоматически вставляет формулу между (пара открывающих и закрывающих фигурных скобок).
Примечание: Если у вас есть текущая версия Microsoft 365, можно просто ввести формулу в левую верхнюю ячейку выходного диапазона, а затем нажать клавишу ВВОД , чтобы подтвердить формулу как формулу динамического массива. Иначе формулу необходимо вводить с использованием прежней версии массива, выбрав диапазон вывода, введя формулу в левой верхней ячейке диапазона и нажав клавиши CTRL+SHIFT+ВВОД для подтверждения. Excel автоматически вставляет фигурные скобки в начале и конце формулы. Дополнительные сведения о формулах массива см. в статье Использование формул массива: рекомендации и примеры.
Создание формулы массива для вычисления нескольких результатов
Чтобы вычислить несколько результатов с помощью формулы массива, введите массив в диапазон ячеек, содержащий точно такое же количество строк и столбцов, которое будет использоваться в аргументах массива.

- Выделите диапазон ячеек, в который нужно ввести формулу массива.
- Введите необходимую формулу. В формулах массива используется синтаксис обычных формул. Все они начинаются со знака равенства (=), и вы можете использовать любую из встроенных функций Excel в формулах массива. В следующем примере формула умноживает акции по цене в каждом столбце, а формула находится в выбранных ячейках в строке 5.
- Нажмите клавишу ВВОД (если у вас есть текущая подписка на Microsoft 365 ); В противном случае нажмите клавиши CTRL+SHIFT+ВВОД. При нажатии клавиш CTRL+SHIFT+ВВОД Excel автоматически вставляет формулу между (пара открывающих и закрывающих фигурных скобок).
Примечание: Если у вас есть текущая версия Microsoft 365, можно просто ввести формулу в левую верхнюю ячейку выходного диапазона, а затем нажать клавишу ВВОД , чтобы подтвердить формулу как формулу динамического массива. Иначе формулу необходимо вводить с использованием прежней версии массива, выбрав диапазон вывода, введя формулу в левой верхней ячейке диапазона и нажав клавиши CTRL+SHIFT+ВВОД для подтверждения. Excel автоматически вставляет фигурные скобки в начале и конце формулы. Дополнительные сведения о формулах массива см. в статье Использование формул массива: рекомендации и примеры.
Если необходимо включить новые данные в формулу массива, см. раздел Развертывание формулы массива. Вы также можете попробовать:
- Правила изменения формул массива (они могут быть привередливыми)
- Удаление формулы массива (здесь также можно нажать клавиши CTRL+SHIFT+ВВОД).
- Использование констант массива в формулах массива (они могут быть удобны)
- Присвойте константе массива имя (они могут упростить использование констант)
Попробуйте попрактиковаться
Если вы хотите поэксперитировать с константами массива, прежде чем опробовать их с собственными данными, воспользуйтесь примерами данных здесь.
В приведенной ниже книге показаны примеры формул массива. Чтобы лучше работать с примерами, скачайте книгу на компьютер, щелкнув значок Excel в правом нижнем углу, а затем откройте ее в классической программе Excel.
Скопируйте приведенную ниже таблицу и вставьте ее в Excel в ячейке A1. Выделите ячейки E2:E11, введите формулу =C2:C11*D2:D11, а затем нажмите клавиши CTRL+SHIFT+ВВОД, чтобы сделать ее формулой массива.
Формулы массива в EXCEL. Знакомство
Без формул массива (array formulas ) можно обойтись, т.к. это просто сокращенная запись группы однотипных формул. Однако, у формул массива есть серьезное преимущество: одна такая формула может заменить один или несколько столбцов с обычными формулами.
Например, можно найти сумму квадратов значений из диапазона А2:A12 , просто записав в ячейке B14 формулу =СУММ(A2:A12^2) . Для сравнения: чтобы найти сумму квадратов, используя обычные формулы, нам потребуется дополнительный столбец для вычисления квадратов значений и одна ячейка для их суммирования (см. файл примера или диапазон B 2 :B13 на рисунке ниже).

В отличие от ввода обычных формул, после ввода формулы массива нужно нажать вместо ENTER комбинацию клавиш CTRL+SHIFT+ENTER (поэтому, иногда, формулы массива также называются формулами CSE — это первые буквы от названия клавиш, используемых для ввода C trl, S hift, E nter). После этого формула будет обрамлена в фигурные скобки < >(их не вводят с клавиатуры, они автоматически появляются после нажатия CTRL+SHIFT+ENTER ). Это обрамление показано на рисунке выше (см. Строку формул ).
Если бы мы нажали просто ENTER , то получили бы сообщение об ошибке #ЗНАЧ!, возникающую при использовании неверного типа аргумента функции, т.к. функция СУММ() принимает в качестве аргумента только диапазон ячеек (или формулу, результатом вычисления которой является диапазон, или константы). В нашем случае мы в качестве аргумента ввели не диапазон, а некое выражение, которое еще нужно вычислить перед суммированием, поэтому и получили ошибку.
Чтобы глубже понять формулы массива проведем эксперимент:
- выделим ячейку B13 , содержащую обычную формулу =СУММ($B$2:$B$12) ;
- в C троке формул выделим аргумент функции СУММ() , т.е. $B$2:$B$12 ;
- нажмем клавишу F9 , т.е. вычислим, выделенную часть формулы;
- получим – массив квадратов значений из столбца В . Массив – это просто набор неких элементов (значений).
Т.е. обычная функция СУММ() в качестве аргумента получила некий массив (или точнее ссылку на него).Теперь проведем тот же эксперимент с формулой массива:
- выделим ячейку, содержащую формулу массива =СУММ($A$2:$A$12^2) ;
- в строке формул выделим аргумент функции СУММ() , т.е. $A$2:$A$12^2 ;
- нажмем клавишу F9 , т.е. вычислим, выделенную часть формулы;
- получим – тот же массив, что и в первом случае.
Т.е. нажатие CTRL+SHIFT+ENTER заставило EXCEL перед суммированием произвести промежуточные вычисления с диапазоном ячеек (с массивом содержащихся в нем значений). Для самой функции СУММ() ничего не изменилось – она получила тот же массив, только предварительно вычисленный, а не прямо из диапазона ячеек, как в случае с обычной формулой. Понятно, что вместо функции СУММ() в формуле массива может быть использована любая другая функция MS EXCEL: СРЗНАЧ() , МАКС() , НАИБОЛЬШИЙ() и т.п.
Вышеприведенный пример иллюстрирует использование функции массива возвращающей единственное значение, т.е. результат может быть выведен в одной ячейке. Это достигается использованием функций способных «свернуть» вычисленный массив до одного значения ( СУММ() , СРЗНАЧ() , МАКС() ). Примеры таких функций массива приведены в статье Формулы массива, возвращающие одно значение .
Формулы массива также могут возвращать сразу несколько значений. Понятно, что для того чтобы отобразить такой результат необходимо задействовать целый диапазон ячеек. Примеры таких функций приведены в статье Формулы массива, возвращающие несколько значений .
Преимущества и недостатки формул массива рассмотрены в одноименной статье Формулы массива. Преимущества и недостатки .
В файле примера также приведено решение данной задачи функцией СУММПРОИЗВ() , которая зачастую не требует введения ее как формулы массива: =СУММПРОИЗВ($A$2:$A$12^2)
Здесь, при вводе формулы СУММПРОИЗВ() нажимать CTRL+SHIFT+ENTER необязательно.
ПРИМЕЧАНИЕ : При создании Именованных формул и правил Условного форматирования формулы массива нельзя ввести нажимая CTRL+SHIFT+ENTER . Эти формулы вводятся только в ячейки листа. Однако, если формуле массива присвоить Имя , то EXCEL «сообразит», что нужно с ней нужно делать. Например, если формуле =СУММ($A$2:$A$12^2) присвоить имя Сумма_квадратов, а затем в ячейке указать =Сумма_квадратов , то получим правильный результат.
Как в Excel ввести формулу массива?
Из данной статьи вы узнаете, как в Excel ввести формулу массива.
Принцип ввода формулы массива расскажу на примере 2-х формул =ЛИНЕЙН() и =ТРАНСП().
Для того, чтобы с помощью формулы =ЛИНЕЙН() рассчитать коэффициенты линейного тренда y=a+bx (a) и (b), необходимо:
1. Ввести в формулу данные =ЛИНЕЙН(известные значения y (например, объём продаж по месяцам), известные значения x (номера периодов), константа (коэффициент (a) в формуле y=a+bx, для его расчета ставим «1»), статистика (вводим «0»)) (см. файл с примером).

2. Установить курсор в ячейку с формулой и выделить соседнюю справа, как на рисунке:

3. Для ввода формулы массива нажимаем клавишу F2, а затем одновременно — клавиши CTRL + SHIFT + ВВОД.

Коэффициенты линейного тренда y=a+bx (a) и (b) рассчитаны.
2-й пример (см. вложенный файл), в нём мы рассмотрим, как перевернуть диапазон и сделать из горизонтального вертикальный. Для этого воспользуемся функцией =ТРАНСП().
Как она работает:
1. В формулу вводим горизонтальный диапазон, который хотим сделать вертикальным:

2. Выделяем вертикальный диапазон, равный по количеству ячеек выделенному горизонтальному, вверху диапазона должна быть введена формула =ТРАНСП();

3. Для ввода формулы массива нажимаем клавишу F2, а затем одновременно — клавиши CTRL + SHIFT + ВВОД.

Горизонтальный диапазон стал вертикальным. Теперь, если мы внёсем изменения в горизонтальный диапазон, они тут же отобразятся в вертикальном диапазоне.
Для ввода формулы массива необходимо
- выделить массив — это диапазон ячеек, в которые Excel выведет данные,
- и нажать чудо комбинацию клавиш — F2, а затем одновременно — клавиши CTRL + SHIFT + ВВОД.
Всё просто, попробуйте, и если остались вопросы, задавайте их в комментариях.
Точных вам прогнозов!
Присоединяйтесь к нам!
Скачивайте бесплатные приложения для прогнозирования и бизнес-анализа:
- Novo Forecast Lite — автоматический расчет прогноза в Excel .
- 4analytics — ABC-XYZ-анализ и анализ выбросов в Excel.
- Qlik Sense Desktop и QlikView Personal Edition — BI-системы для анализа и визуализации данных.
Тестируйте возможности платных решений:
- Novo Forecast PRO — прогнозирование в Excel для больших массивов данных.
Получите 10 рекомендаций по повышению точности прогнозов до 90% и выше.
Почему формулы массива (Ctrl+Shift+Enter) такие сложные: неявное пересечение
Это перевод главы книги Bill Jelen. Excel Dynamic Arrays Straight to the Point. К содержанию.
Почему формулы массива (Ctrl+Shift+Enter) были так сложны для понимания?
Если вы когда-либо вводили Ctrl+Shift+Enter, эта глава прольет свет, почему формулы массива были столь трудными в использовании в предыдущих версиях Excel. Для начала несколько вопросов о работе прежних версий Excel. Я не ожидаю, что все ваши ответы будут правильными. Попробуйте угадать. Далее по ходу главы я внесу ясность в эти вопросы.
Вопрос 1. Если в ячейку D8 вы введете =B4:B14, каков будет результат?
- 2047, сумма значений B4:B14.
- 1, значение первой ячейки в диапазоне.
- 16, значение в той же строке диапазона.
- Ошибка #ЗНАЧ! синтаксис формулы неверный

Рис. 44. Что вы получите, если в старом Excel в одной ячейке попытаться вернуть много значений?
Скачать заметку в формате Word или pdf, примеры в формате Excel
Вопрос 2. Если вы введете =B2:B14 в ячейку D16. Что вы получите? Ответ такой же, как и для вопроса 1? Или иной?
Вопрос 3. Что вернет формула =СУММ(C2:E2*B5:B7)?
- 6, потому что 2 умножить на 3 = 6.
- 18, потому что каким-то волшебным образом выполнится 2*3 + 2*3 + 2*3 = 18.
- 54, потому что вы только что приняли ЛСД.
- Ошибка #ССЫЛКА! потому что такая запись недопустима.

Рис. 45. Сумма произведений двух массивов
Вопрос 4. Чему равно =СУММ(ДЛСТР(A4:A15))? Будут ли результаты разными, если:
- ввести формулу и нажать Enter;
- ввести формулу и нажать Ctrl+Shift+Enter;
- ввести в ячейку С4 формулу =ДЛСТР(A4), скопировать ее вниз до С15, суммировать значения в диапазоне С4:С15.

Рис. 46. Функция ДЛСТР ожидает в качестве аргумента одну ячейку
В прошлом я мог взять сложную формулу массива из книги Майка Гирвина Ctrl+Shift+Enter и использовать ее. Я иногда мог объяснить, как она работает. Для этого я открывал диалоговое окно Вычисление формулы на вкладе Формулы. Однажды я даже целый час говорил о формулах массива на мероприятии в Люцерне, Швейцария. Экхард Пфайффер присутствовал при этом и даже кивнул мне, подтверждая, что я не полностью ошибаюсь в своем понимании. Правда, я говорил по-английски для немецкоговорящей аудитории, так что, возможно, я ошибался довольно часто, но слушатели были слишком вежливы, чтобы указать мне на это.
Но я никогда по-настоящему не понимал формулы массивов, пока не посмотрел презентацию Джо Макдэйда о формулах массивов в прежних версиях Excel.
Новые формулы массива настолько просты, что кажется странным поместить этот сложный материал в книге. Я размещаю его ближе к концу книги, поэтому многие люди его не прочтут. Я надеюсь, что вы будете исключением.
Краткий глоссарий
- Старый Excel: Excel, который не поддерживает формулы динамических массивов.
- Скалярный: одно значение или одна ячейка.
- Массив или вектор: много значений или много ячеек прямоугольного диапазона.
Старый Excel использовал массивы гораздо чаще, чем мы думаем
В старом Excel вы использовали массивы в следующих случаях:
- Когда имя не было диапазоном.
- При использовании формулы в условном форматировании.
- При нажатии клавиши F9 в то время, как были выделены некоторые символы в строке формул. Даже обычные формулы демонстрировали поведение массивов.
В следующих разделах описываются пять типов поведения при работе с массивами:
- Неявное пересечение (Implicit Intersection)
- Подъем (Lifting).
- Попарный подъем (Pairwise Lifting).
- Трансляция (Broadcasting).
- Усечение массива (Array Truncation).
Неявное пересечение
Неявное пересечение возникает, когда диапазон передается в формулу, ожидающую скаляр (одно значение), и Excel выбирает значение в той же строке или столбце, что и формула. Если в старом Excel вы введете =ДЛСТР($A$2:$A$7)[1] в ячейке В2, формула вернет значение 5, т.е. длину строки в ячейке А2.

Рис. 47. Неявное пересечение приводит к тому, что ответ основан на ячейке A2
Если вы введете эту же формулу в ячейке В4, ответ будет основан на ячейке А4:

Рис. 48. Скопируйте формулу в ячейку В4, и ответ будет основан на A4
Неявное пересечение работает и с горизонтальными диапазонами. Если ввести формулу =ДЛСТР(@$E$1:$J$1) в ячейку Е3, ответом будет длина строки Е1:

Рис. 49. ДЛСТР работает и с горизонтальными диапазонами
Неявное пересечение всегда работало в старом Excel. Мы просто не знали о нем, и поэтому не использовали. Однажды я выдал приз Гуру Excel за следующую формулу: =ВПР($A$2:$A$10;$F$2:$H$30;3;ЛОЖЬ). Эта формула одинакова во всем диапазоне D2:D10. Единственная причина, по которой она работает, заключается в том, что неявное пересечение указывает для формулы в D2 только на A2 из всего диапазона A2:A10… В D3 на А3, и т.д.

Рис. 50. В старом Excel можно использовать ВПР как функцию массива благодаря неявному пересечению
Нарушение неявного пересечения
Неявное пересечение терпит неудачу, когда вы вводите формулу в ячейку, которая не пересекает данные. Например, в ячейке G3:

Рис. 51. Если пересекаться не с чем, формула возвращает ошибку
Ошибка вернется, и когда Excel не сможет решить, с какой именно ячейкой использовать неявное пересечение. С В8, В9 или В10?

Рис. 52. Ошибка возвращается также, если формула пересекается с более чем одной ячейкой диапазона
В старом Excel формула =СУММ(В2:В6*С2:С6) в зависимости от того, в какой ячейке она вводилась, либо возвращала ошибку, либо выдавала результат перемножения двух значений с использованием неявного пересечения:

Рис. 53. Там, где в старом Excel не справляется функция СУММ на выручку приходит СУММПРОИЗВ
Если заменить СУММ на СУММПРОИЗВ, результат будет адекватным. Это связано с тем, что СУММПРОИЗВ игнорирует неявное пересечение.
Неявное пересечение – это то, что иногда приводило к ошибкам. Более того, часто вы не понимали, что виновато неявное пересечение.
Когда формула ожидает одно значение, а поступает массив, происходит подъем (lifting)
Что происходит, когда старый Excel ожидает одно значение, а вы предоставляете диапазон значений? Excel сформирует из этих значений массив, и функция вернет массив того же размера. Это называется подъем – подъем (или увеличение размерности) от скалярной величины к вектору.

Рис. 54. Функция ДЛСТР ожидает скаляр
Когда вы подаете на вход функции диапазон значений (вектор), Excel поднимает функцию и вычисляет в оперативной памяти 12 значений. Их можно увидеть, если выделить формулу в строке формул, и нажать F9, заменяя формулу значениями:

Рис. 55. В строке формул показан массив из 12 результатов работы функции ДЛСТР(А1:С4)
Усечение массива
Если вы попытаетесь использовать =ДЛСТР(A1:C4) в старом Excel, и введете формулу, нажимая Ctrl+Shift+Enter, Excel применит к функции подъем и вычислит 12 результатов. Но вернет только одно значение, соответствующее верхней левой ячейке диапазона A1:C4, или 3, потому что ДЛСТР( » Joe » ) = 3. Это иллюстрирует концепцию усечения массива.
Прим. Багузина. Массив может усекаться не до одной ячейки, о до нескольких. Например, выделите ячейки Е6:F7 и введите формулу массива . 12 значений, хранящиеся в памяти функции =ДЛСТР(A1:C4) будут представлены четырьмя результатами, соответствующими диапазону А1:В2.

Рис. 56. Усечение массива из 12 значений до четырех
Использование функции-оболочки в старом Excel
Распространенным подходом в старом Excel было использование функции массива ДЛСТР(A1:C4) внутри функции-оболочки. Например, вводя =СУММ(ДЛСТР(A1:C4)) и нажимая Ctrl+Shift+Enter в любом месте листа вы получите правильный результат – 67. Нажатие Ctrl+Shift+Enter блокирует неявное пересечение.

Рис. 57. Формула массива работает в старом Excel в любом месте листа
Ctrl+Shift+Enter также управляет размером выходных данных. Если вы предварительно выделите диапазон «правильного» размера, введете формулу, возвращающую массив, и нажмете Ctrl+Shift+Enter, вы заполните все ячейки в предварительно выделенном диапазоне.
Пять функций в старом Excel блокировали неявное пересечение и без использования Ctrl+Shift+Enter. Это: СУММПРОИЗВ, МУМНОЖ, МОБР, ЧСТРОК и ЧИСЛСТОЛБ.
Старый Excel был способен поднять функцию и вернуть множество результатов. Проблема заключалась в том, что неявное пересечение часто блокировало ответ. Если бы неявное пересечение не мешало, то усечение массива позволяло вернуть ответ для первого элемента массива.
Благодаря динамическим массивам вам больше не нужно беспокоиться о том, что неявное пересечение испортит результаты. Формула =СУММ(ДЛСТР(A1:C4)), введенная в любом месте листа без Ctrl+Shift+Enter, вернет правильный результат:

Рис. 58. Формула динамического массива в новом Excel не требует Ctrl+Shift+Enter
От подъема к попарному подъему
Если Excel ожидает два скалярных выражения, а вы предоставляете ему два массива, Excel применит к ним попарное поднятие. Например, в старом Excel нельзя получить корректный результат, просто введя формулу =+

Рис. 59. Два массива имеют одинаковое количество строк (четыре), но для их сложения нужно поместить векторы внутрь функции
А. Если вы введете формулу =+ в ячейку А1, и нажмете Enter или Ctrl+Shift+Enter, результат будет одинаковым = 2. Т.е., сумма двух первых элементов каждого массива. Б. Если выделить формулу =+ в строке формул, и нажать F9, формула вернет массив . В. Если выбрать диапазон С1:С4, ввести формулу =+ и нажать Ctrl+Shift+Enter, вычисленный в Б. диапазон отразится в С1:С4. Г. Корректное суммирование двух массивов можно получить, если поместить исходную формулу внутрь функции СУММ.
Трансляция приводит все массивы к одному размеру
Когда Excel имеет дело с массивом и скаляром, он расширяет скаляр до размерности массива. Просто размножая значение скаляра. Предположим, что у вас есть массив из трех строк по одному столбцу. Чтобы умножить его на скаляр (или массив из одной строки и одного столбца), Excel расширит этот скаляр теми же значениями до размера первого массива:

Рис. 60. Трансляция (или расширение) приводит два массива к одному размеру
Если поместить произведение массива и скаляра внутрь функции суммирования =СУММ(*3), вы получаете верный ответ = 18. Как обычно, вы можете ввести формулу =*3, и в строке формул нажать F9, чтобы увидеть, что Excel возвращает массив =.
Кстати о массивах констант. Они состоят из фигурных скобок со значениями внутри. Элементы в одной строке и разных столбцах разделяются точкой с запятой. Для перехода к следующей строке используется двоеточие. Например, массив соответствует:

Рис. 61. Синтаксис массива констант
Любопытно, что если вы попытаетесь умножить массив на , Excel не будет знать, что делать с третьей ячейкой во втором массиве. Поэтому промежуточное вычисление вернет СУММ(3;6;#Н/Д), и общий результат будет ошибочным #Н/Д.

Рис. 62. В случае массивов разных размеров формула может вернуть ошибку
Как описанное выше поведение влияет на динамические массивы?
Неявный оператор пересечения @ делает то, что уже было возможно и в старом Excel. Но оператор явно указывает на пересечение, что делает ваши действия более осмысленными. В старом Excel формулы массива работали только тогда, когда вы совершали какую-то магию. Например, Ctrl+Shift+Enter или СУММПРОИЗВ / МУМНОЖ. Последние позволяли отключить неявное пересечение. С появлением динамических массивов неявное пересечение отключено в Excel по умолчанию. Если всё же вам нужно использовать пересечение (ставшее явным) добавьте оператор @.
Почему Excel иногда добавляет оператор пересечения?
Если вы откроете какую-нибудь старую книгу Excel, вы можете заметить, что в начале формулы или перед аргументом появился знак @. В. Начните редактировать формулу и появится сообщение:

Рис. 63. Excel добавляет символ @, когда формула может использовать неявное пересечение
За те 15 месяцев, пока динамические массивы проходили бета-тестирование было много вопросов, почему Excel добавил @ к той или иной формуле. Джо Макдэйд вступал в долгую дискуссию о том, почему в определенные дни, когда Луна в такой-то фазе эта формула может вызвать неявное пересечение. Эти повторяющиеся дискуссии заставили меня осознать, что неявное пересечение в старом Excel происходило существенно чаще, чем я подозревал.
На рис. 64 формула в B2 не может принять вид =ИНДЕКС(B4:F15;0;2) или =ИНДЕКС(B4:F15;2;0).[2] Проверка данных в ячейках С1 и F1 предотвращает это. Но если кто-то введет 0 в A2, а затем скопирует A2 и вставит в F1, то =ИНДЕКС(B4:F15;2;0) вернет массив . Поскольку формуле в В2 некуда разлиться, Excel вернет ошибку #ПЕРЕНОС! Неважно, что этого никогда не произойдет. Excel понял, что это может произойти, и добавил @ к формуле. Этот оператор подавит динамический диапазон, и выведет только одно значение в соответствии с неявным пересечением (ставшим в такой нотации явным).

Рис. 64. Джо и команда Calc рассматривают массу сценариев, в которых может возникнуть неявное пересечение
Ответы на вопросы в начале главы
Вопрос 1. Если в ячейку D8 вы введете =B4:B14, каков будет результат?
- 2047, сумма значений B4:B14.
- 1, значение первой ячейки в диапазоне.
- 16, значение в той же строке диапазона.
- Ошибка #ЗНАЧ! синтаксис формулы неверный.

Рис. 65. В старом Excel в результате неявного пересечения вы получите 16 в строке 8 и #ЗНАЧ! в строке 16
Вопрос 2. Если вы введете =B2:B14 в ячейку D16. Что вы получите? Ответ такой же, как и для вопроса 1? Или иной?
См. рис. 65. Ответ иной. Вы получите ошибку #ЗНАЧ! так как неявное пересечение происходит за пределами исходного массива.
Вопрос 3. Что вернет формула =СУММ(C2:E2*B5:B7)?
- A. 6, потому что 2 умножить на 3 = 6.
- B. 18, потому что каким-то волшебным образом выполнится 2*3 + 2*3 + 2*3 = 18.
- C. 54, потому что вы только что приняли ЛСД.
- D. Ошибка #ССЫЛКА! потому что такая запись недопустима.
Благодаря трансляции Excel расширит массив до , а массив до . У вас будет два массива 3х3, и их перемножение даст массив 3х3 в каждой ячейке которого будет шестерка. А девять по шесть вернет 54:

Рис. 66. Произведение двух зеленых массивов даст 54
Вопрос 4. Чему равно =СУММ(ДЛСТР(A4:A15))? Будут ли результаты разными, если:
- ввести формулу и нажать Enter;
- ввести формулу и нажать Ctrl+Shift+Enter;
- ввести в ячейку С4 формулу =ДЛСТР(A4), скопировать ее вниз до С15, суммировать значения в диапазоне С4:С15.

Рис. 67. В старом Excel используйте Ctrl+Shift+Enter, чтобы предотвратить неявное пересечение
В старом Excel, если ввести формулу =СУММ(ДЛСТР($A$4:$A$15)) в ячейки диапазоне С4:С15 и нажать Enter, то, из-за неявного пересечения они вернут длину той же строки из диапазоне А4:А15. Если ввести =СУММ(ДЛСТР(A4:A15)) в любом месте листа и нажать Ctrl+Shift+Enter, формула вернет 113. ДЛСТР ожидает один аргумент, но подъем заставляет функцию вычислить длину строки 12 раз. Если поместить ДЛСТР(A4:A15) внутрь функции СУММ, эти 12 значений будут суммированы. Варианты b) и c) идентичны.
[1] Поскольку у меня на ПК установлен новый Excel, при вводе формулы =ДЛСТР($A$2:$A$7) в ячейку В2 он разольет массив на диапазон В2:В7. Я использую оператор неявного пересечения @ в аргументе функции, чтобы подавить работу функции динамического массива, и вывести только одно значение. – Здесь и далее прим. Багузина.
[2] Ноль во втором или третьем аргументе означает, что формула вернет массив, включающий весь столбец или всю строку диапазона B4:F15.
