Оператор неявного пересечения: @

Применяется к
Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel 2024 Excel 2021 Excel 2019 Excel 2016

В рамках значительного обновления языка формул Excel в целях обеспечения поддержки динамических массивов был добавлен оператор неявного пересечения. Динамические массивы обеспечивают новые существенные вычислительные операции и функциональные возможности для Excel.

Обновленный язык формул

Обновленный язык формул Excel практически идентичен старому, за исключением того, что в нем используется оператор @, который указывает, в каких случаях может происходить неявное пересечение, тогда как в старом языке это никак не отображалось. В результате вы можете заметить@'s appear in some formulas when opened in dynamic array Excel. It', что важно отметить, что ваши формулы будут продолжать вычисляться так же, как они всегда.  

Что такое неявное пересечение?

Логика неявного пересечения сводит множество значений к одному. Это было реализовано в Excel для того, чтобы формула возвращала одно значения, т.к. ячейка может содержать одно значение. Если ваша формула возвращала одно значение, значит неявное пересечение ничего не делало (хотя технически это происходило в фоновом режиме). Этот процесс описан ниже.

  • Если значением является один элемент, возвращается этот элемент.
  • Если значением является диапазон, возвращается значение из ячейки, находящейся в той же строке или столбце, что и формула.
  • Если значением является массив, выберите значение слева вверху.

С появлением динамических массивов Excel больше не ограничивается возвратом отдельных значений из формул, поэтому скрытое неявное пересечение больше не требуется. Если раньше формула могла незаметно выполнять неявное пересечение, то теперь динамические массивы позволяют Excel показывать неявное пересечение при помощи символа @ в соответствующем месте.  

Почему выбран именно символ @?

Символ @ уже используется в ссылках на таблицы для обозначения неявного пересечения. Рассмотрим следующую формулу в таблице =[@Column1]. Здесь символ @ указывает, что в формуле должно применяться неявное пересечение для получения значения в той же строке из [Столбец1].  

Можно ли удалить @?

Зачастую это возможно. Это зависит от того, что именно возвращает часть формулы справа от символа @:

  • Если она возвращает одно значение (наиболее распространенный случай), от удаления @ ничего не изменится.
  • Если возвращается диапазон или массив, удаление @ приведет к тому, что он будет разлиться в соседние ячейки.

Если удалить автоматически добавленный @ и позже открыть книгу в более старой версии Excel, она будет отображаться в виде устаревшей формулы массива (в оболочке с фигурными скобками {}), это делается для того, чтобы более старая версия не активировала неявное пересечение.

Когда @ добавляется в старые формулы?

Как правило, функции, которые возвращают диапазоны или массивы с несколькими ячейками, будут иметь префикс @, если они были созданы в более старой версии Excel. Важно отметить, что поведение формулы при этом не меняется — просто теперь вы можете увидеть ранее невидимое неявное пересечение. К распространенным функциям, которые могут возвращать диапазоны с несколькими ячейками, относятся функции ИНДЕКС, СМЕЩЕНИЕ и пользовательские функции (UDF).  Распространенным исключением является случай, когда они заключены в функцию, которая принимает массив или диапазон (например, SUM() или AVERAGE()). 

Дополнительные сведения см. в статье Функции Excel, возвращающие диапазоны или массивы.

Примеры

Исходная формула Как видно в динамическом массиве Excel Описание
=SUM(A1:A10) =SUM(A1:A10) Никаких изменений — неявное пересечение произойти не могло, поскольку функция SUM ожидает диапазоны или массивы.
=A1+A2 =A1+A2 Никаких изменений — неявное пересечение произойти не могло.
=A1:A10 =@A1:A10 Произойдет неявное пересечение, и Excel вернет значение, связанное со строкой, в которой находится формула.
=INDEX(A1:A10,B1) =@INDEX(A1:A10,B1) Неявное пересечение возможно. Функция ИНДЕКС может возвращать массив или диапазон, если ее второй или третий аргумент равен 0.
=OFFSET(A1:A2,1,1) =@OFFSET(A1:A2,1,1) Неявное пересечение возможно. Функция OFFSET может возвращать диапазон с несколькими ячейками. В этом случае может иметь место неявное пересечение.
=MYUDF() =@MYUDF() Неявное пересечение возможно. Пользовательские функции могут возвращать массивы. В этом случае исходная формула вызвала бы неявное пересечение.

Использование оператора @ в новых формулах

При создании или редактировании в Excel с функцией динамических массивов формулы с оператором @ она может отображаться как _xlfn. SINGLE() в версии Excel без динамических массивов.

Это происходит при выполнении смешанной формулы. Смешанная формула — это формула, которая основывается как на вычислении массива, так и на неявном пересечении. Такой возможности не было до появлении Excel с динамическими массивами. В версиях без динамических массивов поддерживались только формулы, в которых выполнялось неявное пересечение i) или вычисление массива ii).

Когда Excel с функцией динамических массивов обнаруживает создание "смешанной формулы", будет предложен вариант формулы с неявным пересечением. Например, при вводе =A1:A10+@A1:A10,появится следующее диалоговое окно:

Диалоговое окно с вопросом о замене текущего варианта формулы на =@A1:A10 + @A1:A10.

Если вы решили отклонить формулу, предложенную диалоговым окном, смешанная формула =A1:A10+@A1:A10 будет зафиксирована. Если позже вы откроете эту формулу в excel с предварительно динамическим массивом, она будет отображаться как =A1:A10+_xlfn.SINGLE(A1:A10) @'s в смешанной формуле, отображающейся как _xlfn.SINGLE(). Если эта формула вычисляется с помощью предварительно динамического массива Excel, она вернет #NAME! значение ошибки #ЗНАЧ!. 

Дополнительные сведения

Вы всегда можете обратиться к эксперту в техническом сообществе Excel или получить поддержку в сообществах.

См. также

Функция ФИЛЬТР

Функция СЛУЧМАССИВ

Функция ПОСЛЕДОВ

Функция СОРТ

Функция СОРТПО

Функция УНИК

Ошибки #ПЕРЕНОС! в Excel

Динамические массивы и поведение рассеянного массива