Проблема

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    $A$1 (абсолютный столбец и абсолютная строка)

    A$1 (относительный столбец и абсолютная строка)

    $A1 (абсолютный столбец и относительная строка)

    A1 (относительный столбец и относительная строка)

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

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

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

    Щелкните главная > Вырезать (или нажмите клавиши CTRL + X).

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

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

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

    Дополнительные сведения

    Вы всегда можете задать вопрос специалисту Excel Tech Community, попросить помощи в сообществе Answers community, а также предложить новую функцию или улучшение на веб-сайте Excel User Voice.

    См. также

    Примечание: Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Была ли информация полезной? Для удобства также приводим ссылку на оригинал (на английском языке).

    Работа с формулами является неотъемлемой частью создания и редактирования таблиц в 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. заменять формулы выбранного диапазона результатами вычисления (если выбрать опцию "Скопировать значения формул", а в полях, где задается смещение установить нули).