Работаете с большими таблицами в Microsoft Excel и тратите время на растягивание формул мышью? Это не только медленно, но и чревато ошибками — достаточно случайно протянуть формулу не до того столбца или строки. К счастью, в Excel есть несколько способов автоматически копировать формулы до конца данных только с помощью клавиатуры. Причём некоторые из них работают даже быстрее, чем привычный двойной клик по маркеру заполнения.
В этой статье вы найдёте 5 проверенных методов — от классического Ctrl+D до малоизвестных комбинаций для продвинутых пользователей. Мы разберём, как протянуть формулу вниз, вправо и даже в обе стороны одновременно, а также покажем, как избежать типичных ошибок (например, когда формула копируется не до конца таблицы, а до последней строки листа). Все способы протестированы в Excel 2013–2026 и Excel 365, включая веб-версию.
Если вы регулярно работаете с формулами типа СУММ, ВПР или ИНДЕКС(ПОИСКПОЗ()), эти приёмы сэкономят вам часы в месяц. А для тех, кто любит автоматизацию, в конце статьи есть бонус — как протянуть формулу до конца таблицы одной клавишей (спойлер: это возможно с макросом).
1. Классический способ: Ctrl+D и Ctrl+R для копирования вниз и вправо
Самый простой и универсальный метод — использование горячих клавиш Ctrl+D (вниз) и Ctrl+R (вправо). Он работает в 99% случаев и не требует предварительной настройки.
Как использовать:
- Введите формулу в первую ячейку диапазона (например,
=A1*B1в ячейкеC1). - Выделите ячейку с формулой и все ячейки ниже (или справа), куда её нужно скопировать. Например, если данные до строки 100, выделите
C1:C100. - Нажмите
Ctrl+D(для копирования вниз) илиCtrl+R(для копирования вправо).
✅ Плюсы:
- 🔹 Работает во всех версиях Excel, включая онлайн.
- 🔹 Не требует мыши — только клавиатура.
- 🔹 Сохраняет относительные и абсолютные ссылки (
$A$1).
❌ Минусы:
- 🔸 Нужно заранее знать, до какой строки протягивать формулу (иначе придётся повторять действие).
- 🔸 Если в выделенном диапазоне есть пустые ячейки, формула скопируется некорректно.
2. Двойной клик мышью + клавиатурный аналог (малоизвестный трюк)
Многие знают, что по маркеру заполнения (маленький квадратик в правом нижнем углу ячейки) можно дважды кликнуть, и формула автоматически протянется до конца соседнего столбца с данными. Но этот же трюк можно сделать без мыши!
Алгоритм действий:
- Выделите ячейку с формулой (например,
D2). - Нажмите
Alt+H, затемF, затемI, затемS(это путь к командеГлавная → Заполнить → Вниз). - Excel автоматически протянет формулу до первой пустой ячейки в соседнем столбце (аналогично двойному клику).
🔹 Когда это удобно:
- 📌 Если данные в соседнем столбце заканчиваются не на последней строке листа.
- 📌 Когда нужно протянуть формулу до динамически меняющегося конца таблицы.
3. Горячие клавиши для протягивания до конца листа (Ctrl+Shift+End)
Если ваша таблица занимает весь лист или вы хотите протянуть формулу до последней заполненной ячейки на листе (а не только до конца столбца), используйте комбинацию Ctrl+Shift+End. Этот метод полезен для больших отчётов, где данные разбросаны по всему листу.
Пошаговая инструкция:
- Выделите ячейку с формулой (например,
E1). - Нажмите
Shift+Space, чтобы выделить всю строку. - Затем нажмите
Ctrl+Shift+End— Excel выделит все ячейки до последней заполненной строки и столбца. - Теперь нажмите
Ctrl+D, чтобы скопировать формулу вниз.
⚠️ Внимание:
Если на листе есть пустые строки или столбцы,
Ctrl+Shift+Endможет выделить область не до конца данных, а до первой пустой ячейки. Перед использованием этого метода убедитесь, что таблица не содержит "дыр".
📊 Сравнение методов протягивания:
| Способ | Клавиши | Куда копирует | Работает с пустыми ячейками? |
|---|---|---|---|
| Ctrl+D/R | Ctrl+D / Ctrl+R |
До конца выделенного диапазона | Нет |
| Двойной клик (клавиатурный) | Alt+HFI |
До конца соседнего столбца | Да |
| Ctrl+Shift+End | Ctrl+Shift+End + Ctrl+D |
До последней ячейки листа | Нет |
4. Автозаполнение с помощью таблиц Excel (лучший способ для динамических данных)
Если вы преобразуете свой диапазон в умную таблицу Excel (Ctrl+T), то формулы будут автоматически протягиваться при добавлении новых строк! Это идеальный вариант для отчётов, которые регулярно обновляются.
Как это работает:
- Выделите диапазон с данными (включая заголовки).
- Нажмите
Ctrl+T, чтобы преобразовать в таблицу. - Введите формулу в первую ячейку столбца (например,
=СУММ(Таблица1[@[Столбец1]:[Столбец2]])). - Формула автоматически скопируется на все строки таблицы, включая новые!
🔥 Почему это круто:
- 🔥 Формулы обновляются динамически — не нужно протягивать вручную.
- 🔥 Можно использовать структурированные ссылки (например,
Таблица1[@Сумма]). - 🔥 Легко добавлять новые строки без риска сломать формулы.
Выделить диапазон с заголовками|Нажать Ctrl+T|Подтвердить создание таблицы|Ввести формулу в первый столбец|Проверить автозаполнение-->
5. Макрос для протягивания формулы одной клавишей (для продвинутых)
Если вам надоело повторять одни и те же действия, можно записать простой макрос, который будет протягивать формулу до конца данных по нажатию одной клавиши. Например, назначить это действие на Ctrl+Shift+F.
Код макроса (для копирования вниз):
Sub FillFormulaDown()
Dim rng As Range
Set rng = Selection
rng.AutoFill Destination:=rng.Resize( _
Cells(Rows.Count, rng.Column).End(xlUp).Row - rng.Row + 1, 1)
End Sub
Как настроить:
- Нажмите
Alt+F11, чтобы открыть редактор VBA. - Вставьте код выше в новый модуль.
- Назначьте макрос на горячую клавишу через
Файл → Параметры → Настройка ленты → Сочетания клавиш.
⚠️ Внимание:
Макросы работают только в настольной версии Excel (не в онлайн-версии). Также убедитесь, что в настройках безопасности разрешено выполнение макросов (
Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Настройки макросов).
Как протянуть формулу в обе стороны (вниз и вправо)
Используйте этот макрос:
Sub FillFormulaBoth()
Dim rng As Range
Set rng = Selection
' Вниз
rng.AutoFill Destination:=rng.Resize( _
Cells(Rows.Count, rng.Column).End(xlUp).Row - rng.Row + 1, 1)
' Вправо
rng.AutoFill Destination:=rng.Resize(1, _
Cells(rng.Row, Columns.Count).End(xlToLeft).Column - rng.Column + 1), Type:=xlFillDefault
End Sub
Этот код сначала протягивает формулу вниз до конца данных, а затем вправо до последнего заполненного столбца.
Типичные ошибки и как их избежать
Даже опытные пользователи иногда сталкиваются с проблемами при копировании формул. Вот самые распространённые ошибки и их решения:
🔸 Формула копируется не до конца данных, а до конца листа
- 🔹 Причина: В диапазоне есть пустые строки или столбцы.
- 🔹 Решение: Перед протягиванием удалите пустые строки или используйте умную таблицу (
Ctrl+T).
🔸 Формула не обновляется при добавлении новых строк
- 🔹 Причина: Вы не используете умную таблицу или абсолютные ссылки (
$A$1). - 🔹 Решение: Преобразуйте диапазон в таблицу (
Ctrl+T) или проверьте ссылки в формуле.
🔸 Вместо формулы копируется значение
- 🔹 Причина: Включён режим
Показать формулы(Ctrl+`) или ячейка отформатирована как текст. - 🔹 Решение: Отключите показ формул (
Ctrl+`) или измените формат ячейки наОбщий.
FAQ: Ответы на частые вопросы
Можно ли протянуть формулу до конца таблицы, если данные в соседнем столбце не сплошные?
Да, но нужно использовать умную таблицу (Ctrl+T) или макрос. Стандартное автозаполнение (Ctrl+D или двойной клик) остановится на первой пустой ячейке.
Почему при протягивании формулы ссылки на ячейки не меняются?
Скорее всего, в формуле используются абсолютные ссылки (например, $A$1). Замените их на относительные (A1) или смешанные ($A1 или A$1).
Как протянуть формулу в Google Таблицах?
В Google Sheets работают те же принципы:
- 🔹 Двойной клик по маркеру заполнения.
- 🔹 Горячие клавиши:
Ctrl+D(вниз),Ctrl+R(вправо). - 🔹 Для автозаполнения до конца данных:
Ctrl+Shift+↓→Ctrl+D.
Можно ли протянуть формулу вверх?
Да! Выделите ячейку с формулой и все ячейки выше, затем нажмите Ctrl+Shift+↑, а потом Ctrl+D. Или используйте макрос:
Sub FillFormulaUp()
Dim rng As Range
Set rng = Selection
rng.AutoFill Destination:=Range(rng.Cells(1, 1), Cells(rng.Row, rng.Column).End(xlUp))
End Sub
Почему формула копируется некорректно при использовании ВПР или ИНДЕКС?
Проблема обычно в незафиксированных диапазонах. Например, в формуле =ВПР(A1;B:C;2;0) диапазон B:C должен быть абсолютным: =ВПР(A1;$B:$C;2;0). Иначе при копировании он сдвинется на C:D, D:E и т.д.