В excel при копировании не изменится адрес ячейки

Обновлено: 06.07.2024

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

exact-formulas-copy1.jpg

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

exact-formulas-copy2.jpg

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

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

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

exact-formulas-copy9.jpg

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

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

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

exact-formulas-copy3.jpg

exact-formulas-copy4.jpg

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

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

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

exact-formulas-copy5.jpg

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

exact-formulas-copy6.jpg

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

exact-formulas-copy7.jpg

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

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

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

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

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

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

В зависимости от того копируется или перемещается формула в 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, тогда формула скопируется.

Быстрое копирование формул.

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

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

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

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

Имеются два вида ссылок:

  1. относительные- зависящие от положения формулы;
  2. абсолютные — не зависящие от положения формулы.

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

При копировании формулы вдоль столбца или строки относительная ссылка корректируется:

смещение на один столбец — изменение в ссылке одной буквы в имени столбца.

смещение на одну строку — изменение в ссылке номера строки на единицу.


Рисунок 3 - Скопированная формула с относительной ссылкой

Абсолютные ссылки. Абсолютная ссылка всегда ссылается на ячейку, расположенную в определенном (фиксированном) месте. Перед каждой буквой и цифрой ставится знак $, например $B$2. При изменении позиции ячейки, которая имеет формулу, абсолютная ссылка не изменяется. При копировании формулы вдоль строк и столбцов абсолютная ссылка не корректируется (рисунок 4).


Рисунок 4 - Скопированная формула с абсолютной ссылкой

Смешанные ссылки. Смешанная ссылка содержит абсолютно адресуемый столбец и относительно адресуемую строку ( $A1) или относительно адресуемый столбец и абсолютно адресуемую строку ( A$1). При изменении позиции ячейки, относительная часть адреса изменяется, а абсолютная часть адреса не изменяется. При копировании формулы вдоль строк и столбцов относительная ссылка корректируется, а абсолютная ссылка нет (рисунок 5).

Часто так бывает, что при копировании формул, Вам нужно, что бы ссылка на ячейку в формуле осталась такой же, как и была, а не переместилась относительно исходного места. Тогда Вам на помощь придет такая функция в Excel, как фиксация ссылок на ячейки в Экселе. Остановимся подробно на всех вариантах.

1. Способ, как закрепить (зафиксировать) строку и столбец в формуле Excel

  1. Кликните на ячейке с формулой.
  2. Кликните в строке формул на адрес той ячейке, что Вы хотите закрепить.
  3. Нажмите F4 один раз.

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

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

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

2. Способ, как закрепить (зафиксировать) строку в формуле Excel

Способ полностью аналогичный тому, что описан выше, только Вам нужно будет нажать дважды на F4. К примеру, если у Вас в формуле ссылка на ячейку B2, то Вы получите B$2. Это значит, что теперь при перемещении формулы, будет изменяться буква столбца, а номер строки будет оставаться неизменным.

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

3. Способ, как закрепить (зафиксировать) столбец в формуле Excel

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

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

4. Способ, как отменить фиксацию ячейки в формуле Excel

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

Читайте также: