Корпорация Майкрософт представила оператор неявного пересечения в рамках значительного обновления языка формул Excel для поддержки динамических массивов. Динамические массивы обеспечивают новые существенные вычислительные операции и функциональные возможности для Excel.
Обновленный язык формул
Обновленный язык формул Excel практически идентичен старому, за исключением того, что в нем используется оператор @, который указывает, в каких случаях может происходить неявное пересечение, тогда как в старом языке это никак не отображалось. В результате вы можете заметить, что символ @ появляется в некоторых формулах при открытии в Excel с динамическим массивом. Ваши формулы вычисляются так же, как и всегда.
Что такое неявное пересечение?
Логика неявного пересечения сводит множество значений к одному. Это было реализовано в 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 может возвращать массивы. В этом случае исходная формула запускает неявное пересечение. |
Использование оператора @ в новых формулах
При создании или редактировании в Excel с функцией динамических массивов формулы с оператором @ она может отображаться как _xlfn. SINGLE() в Excel без динамических массивов.
Это поведение возникает при выполнении смешанной формулы. Смешанная формула — это формула, которая основывается как на вычислении массива, так и на неявном пересечении. Додинамические массивы Excel не поддерживает такое сочетание. Excel без функции динамических массивов поддерживает только формулы, в которых выполняется 1) неявное пересечение или 2) вычисление массива.
Когда Excel с функцией динамических массивов обнаруживает создание смешанной формулы, он предлагает вариант формулы с неявным пересечением. Например, если вы введете запрос =A1:A10+@A1:A10, , отобразится следующее диалоговое окно:
Если вы отклоните формулу, предложенную в диалоговом окне, будет зафиксирована смешанная формула =A1:A10+@A1:A10 . Если позже вы откроете эту формулу в версии Excel без функции динамических массивов, она будет отображаться так же, как =A1:A10+_xlfn.SINGLE(A1:A10) и операторы @ в смешанной формуле: _xlfn.SINGLE(). Если Excel оценивает эту формулу без функции динамических массивов, он возвращает #NAME! значение ошибки #ЗНАЧ!.
Дополнительные сведения
Вы всегда можете задать вопрос эксперту в Excel Tech Community или получить поддержку в сообществах.