Макрос excel копирование формулы

Копирование формул без сдвига ссылок

Проблема

Предположим, что у нас есть вот такая несложная таблица, в которой подсчитываются суммы по каждому месяцу в двух городах, а затем итог переводится в евро по курсу из желтой ячейки J2.

exact-formulas-copy1.png

Проблема в том, что если скопировать диапазон D2:D8 с формулами куда-нибудь в другое место на лист, то Microsoft Excel автоматически скорректирует ссылки в этих формулах, сдвинув их на новое место и перестав считать:

exact-formulas-copy2.png

Задача: скопировать диапазон с формулами так, чтобы формулы не изменились и остались теми же самыми, сохранив результаты расчета.

Способ 1. Абсолютные ссылки

Как можно заметить по предыдущей картинке, Excel сдвигает только относительные ссылки. Абсолютная (со знаками $) ссылка на желтую ячейку $J$2 не сместилась. Поэтому для точного копирования формул можно временно перевести все ссылки во всех формулах в абсолютные. Нужно будет выделить каждую формулу в строке формул и нажать клавишу F4:

exact-formulas-copy9.png

При большом количестве ячеек этот вариант, понятное дело, отпадает — слишком трудоемко.

Способ 2. Временная деактивация формул

Чтобы формулы при копировании не менялись, надо (временно) сделать так, чтобы Excel перестал их рассматривать как формулы. Это можно сделать, заменив на время копирования знак «равно» (=) на любой другой символ, не встречающийся обычно в формулах, например на «решетку» (#) или на пару амперсандов (&&). Для этого:

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

    exact-formulas-copy3.png

  3. В появившемся диалоговом окне вводим что ищем и на что заменяем и в Параметрах (Options) не забываем уточнить Область поиска — Формулы. Жмем Заменить все (Replace all).
  4. Копируем получившийся диапазон с деактивированными формулами в нужное место:

    exact-formulas-copy4.png

  5. Заменяем # на = обратно с помощью того же окна, возвращая функциональность формулам.

Способ 3. Копирование через Блокнот

Этот способ существенно быстрее и проще.

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

exact-formulas-copy5.png

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

exact-formulas-copy6.png

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

exact-formulas-copy7.png

Осталось только отжать кнопку Показать формулы (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. После запуска макрос попросит вас выделить диапазон с исходными формулами и диапазон вставки и произведет точное копирование формул автоматически:

exact-formulas-copy8.png

Ссылки по теме

  • Удобный просмотр формул и результатов одновременно
  • Зачем нужен стиль ссылок R1C1 в формулах Excel
  • Как быстро найти все ячейки с формулами
  • Инструмент для точного копирования формул из надстройки PLEX

Владимир_Сар

58 / 57 / 13

Регистрация: 10.09.2009

Сообщений: 255

1

Подскажите, как копировать формулы с ячеек листа екселя на другой лист

20.10.2009, 15:34. Показов 8098. Ответов 4

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Пробовал по разному

Visual Basic
1
Worksheets("Main").Cells(r , k) = Worksheets(List).Cells(r ,  k)

копирует значение, но не формулу, потом попробовал по стандарту

Visual Basic
1
2
3
4
5
6
Worksheets(List).Activate
        Cells(r , k).Select
        Selection.Copy
        Worksheets("Main").Activate
        Cells(r , k).Select
        ActiveSheet.Paste

Если слишком много ячеек копировать противно мерцает экран
Может еще есть способы, буду Вам благодарен



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

20.10.2009, 15:34

4

EducatedFool

0 / 0 / 0

Регистрация: 28.09.2009

Сообщений: 88

20.10.2009, 16:30

2

Visual Basic
1
2
3
Sub test()
    Worksheets(List).Cells(r, k).Copy Worksheets("Main").Cells(r, k)
End Sub



0



58 / 57 / 13

Регистрация: 10.09.2009

Сообщений: 255

20.10.2009, 16:40

 [ТС]

3

Спасибо, правда долго копирует



0



Toxa33rus

3895 / 898 / 122

Регистрация: 16.04.2009

Сообщений: 1,824

20.10.2009, 16:43

4

Может так попробовать:

Visual Basic
1
Worksheets("Main").Cells(r, k).formula = Worksheets(List).Cells(r, k).formula



1



58 / 57 / 13

Регистрация: 10.09.2009

Сообщений: 255

20.10.2009, 16:48

 [ТС]

5

Спасибо этот вариант гораздо быстрее



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

20.10.2009, 16:48

5

Группа: Пользователи

Ранг: Новичок

Сообщений: 45


Репутация:

0

±

Замечаний:
20% ±


Excel 2007

Здравствуйте, может мой вопрос уже изъезжен, но не могу найти решение.
Необходимо скопировать формулу из ячейки одного документа в ячейку другого документа.
Опишу кратко, код там большой но все упирается в следующий отрезок.
Допустим в ячейке есть формула A1+B1
[vba]

Код

Set WS1 = Workbooks.Item(«Договоры1.xlsm»).Sheets(«Договоры»)
Set WS2 = Workbooks.Item(«Договоры2.xlsm»).Sheets(«Договоры»)
WS1.Cells(1, 2).Copy: WS2.Cells(1, 2).PasteSpecial xlPasteValues   ‘Копирую значения
WS1.Cells(1, 2).Copy: WS2.Cells(1, 2).PasteSpecial xlPasteFormulas    ‘Копирую формулы

[/vba]

В итоге в файл «Договоры2» копируется ячейка, а формула в ней ссылается на ячейки файла «Договоры1»
с результатом ‘C:…Договоры1′!A1+C:…Договоры1’!B1
Как быть? нужно чтобы получилось A1+B1
Я так понимаю можно какой то приписать параметр может быть?

Предположим, что у нас есть вот такая несложная таблица, в которой подсчитываются суммы по каждому месяцу в двух городах, а затем итог переводится в евро по курсу из желтой ячейки J2.

Проблема в том, что если скопировать диапазон D2:D8 с формулами куда-нибудь в другое место на лист, то Microsoft Excel автоматически скорректирует ссылки в этих формулах, сдвинув их на новое место и перестав считать:

Задача: скопировать диапазон с формулами так, чтобы формулы не изменились и остались теми же самыми, сохранив результаты расчета.

Чтобы формулы при копировании не менялись, надо (временно) сделать так, чтобы Excel перестал их рассматривать как формулы. Это можно сделать, заменив на время копирования знак «равно» (=) на любой другой символ, не встречающийся обычно в формулах, например на «решетку» (#) или на пару амперсандов (&&). Для этого:

  • В появившемся диалоговом окне вводим что ищем и на что заменяем и в Параметрах (Options) не забываем уточнить Область поиска — Формулы. Жмем Заменить все (Replace all) .
  • Копируем получившийся диапазон с деактивированными формулами в нужное место:

  • Заменяем # на = обратно с помощью того же окна, возвращая функциональность формулам.
  • Способ 3. Копирование через Блокнот

    Этот способ существенно быстрее и проще.

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

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

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

    Осталось только отжать кнопку Показать формулы (Show Formulas) , чтобы вернуть Excel в обычный режим.

    Примечание: этот способ иногда дает сбой на сложных таблицах с объединенными ячейками, но в подавляющем большинстве случаев — работает отлично.

    Способ 4. Макрос

    Если подобное копирование формул без сдвига ссылок вам приходится делать часто, то имеет смысл использовать для этого макрос. Нажмите сочетание клавиш Alt+F11 или кнопку Visual Basic на вкладке Разработчик (Developer) , вставьте новый модуль через меню Insert — Module и скопируйте туда текст вот такого макроса:

    Для запуска макроса можно воспользоваться кнопкой Макросы на вкладке Разработчик (Developer — Macros) или сочетанием клавиш Alt+F8. После запуска макрос попросит вас выделить диапазон с исходными формулами и диапазон вставки и произведет точное копирование формул автоматически:

    Как скопировать формулу/формулы в Excel, копирование и вставка формул

    Работа с формулами является неотъемлемой частью создания и редактирования таблиц в Excel. При этом создаются как простые, так и вложенные формулы, содержащие относительные, абсолютные и смешанные ссылки на ячейки. При внесении формул в таблицы, наиболее распространенными операциями являются копирование и вставка формул.

    Что такое формула?

    Формулы — это некоторые выражения, выполняющие вычисления между операндами при помощи операторов. Формулам всегда предшествует знак равенства, за которым следуют операнды и операторы.

    Операнды — это элементы вычисления (ссылки, функции и константы ).

    Ссылки — это адреса ячеек или их диапазонов.

    Функции — это заранее созданные формулы, выполняющие сложные вычисления с введенными значениями (аргументами) в определенном порядке. Различают математические, статистические, текстовы, логические и другие категории функций.

    Константы — это постоянные значения, как текстовые, так и числовые.

    Операторы — это знаки или символы, определяющие тип вычисления в формуле над операндами. Используются математические, текстовые, операторы сравнения и операторы ссылок.

    Ссылки в формулах

    Для создания связей между ячейками используются ссылки. Различают три типа ссылок — относительные, абсолютные и смешанные. По умолчанию в Excel используются относительные ссылки.

    Относительные ссылки на ячейки

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

    Абсолютные ссылки на ячейки

    Абсолютная ссылка — это неизменяемая ссылка на ячейку, то есть при изменении позиции ячейки с формулой адрес ячейки с абсолютной ссылкой остается неизменным. Абсолютная ссылка указывается символом $ перед именем (номером) столбца и перед номером строки, например $A$1.

    Смешанные ссылки на ячейки

    Смешанная ссылка — это комбинация относительных и абсолютных ссылок, когда используется либо абсолютная ссылка на столбец и относительная на строку, либо абсолютная на строку и относительная на столбец, например $A1 или A$1. При изменении позиции ячейки с формулой, содержащей смешанные ссылки, относительная часть ссылки изменяется, а абсолютная остается неизменной.

    Трехмерные ссылки на ячейки

    Трехмерные ссылки — это ссылки на одну и ту же ячейку или даипазон ячеек, расположенных на нескольких листах одной книги. Трехмерная ссылка кроме имени столбца и номера строки включает в себя имя листа и имеет следующий вид Лист1:Лист3!А1.

    Как создать формулу и ввести ее в ячейку?

    Формулу можно вводить как непосредственно в ячейку, так и в окно ввода на строке формул. В ячейке с формулой отображается результат вычисления, а в окне ввода строки формул отображается текст формулы.

    Простые формулы

    Простая формула — это формула, содержащая только числовые константы и операторы.

    Для того чтобы создать простую формулу, необходимо:

    — выделить ячейку, в которой будет находиться формула;

    — ввести с клавиатуры символ равно (=);

    — ввести число, затем знак действия, затем следующее число и так далее (например =2+3*4);

    — нажать Enter для перехода вниз, Shift+Enter для перехода вверх, Tab для перехода вправо или Shift+Tab для перехода влево.

    Формулы с использованием относительных ссылок

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

    — выделить ячейку, в которой будет находиться формула;

    — ввести символ равенства (=) с клавиатуры;

    — ввести адрес ячейки, содержащей нужное значение (можно кликнуть курсором мыши по нужной ячейке);

    — вставить в формулу оператор, ввести адрес следующей ячейки и так далее;

    — завершить создание формулы аналогично тому, как это описано в предыдущем случае.

    Формулы с использованием абсолютных ссылок

    Формулы с использованием абсолютных ссылок создаются с небольшим отличием от формул использующим относительные ссылки. Для создания формулы этого типа необходимо:

    — выделить ячейку, в которой будет находится формула;

    — ввести символ равенства (=) с клавиатуры;

    — создать нужную формулу с использованием относительных ссылок на ячейки;

    — не закрепляя созданную формулу, кликнуть курсором ввода текста в адресном окошке перед адресом той ячейки, которую необходимо сделать абсолютной ссылкой;

    — нажать на клавиатуре F4;

    — завершить создание формулы клавишей Enter.

    Как ввести одну формулу одновременно в несколько ячеек?

    Для ввода одной формулы в диапазон ячеек необходимо:

    — выделить диапазон ячеек;

    — ввести формулу в первую ячейку диапазона;

    — закрепить результат сочетанием клавиш Ctrl+Enter.

    Как выделить все ячейки с формулами?

    В версиях приложения Excel 2007 и выше существует возможность выделять группы ячеек, объединенные общим признаком, например можно найти и выделить все ячейки, содержащие формулы. Для этого на вкладке «Главная» нужно раскрыть меню кнопки «Найти и выделить» и выбрать пункт «Формулы» в списке команд.

    Как скопировать формулу из одной ячейки в другую?

    При копировании формулы из одной ячейки в другую все ссылки, которые используются в формуле, автоматически корректируются и заменяются в соответствии с новым положением формулы.

    Скопировать формулу из выбранной ячейки можно любым известным способом (при помощи кнопки «Копировать» на вкладке «Главная», при помощи сочетания горячих клавиш Ctrl+C, при помощи пункта «Копировать» в контекстном меню и так далее). После того как формула скопирована, необходимо выделить ячейку, в которую нужно вставить формулу и использовать любой известный способ вставки (кнопкой «Вставить» на вкладке «Главная», сочетанием горячих клавиш Ctrl+V, выбрав пункт «Вставить» из контекстного меню, выбрав пункт «Специальная вставка»). После этого закрепить результат кликом по клавише Enter. Для копирования формулы можно использовать также способ, при котором курсор мыши наводится на правый нижний угол маркера выделения до появления тонкого черного крестика и при нажатой левой кнопке мыши протягивается по всему диапазону. При этом в каждой следующей ячейке формула будет иметь ссылки на новые соответствующие ячейки.

    Если нужно скопировать формулу так, чтобы ссылки на адреса ячеек остались неизменными, то необходимо либо относительные ссылки превратить в абсолютные, либо скопировать текст формулы в строке ввода формул.

    Как заменить формулу результатом ее вычисления?

    Если скопировать ячейку или диапазон ячеек с формулами, а вставку осуществить при помощи пункта «Вставить значения» (вкладка «Главная»/группа «Буфер обмена»/кнопка «Вставить», либо контекстное меню «Специальная вставка»/»Значения»), то в результате этой операции вместо формул будут отображены значения, полученные в результате вычисления этих формул. Если скопировать диапазон ячеек с формулами и в этот же диапазон вставить значения, то формулы этого диапазона будут заменены результатами их вычислений.

    Как ускорить работу с формулами при создании и редактировании таблиц?

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

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

    Надстройка позволяет:

    1. Одним кликом мыши вызывать диалоговое окно макроса прямо из панели инструментов Excel;

    2. в выбранном диапазоне находить ячейки с формулами, копировать их и вставлять с заданным смещением;

    3. выбирать один из трех режимов копирования формул:

    — «Скопировать формулы» — простое копирование формул, при котором все ссылки, используемые в формулах, автоматически изменяются в соответствии с новым размещением формул;

    — «Скопировать текст формул» — точное копирование формул, без изменения ссылок, используемых в формулах;

    — «Скопировать значения формул» — копирование, при котором формулы заменяется результатамм их вычислений.

    4. заменять формулы выбранного диапазона результатами вычисления (если выбрать опцию «Скопировать значения формул», а в полях, где задается смещение установить нули).

    Excel. Перемещение формул без изменения относительных ссылок

    На днях дочь обратилась с проблемой. Она построила сложную таблицу в Excel с большим числом формул, основанных на относительных ссылках, и возникла потребность скопировать эти формулы в новую область листа с сохранением ссылок на те же ячейки, что и исходные формулы (подробнее о типе ссылок см. Относительные, абсолютные и смешанные ссылки на ячейки в Excel). «Зайти» во все ячейки с формулами и изменить ссылки на абсолютные было затруднительно, так как таких ячеек было больше ста…

    К сожалению, стандартные средства Excel не позволяют выполнить подобное копирование. Что вообще-то говоря, удивительно! Попробуйте, например, перенести формулу =В1+С1, хранящуюся в ячейке D1, в ячейку D4 (рис. 1). Если выполнить копирование с помощью специальной вставки и опции вставить формулы, в ячейке D4 обнаружите формулу =В4+С4.

    Рис. 1. Специальная вставка; чтобы увеличить изображение кликните на нем правой кнопкой мыши и выберите Открыть картинку в новой вкладке

    Скачать заметку в формате Word или pdf, примеры в формате Excel

    Решение пришло из моего прошлого опыта: когда я был верстальщиком, я очень широко использовал контекстные замены, и был мастером в этом искусстве. ?

    Выделите диапазон ячеек, который хотите скопировать. В нашем примере это С4:С13 (область 1 на рис. 2), и выберите команду Главная → Найти и выделить → Заменить (область 2 на рис. 2), или нажмите Ctrl + H (английская H).

    Рис. 2. Найти и заменить

    В открывшемся диалоговом окне «Найти и заменить» (рис. 3) в поле «Найти» введите знак = (с него начинаются все формулы). В поле «Заменить на» введите знаки && или любой иной символ который, как вы уверены, не используется ни в одной из формул. Нажмите «Заменить все».

    Рис. 3. Заменить знак = на знаки &&

    Во всех формулах на рабочем листе вместо знака равенства теперь стоит && (рис. 4).

    Рис. 4. После замены

    Скопируйте ячейки С4:С13 в требуемое место, и выполните обратную замену всех && на =. И первоначальные, и новые формулы ссылаются на одни и те же ячейки (рис. 5), причем формулы используют относительные ссылки, то есть их можно «протягивать».

    Рис. 5. Формулы удалось перенести

    Дополнение от 1 октября 2016

    Еще один вариант решения проблемы можно найти у Джона Уокенбаха. [1] Переключите Excel в режим просмотра формул, пройдя по меню Формулы –> Зависимости формул –> Показывать формулы (рис. 6). Выделите диапазон для копирования. В данном примере – С4:С13. Скопируйте его в буфер. Откройте текстовый редактор, например, Word или Блокнот. Вставьте скопированные данные. Выделите весь текст, и снова скопируйте его в буфер. Вернитесь в Excel и активизируйте верхнюю левую ячейку диапазона, в который хотите вставить ваши формулы. Убедитесь, что лист, на который копируются данные, находится в режиме просмотра формул. Вставьте формулы. Выйдете из режима показа формул, повторно пройдя по меню пройдя по меню Формулы –> Зависимости формул –> Показывать формулы. Формулы в целевом диапазоне будут ссылаться на те же ячейки, что и в исходном.

    Рис. 6. Режим Показывать формулы

    Примечание. В некоторых случаях операция вставки в Excel выполняется с ошибкой и программа разбивает формулу на две и более ячейки. Если так происходит, то, возможно, недавно вы пользовались функцией Excel Текст по столбцам и приложение напоминает вам, как данные разбирались при последнем сеансе. Откройте Мастер распределения текста по столбцам и измените параметры. Выполните команду Данные –> Работа с данными –> Текст по столбцам. В диалоговом окне Мастера распределения текста по столбцам выберите С разделителями и нажмите Далее. Снимите флажки со всех вариантов разделителей, кроме варианта знак табуляции, и нажмите Отмена. После этих изменений формулы будут вставляться правильно.

    [1] Джон Уокенбах. Excel 2013. Трюки и советы. – СПб.: Питер, 2014. – С. 144, 145.

    Перемещение и копирование формулы

    Важно помнить о возможностях изменения ссылки относительной ячейки при перемещении или копировании формулы.

    Перемещение формулы.При перемещении формулы ссылки на ячейки в формуле не изменяются независимо от типа используемой ссылки на ячейки.

    Копирование формулы: При копировании формулы относительные ссылки на ячейки будут изменяться.

    Перемещение формулы

    Выделите ячейку с формулой, которую необходимо переместить.

    В группе » буфер обмена » на вкладке » Главная » нажмите кнопку Вырезать.

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

    Выполните одно из указанных ниже действий.

    Чтобы вставить формулу и форматирование, на вкладке » Главная » в группе » буфер обмена » нажмите кнопку » Вставить«.

    Чтобы вставить только формулу, в группе буфер обмена на вкладке Главная нажмите кнопку Вставить, выберите команду Специальная Вставкаи нажмите кнопку формулы.

    Копирование формулы

    Выделите ячейку с формулой, которую вы хотите скопировать.

    В группе » буфер обмена » на вкладке » Главная » нажмите кнопку » Копировать«.

    Выполните одно из указанных ниже действий.

    Чтобы вставить формулу и форматирование, я использую группу » буфер обмена » на вкладке » Главная » и выбираю команду » Вставить«.

    Чтобы вставить только формулу, надстройку группу » буфер обмена » на вкладке » Главная «, нажмите кнопку Вставить, выберите команду Специальная Вставкаи нажмите кнопку формулы.

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

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

    Выделите ячейку с формулой.

    В строке формул строка формул выделите ссылку, которую нужно изменить.

    Нажмите клавишу F4, чтобы переключиться между комбинациями.

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

    Копирование формул без изменения адресов относительных ссылок

    Целью этого урока является научить пользователя контролировать адреса ссылок на ячейки в формулах при их копировании или перемещении.

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

    Копирование формул Excel без изменений ссылок

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

    Скопируйте значения столбца B (например, комбинацией клавиш CTRL+C) и вставьте их в столбец D (CTRL+V) . А потом переместите данные из столбца B в E (например, комбинацией клавиш CTRL+X).

    Теперь переключитесь в режим отображения формул – CTRL+`(Ё). Обратите внимание, как ведут себя ссылки на ячейки при перемещении и копировании.

    При перемещении (те, что в столбце E) ссылки не изменяются. А при копировании (те, что в столбце D), они смещаются автоматически.

    Копирование формул в Excel со смещением

    При копировании адреса относительных ссылок приспосабливаются к новому положению. Если ссылка была на одну ячейку влево, то она так и продолжает ссылаться, но адрес естественно меняется. Поэтому формула: =A2*1,23 стала формулой =C2*1,23. Когда мы ту же самую формулу не скопируем, а переместим, то адреса ее ссылок не изменятся, несмотря на то, что они относительные. При перемещении ссылки на ячейки ведут себя как абсолютные. Об этом следует всегда помнить пользователю Excel.

    Примечание. В разделе, посвященном формулам, будет уделено больше внимания относительным и абсолютным ссылкам. А пока отметим что по умолчанию ссылки относительные, а если в адресе присутствует символ «$» — значит ссылка абсолютная.

    Теперь усложним задание. Верните табличку до изначального вида как на первом рисунке. Выполните ряд последовательных действий:

    1. Скопируйте «Лист1», например с помощью мышки+CTRL. Наведите указатель на ярлычок первого листа. Удерживая левую клавишу мышки и клавишу CTRL на клавиатуре, переместите ярлычок (копия листа) в новое место. Отпустите сначала мышку, а потом клавиатуру. У вас получился такой же лист, но уже с названием «Лист1(2)».
    2. На копии «Лист1(2)» в ячейку D2 скопируйте значение из B2, а в ячейку E2 переместите (как на предыдущем задании).
    3. Теперь скопируйте столбцы D:E из «Лист1(2)» и вставьте их в столбцы D:E из «Лист1».

    Как видите обе ячейки D2 и E2 были одинаково и одновременно скопированы, но ссылки в их формулах уже ведут себя по-разному. При копировании формул E2 значение не меняется. Все из-за того, что значения E2 из «Лист1(2)» получены путем перемещения и это уже считается для Excel иной способ присваивания адресов в формулах данной ячейки. Чтобы еще раз в этом убедиться, снова приведите табличку на «Лист1» в изначальный вид как на первом рисунке.

    На этот раз в ячейку E2 скопируйте формулу из B2, а в ячейку D2 переместите туже самую формулу.

    Программа нас информирует, что мы имеем ошибку «неправильная ссылка на ячейку» в E2. Но если бы мы не переносили, а просто скопировали формулы, то никаких ошибок не возникло.

    Примечание. Быстро перемещать формулы можно с помощью перетаскивания ячейки мышкой удерживая левую клавишу после наведения указателя на рамку курсора выделенной ячейки. А выполнив это действие с нажатой клавишей CTRL, тогда формула скопируется.

    Данный урок может показаться сложным для понимания, но на практике достаточно прост. Нужно только помнить об особенностях поведения формул при их копировании.


    Download Article


    Download Article

    • Using Find and Replace
    • |

    • Filling a Column or Row
    • |

    • Pasting a Formula into Multiple Cells
    • |

    • Using Relative and Absolute Cell References
    • |

    • Video
    • |

    • Q&A
    • |

    • Tips
    • |

    • Warnings

    Excel makes it easy to copy your formula across an entire row or column, but you don’t always get the results you want. If you end up with unexpected results, or those awful #REF and /DIV0 errors, it can be extremely frustrating. But don’t worry—you won’t need to edit your 5,000 line spreadsheet cell-by-cell. This wikiHow teaches you easy ways to copy formulas to other cells.

    1. Image titled 579572 1 3

      1

      Open your workbook in Excel. Sometimes, you have a large spreadsheet full of formulas, and you want to copy them exactly. Changing everything to absolute cell references would be tedious, especially if you just want to change them back again afterward. Use this method to quickly move formulas with relative cell references elsewhere without changing the references.[1]
      In our example spreadsheet, we want to copy the formulas from column C to column D without changing anything.

      Example Spreadsheet

      Column A Column B Column C Column D
      row 1

      944

      Frogs

      =A1/2

      row 2

      636

      Toads

      =A2/2

      row 3

      712

      Newts

      =A3/2

      row 4

      690

      Snakes

      =A4/2

      • If you’re just trying to copy the formula in a single cell, skip to the last step («Try alternate methods») in this section.
    2. Image titled 579572 2 3

      2

      Press Ctrl+H to open the Find window. The shortcut is the same on Windows and macOS.

      Advertisement

    3. Image titled 579572 3 3

      3

      Find and replace «=» with another character. Type «=» into the «Find what» field, and then type a different character into the «Replace with» box. Click Replace All to turn all formulas (which always begin with an equal’s sign) into text strings beginning with some other character. Always use a character that you have not used in your spreadsheet. For example, replace it with # or &, or a longer string of characters, such as ##&.

      Example Spreadsheet

      Column A Column B Column C Column D
      row 1

      944

      Frogs

      ##&A1/2

      row 2

      636

      Toads

      ##&A2/2

      row 3

      712

      Newts

      ##&A3/2

      row 4

      690

      Snakes

      ##&A4/2

      • Do not use the characters * or ?, since these will make later steps more difficult.
    4. Image titled 579572 4 3

      4

      Copy and paste the cells. Highlight the cells you want to copy, and then press Ctrl + C (PC) or Cmd + C (Mac) to copy them. Then, select the cells you want to paste into, and press Ctrl + V (PC) or Cmd + V (Mac) to paste. Since they are no longer interpreted as formulas, they will be copied exactly.

      Example Spreadsheet

      Column A Column B Column C Column D
      row 1

      944

      Frogs

      ##&A1/2

      ##&A1/2

      row 2

      636

      Toads

      ##&A2/2

      ##&A2/2

      row 3

      712

      Newts

      ##&A3/2

      ##&A3/2

      row 4

      690

      Snakes

      ##&A4/2

      ##&A4/2

    5. Image titled 579572 5 3

      5

      Use Find & Replace again to reverse the change. Now that you have the formulas where you want them, use «Replace All» again to reverse your change. In our example, we’ll look for the character string «##&» and replace it with «=» again, so those cells become formulas once again. You can now continue editing your spreadsheet as usual:

      Example Spreadsheet

      Column A Column B Column C Column D
      row 1

      944

      Frogs

      =A1/2

      =A1/2

      row 2

      636

      Toads

      =A2/2

      =A2/2

      row 3

      712

      Newts

      =A3/2

      =A3/2

      row 4

      690

      Snakes

      =A4/2

      =A4/2

    6. Image titled 579572 6 3

      6

      Try alternate methods. If the method described above doesn’t work for some reason, or if you are worried about accidentally changing other cell contents with the «Replace all» option, there are a couple other things you can try:

      • To copy a single cell’s formula without changing references, select the cell, then copy the formula shown in the formula bar near the top of the window (not in the cell itself). Press Esc to close the formula bar, then paste the formula wherever you need it.
      • Press Ctrl and ` (usually on the same key as ~) to put the spreadsheet in formula view mode. Copy the formulas and paste them into a text editor such as Notepad or TextEdit. Copy them again, then paste them back into the spreadsheet at the desired location. Then, press Ctrl and ` again to switch back to regular viewing mode.
    7. Advertisement

    1. Image titled 579572 7 3

      1

      Type a formula into a blank cell. Excel makes it easy to propagate a formula down a column or across a row by «filling» the cells. As with any formula, start with an = sign, then use whichever functions or arithmetic you’d like. We’ll use a simple example spreadsheet, and add column A and column B together. Press Enter or Return to calculate the formula.

      Example Spreadsheet

      Column A Column B Column C
      row 1

      10

      9

      19

      row 2

      20

      8

      row 3

      30

      7

      row 4

      40

      6

    2. Image titled 579572 8 3

      2

      Click the lower right corner of the cell with the formula you want to copy. The cursor will become a bold + sign.

    3. Image titled 579572 9 3

      3

      Click and drag the cursor across the column or row you’re copying to. The formula you entered will automatically be entered into the cells you’ve highlighted. Relative cell references will automatically update to refer to the cell in the same relative position rather than stay exactly the same. Here’s our example spreadsheet, showing the formulas used and the results displayed:

      Example Spreadsheet

      Column A Column B Column C
      row 1

      10

      9

      =A1+B1

      row 2

      20

      8

      =A2+B2

      row 3

      30

      7

      =A3+B3

      row 4

      40

      6

      =A4+B4

      Example Spreadsheet

      Column A Column B Column C
      row 1

      10

      9

      19

      row 2

      20

      8

      28

      row 3

      30

      7

      37

      row 4

      40

      6

      46

      • You can also double-click the plus sign to fill the entire column instead of dragging. Excel will stop filling out the column if it sees an empty cell. If the reference data contains a gap, you will have to repeat this step to fill out the column below the gap.
      • Another way to fill the entire column with the same formula is to select the cells directly below the one containing the formula and then press Ctrl + D.[2]
    4. Advertisement

    1. Image titled 579572 10 3

      1

      Type the formula into one cell. As with any formula, start with an = sign, then use whichever functions or arithmetic you’d like. We’ll use a simple example spreadsheet, and add column A and column B together. When you press Enter or Return, the formula will calculate.

      Example Spreadsheet

      Column A Column B Column C
      row 1

      10

      9

      19

      row 2

      20

      8

      row 3

      30

      7

      row 4

      40

      6

    2. Image titled 579572 11 3

      2

      Select the cell and press Ctrl+C (PC) or Command+C (Mac). This copies the formula to your clipboard.

    3. Image titled 579572 12 3

      3

      Select the cells you want to copy the formula to. Click on one and drag up or down using your mouse or the arrow keys. Unlike with the column or row fill method, the cells you are copying the formula to do not need to be adjacent to the cell you are copying from. You can hold down the Control key while selecting to copy non-adjacent cells and ranges.

    4. Image titled 579572 13 3

      4

      Press Ctrl+V (PC) or Command+V (Mac) to paste. The formulas now appear in the selected cells.

    5. Advertisement

    1. Image titled 579572 14 3

      1

      Use a relative cell reference in a formula. In an Excel formula, a «cell reference» is the address a cell. You can type these in manually, or click on the cell you wish to use while you are entering a formula. For example, the following spreadsheet has a formula that references cell A2:

      Relative References

      Column A Column B Column C
      row 2

      50

      7

      =A2*2

      row 3

      100

      row 4

      200

      row 5

      400

    2. Image titled 579572 15 3

      2

      Understand why they’re called relative references. In an Excel formula, a relative reference uses the relative position of a cell address. In our example, C2 has the formula “=A2”, which is a relative reference to the value two cells to the left. If you copy the formula into C4, then it will still refer to two cells to the left, now showing “=A4”.

      Relative References

      Column A Column B Column C
      row 2

      50

      7

      =A2*2

      row 3

      100

      row 4

      200

      =A4*2

      row 5

      400

      • This works for cells outside of the same row and column as well. If you copied the same formula from cell C1 into cell D6 (not shown), Excel would change the reference «A2» to a cell one column to the right (C→D) and 5 rows below (2→7), or «B7».
    3. Image titled 579572 16 3

      3

      Use an absolute reference instead. Let’s say you don’t want Excel to automatically change your formula. Instead of using a relative cell reference, you can make it absolute by adding a $ symbol in front of the column or row that you want to keep the same, no matter where you copy the formula too.[3]
      Here are a few example spreadsheets, showing the original formula in larger, bold text, and the result when you copy-paste it to other cells:

      • Relative Column, Absolute Row (B$3): The formula has an absolute reference to row 3, so it always refers to row 3:

        Column A Column B Column C
        row 1

        50

        7

        =B$3

        row 2

        100

        =A$3

        =B$3

        row 3

        200

        =A$3

        =B$3

        row 4

        400

        =A$3

        =B$3

      • Absolute Column, Relative Row ($B1): The formula has an absolute reference to column B, so it always refers to column B.

        Column A Column B Column C
        row 1

        50

        7

        =$B1

        row 2

        100

        =$B2

        =$B2

        row 3

        200

        =$B3

        =$B3

        row 4

        400

        =$B4

        =$B4

      • Absolute Column & Row ($B$1): The formula has an absolute reference to column B of row 1, so it always refers to column B of row 1.

        Column A Column B Column C
        row 1

        50

        7

        =$B$1

        row 2

        100

        =$B$1

        =$B$1

        row 3

        200

        =$B$1

        =$B$1

        row 4

        400

        =$B$1

        =$B$1

    4. Image titled 579572 17 3

      4

      Use the F4 key to switch between absolute and relative. Highlight a cell reference in a formula by clicking it and press F4 to automatically add or remove $ symbols. Keep pressing F4 until the absolute or relative references you’d like are selected, then press Enter or Return.

    5. Advertisement

    Add New Question

    • Question

      When I try to pull down formula, it stays the same and does not change with row, what can I do?

      Community Answer

      Go to Formulas, Calculation Options, and change them from Manual to Automatic.

    • Question

      When I click and drag, it copies the format also. I don’t want to copy the format, just the formula?

      Krisztian Toth

      Krisztian Toth

      Community Answer

      Right after the drag there should be an icon in the lower right corner of the highlighted area. Hover over that and select from the various fill options, among which you can find an option to fill without format.

    • Question

      How do I copy a date formula I have created (that includes the week day as well as date) so that it runs in sequence?

      Krisztian Toth

      Krisztian Toth

      Community Answer

      Double click into the cell, copy your formula, double click into the destination cell, then press Ctrl+V or Command+V.

    Ask a Question

    200 characters left

    Include your email address to get a message when this question is answered.

    Submit

    Advertisement

    • If you copy a formula to a new cell and see a green triangle, Excel has detected a possible error. Examine the formula carefully to see if anything went wrong.[4]

    • If you accidentally did replace the = character with ? or * in the «copying a formula exactly» method, searching for «?» or «*» will not give you the results you expect. Correct this by searching for «~?» or for «~*» instead.[5]

    • Select a cell and press Ctrl (apostrophe) to fill it with the formula directly above it.

    Thanks for submitting a tip for review!

    Advertisement

    • Different versions of Excel may not show exactly the same screenshots in the same ways as are displayed here.

    Advertisement

    References

    About This Article

    Article SummaryX

    To copy a formula into multiple adjoining cells in Microsoft Excel, type the formula into a cell, and then press Enter or Return to calculate it. Hover your mouse cursor over the bottom-right corner of the cell so the cursor turns to a crosshair, then drag the crosshair down to copy the formula to other cells in the column. If you’d rather copy the formula to cells in a row, drag the crosshair left or right.
    To copy a formula to cells that aren’t touching the formula cell, click the cell once to select it, and then press Control + C (on a PC) or Command + C (on a Mac) to copy the formula. Now, select the cell or cells you want to copy the formula to, then press Control + V (on a PC) or Command + V (on a Mac) to paste it into the selected cells.

    Did this summary help you?

    Thanks to all authors for creating a page that has been read 513,858 times.

    Is this article up to date?

    Понравилась статья? Поделить с друзьями:
  • Макрос excel копирование столбцов
  • Макрос excel копирование диапазонов
  • Макрос excel количество строк столбца
  • Макрос excel количество символов в ячейке excel
  • Макрос excel кнопка перехода