Как скопировать ячейки в excel с сохранением формул
Argument ‘Topic id’ is null or empty
Сейчас на форуме
© Николай Павлов, Planetaexcel, 2006-2023
info@planetaexcel.ru
Использование любых материалов сайта допускается строго с указанием прямой ссылки на источник, упоминанием названия сайта, имени автора и неизменности исходного текста и иллюстраций.
| ООО «Планета Эксел» ИНН 7735603520 ОГРН 1147746834949 |
ИП Павлов Николай Владимирович ИНН 633015842586 ОГРНИП 310633031600071 |
Копирование формул без сдвига ссылок
Предположим, что у нас есть вот такая несложная таблица, в которой подсчитываются суммы по каждому месяцу в двух городах, а затем итог переводится в евро по курсу из желтой ячейки J2.
Проблема в том, что если скопировать диапазон D2:D8 с формулами куда-нибудь в другое место на лист, то Microsoft Excel автоматически скорректирует ссылки в этих формулах, сдвинув их на новое место и перестав считать:
Задача: скопировать диапазон с формулами так, чтобы формулы не изменились и остались теми же самыми, сохранив результаты расчета.
Способ 1. Абсолютные ссылки
Как можно заметить по предыдущей картинке, Excel сдвигает только относительные ссылки. Абсолютная (со знаками $) ссылка на желтую ячейку $J$2 не сместилась. Поэтому для точного копирования формул можно временно перевести все ссылки во всех формулах в абсолютные. Нужно будет выделить каждую формулу в строке формул и нажать клавишу F4:

При большом количестве ячеек этот вариант, понятное дело, отпадает — слишком трудоемко.
Способ 2. Временная деактивация формул
- Выделяем диапазон с формулами (в нашем примере D2:D8)
- Жмем Ctrl+H на клавиатуре или на вкладке Главная — Найти и выделить — Заменить (Home — Find&Select — Replace)


Способ 3. Копирование через Блокнот
Этот способ существенно быстрее и проще.
Нажмите сочетание клавиш Ctrl+Ё или кнопку Показать формулы на вкладке Формулы (Formulas — Show formulas) , чтобы включить режим проверки формул — в ячейках вместо результатов начнут отображаться формулы, по которым они посчитаны:

Скопируйте наш диапазон D2:D8 и вставьте его в стандартный Блокнот:

Теперь выделите все вставленное (Ctrl+A), скопируйте в буфер еще раз (Ctrl+C) и вставьте на лист в нужное вам место:

Осталось только отжать кнопку Показать формулы (Show Formulas) , чтобы вернуть Excel в обычный режим.
Примечание: этот способ иногда дает сбой на сложных таблицах с объединенными ячейками, но в подавляющем большинстве случаев — работает отлично.
Способ 4. Макрос
Если подобное копирование формул без сдвига ссылок вам приходится делать часто, то имеет смысл использовать для этого макрос. Нажмите сочетание клавиш Alt+F11 или кнопку Visual Basic на вкладке Разработчик (Developer) , вставьте новый модуль через меню Insert — Module и скопируйте туда текст вот такого макроса:
Sub Copy_Formulas() Dim copyRange As Range, pasteRange As Range On Error Resume Next Set copyRange = Application.InputBox("Выделите ячейки с формулами, которые надо скопировать.", _ "Точное копирование формул", Default:=Selection.Address, Type:=8) If copyRange Is Nothing Then Exit Sub Set pasteRange = Application.InputBox("Теперь выделите диапазон вставки." & vbCrLf & vbCrLf & _ "Диапазон должен быть равен по размеру исходному " & vbCrLf & _ "диапазону копируемых ячеек.", "Точное копирование формул", _ Default:=Selection.Address, Type:=8) If pasteRange.Cells.Count <> copyRange.Cells.Count Then MsgBox "Диапазоны копирования и вставки разного размера!", vbExclamation, "Ошибка копирования" Exit Sub End If If pasteRange Is Nothing Then Exit Sub Else pasteRange.Formula = copyRange.Formula End If End Sub
Для запуска макроса можно воспользоваться кнопкой Макросы на вкладке Разработчик (Developer — Macros) или сочетанием клавиш Alt+F8. После запуска макрос попросит вас выделить диапазон с исходными формулами и диапазон вставки и произведет точное копирование формул автоматически:

Ссылки по теме
- Удобный просмотр формул и результатов одновременно
- Зачем нужен стиль ссылок R1C1 в формулах Excel
- Как быстро найти все ячейки с формулами
- Инструмент для точного копирования формул из надстройки PLEX
покупка
Как скопировать формулу ячейки только без форматирования в Excel?
Например, у меня есть два диапазона данных, и в одном из диапазонов данных были выполнены некоторые вычисления, и теперь мне нужно выполнить те же вычисления в другом диапазоне. Но я не хочу копировать форматирование диапазона 1 в диапазон 2, здесь в этом руководстве рассказывается о приемах решения этой проблемы в Excel.

Копировать формулу ячейки только без значений с помощью специальной вставки
Если вы напрямую скопируете и вставите ячейки формулы, форматирование ячеек будет вставлено вместе с формулой. А с помощью специальной вставки в Excel вы можете выбрать только копирование функции вставки формулы.
Выделите ячейки формулы, которые хотите скопировать, и нажмите Ctrl + C чтобы скопировать их, затем выберите ячейки, которые вы хотите вставить, и щелкните правой кнопкой мыши, чтобы отобразить контекстное меню, щелкните Специальная вставка > Формулы в Excel 2010 и 2013. Смотрите снимок экрана:

Внимание: В Excel 2007 после нажатия Вставить Special из контекстного меню открывается Специальная вставка диалоговое окно. В диалоговом окне отметьте Формулыи нажмите OK.

После этого вы увидите, что копируются только формулы.
Внимание: Ссылки на ячейки скопированных формул будут изменяться в зависимости от адресов ячеек назначения.

Копировать формулу ячейки только без значений путем копирования диапазонов
Есть мощная функция копирования — Копировать диапазоны в удобном инструменте Kutools for Excel. Используя диапазоны копирования, вы можете копировать только формат ячейки, формулу, значение, комментарии и т. Д.
Если вы не установили Kutools for Excel, просто получите его бесплатная установка сейчас. И после установки Kutools for Excel выполните следующие действия:
1. Выберите ячейки, которые хотите скопировать, и нажмите Кутулс > Копировать диапазоны. Смотрите скриншот:

2. в Копировать несколько диапазонов диалог, проверьте Формулы только вариант, затем нажмите Ok и выбрать ячейки для вставки формул. Смотрите скриншоты:


3. Нажмите OK. Теперь в ячейки вставляются формулы без форматирования. Смотрите скриншот:

Примечание: Ссылки на ячейки скопированных формул изменятся в зависимости от адресов ячеек назначения.
Копировать формулу ячейки без изменения ссылки на ячейку с помощью Exact Copy
Помимо копирования только формул, иногда может потребоваться скопировать формулы ячеек и сохранить ссылки на ячейки. Например, вы копируете формулу = MAX (B2: B14) ячейки Sheet1! B16 в ячейку Sheet2! D1, формула также = MAX (B2: B14).
Здесь, в Kutools for Excel, Точная копия Утилита может оказать вам услугу.
1. Выберите ячейки формулы, которые необходимо скопировать, и нажмите Кутулс > Точная копия. Смотрите скриншот:

2. Затем в Точная копия формулы диалог, снимите флажок Копировать форматированиеи нажмите Ok для выделения ячеек нужна формула вставки. Смотрите скриншоты:


3. Нажмите OK. Теперь формулы вставлены с сохранением ссылки на ячейку. Смотрите скриншот:

Вы можете бесплатно использовать более 100 полезных утилит в течение 60 дней, почему бы не попробовать? Бесплатная установка Kutools for Excel прямо сейчас!
Перемещение и копирование формулы
Важно помнить о возможностях изменения относительной ссылки на ячейку при переходе или копировании формулы.
- Перемещение формулы При этом ссылки на ячейки в формуле не изменяются независимо от типа ссылки на ячейку.
- Копирование формулы: При копировании формулы изменяются относительные ссылки на ячейки.
Перемещение формулы
- Выделите ячейку с формулой, которую необходимо переместить.
- В группе Буфер обмена на вкладке Главная нажмите кнопку Вырезать. Формулы можно скопировать и путем перетаскивания границы выделенной ячейки в левую верхнюю ячейку области вставки. При этом будут заменяться все существующие данные.
- Выполните одно из указанных ниже действий.
- Чтобы вировать формулу иформатирование: в группе Буфер обмена на вкладке Главная нажмите кнопку В виде вкладки.
- Чтобы вировать только формулу:в группе Буфер обмена на вкладке Главная нажмите кнопку В paste(Главная), выберите специальная ветвь ищелкните Формулы.
Копирование формулы
- Вы выберите ячейку, содержащую формулу, которую нужно скопировать.
- В группе Буфер обмена на вкладке Главная нажмите кнопку Копировать.
- Выполните одно из указанных ниже действий.
- Чтобы вировать формулу и любое форматирование, в группе Буфер обмена на вкладке Главная нажмите кнопку В виде вкладки.
- Чтобы вировать только формулу, в группе Буфер обмена на вкладке Главная нажмите кнопку Вировать ,выберите специальная ветвь ,а затем щелкните Формулы.
Примечание: В нее можно вклеить только результаты формулы. В группе Буфер обмена на вкладке Главная нажмите кнопку Вировать, выберите специальная ветвь ,а затем щелкните Значения.
- Выделите ячейку с формулой.
- В строке формул строка формул
Копируемая формула
Первоначальная ссылка
Новая ссылка
$A$1 (абсолютный столбец и абсолютная строка)
A$1 (относительный столбец и абсолютная строка)
$A1 (абсолютный столбец и относительная строка)
A1 (относительный столбец и относительная строка)
Примечание: Формулы также можно копировать в смежные ячейки с помощью маркер заполнения
. После проверки на то, что ссылки на ячейки в формуле дают нужный результат в шаге 4, вы выберите ячейку со скопированной формулой и перетащите его по диапазону, который вы хотите заполнить.
Перемещение формул очень похоже на перемещение данных в ячейках. Единственное, что нужно знать, — ссылки на ячейки, используемые в формуле, остаются нужными после перемещения.

- Вы выберите ячейку с формулой, которую вы хотите переместить.
- Щелкните Главная >вырезать (или нажмите CTRL+X).

Выйдите из ячейки, в которая должна вться формула, и нажмите кнопку Вировать (или нажмите CTRL+V).

Совет: Вы также можете щелкнуть ячейки правой кнопкой мыши, чтобы вырезать и врезать формулу.
Совет: Формулу также можно скопировать и вкопировать в другую ячейку или на другой таблицу.
Дополнительные сведения
Вы всегда можете задать вопрос эксперту в Excel Tech Community или получить поддержку в сообществах.