Вы можете полностью отказаться от функции автозаполнения с помощью формул массива . Просто введите формулу, как обычно, но добавьте :column
в конце каждой ссылки на ячейку, а затем нажмите Ctrl+ Shift+Enter . Формула будет применена сразу ко всем ячейкам в столбце, не перетаскивая ничего
Редактировать:
Более новые версии Excel будут автоматически использовать формулы массива для заполнения при появлении новой строки данных
Начиная с обновления для Office 365, выпущенного в сентябре 2018 года, любая формула, которая может возвращать несколько результатов, будет автоматически перетекать в соседние ячейки. Это изменение в поведении также сопровождается несколькими новыми функциями динамического массива. Формулы динамического массива, независимо от того, используют ли они существующие функции или функции динамического массива, нужно вводить только в одну ячейку, а затем подтверждать нажатием клавиши Enter. Ранее устаревшие формулы массива требовали сначала выбрать весь выходной диапазон, а затем подтвердить формулу с помощью Ctrl+ Shift+ Enter. Их обычно называют формулами CSE.
Рекомендации и примеры формул массива
Если вы используете старую версию Excel или хотите узнать больше о формулах массива, продолжайте чтение
Например, ввод =B3:B + 2*C3:C
D3 и Ctrl+ Shift+ Enterравносилен вводу =B3 + 2*C3
и перетаскиванию вниз в таблице, начиная со строки 3
Это быстро печатать, но имеет недостаток в том, что неиспользуемые ячейки в конце (вне текущей таблицы) все еще рассчитываются и показывают 0. Есть простой способ скрыть 0 . Однако еще лучший способ - ограничить вычисление последним столбцом таблицы. Зная, что в формуле массива вы можете использовать, X3:X101
чтобы применить только к ячейкам от X3 до X101, мы можем использовать INDIRECT
функцию для достижения того же эффекта
- Войдите
=LOOKUP(2, 1/(A:A <> ""), A:A)
в какую-нибудь ячейку за пределами таблицы, чтобы найти последнюю непустую ячейку в таблице и назовите ее LastRow
. В качестве альтернативы используйте, =COUNTA(A3:A) + 2
когда первая строка таблицы равна 3
- Тогда вместо
B3:B
использования=INDIRECT("B3:B" & LastRow)
Например, если вы хотите, чтобы ячейки в столбце D содержали продукты ячеек B и C, а столбец E содержит суммы B и C, вместо использования D3 = B3*C3
и E3 = B3 + C3
и перетаскивания вниз вы просто помещаете приведенные ниже формулы в D3 и E3 соответственно и нажимаете Ctrl+ Shift+Enter
=INDIRECT("B3:B" & LastRow) * INDIRECT("C3:C" & LastRow)
=INDIRECT("B3:B" & LastRow) + INDIRECT("C3:C" & LastRow)
С этого момента каждый раз, когда вы добавляете данные в новую строку, таблица будет автоматически обновляться
Формула массива очень быстрая, поскольку схема доступа к данным уже известна. Теперь вместо 100001 различных вычислений по отдельности их можно векторизовать и выполнять параллельно , используя несколько ядер и SIMD-модуль в ЦП. Он также имеет следующие преимущества:
- Согласованность: если вы щелкнете по любой ячейке от E2 вниз, вы увидите ту же формулу. Эта последовательность может помочь обеспечить большую точность.
- Безопасность: Вы не можете перезаписать компонент формулы массива из нескольких ячеек. Например, щелкните ячейку E3 и нажмите «Удалить». Вы должны либо выбрать весь диапазон ячеек (от E2 до E11) и изменить формулу для всего массива, либо оставить массив как есть. В качестве дополнительной меры безопасности вы должны нажать Ctrl+ Shift+, Enterчтобы подтвердить изменение формулы.
- Меньшие размеры файлов: часто вы можете использовать формулу одного массива вместо нескольких промежуточных формул. Например, книга использует одну формулу массива для вычисления результатов в колонке E. Если вы использовали стандартные формулы (такие как
=C2*D2
, C3*D3
, C4*D4
...), вы бы использовали 11 различных формул для расчета одни и те же результаты.
Рекомендации и примеры формул массива
Для получения дополнительной информации читайте