Копирование формул без изменения адресов относительных ссылок
Целью этого урока является научить пользователя контролировать адреса ссылок на ячейки в формулах при их копировании или перемещении.
В зависимости от того копируется или перемещается формула в 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», например с помощью мышки+CTRL. Наведите указатель на ярлычок первого листа. Удерживая левую клавишу мышки и клавишу CTRL на клавиатуре, переместите ярлычок (копия листа) в новое место. Отпустите сначала мышку, а потом клавиатуру. У вас получился такой же лист, но уже с названием «Лист1(2)».
- На копии «Лист1(2)» в ячейку D2 скопируйте значение из B2, а в ячейку E2 переместите (как на предыдущем задании).
- Теперь скопируйте столбцы D:E из «Лист1(2)» и вставьте их в столбцы D:E из «Лист1».
Как видите обе ячейки D2 и E2 были одинаково и одновременно скопированы, но ссылки в их формулах уже ведут себя по-разному. При копировании формул E2 значение не меняется. Все из-за того, что значения E2 из «Лист1(2)» получены путем перемещения и это уже считается для Excel иной способ присваивания адресов в формулах данной ячейки. Чтобы еще раз в этом убедиться, снова приведите табличку на «Лист1» в изначальный вид как на первом рисунке.
На этот раз в ячейку E2 скопируйте формулу из B2, а в ячейку D2 переместите туже самую формулу.
Программа нас информирует, что мы имеем ошибку «неправильная ссылка на ячейку» в E2. Но если бы мы не переносили, а просто скопировали формулы, то никаких ошибок не возникло.
Примечание. Быстро перемещать формулы можно с помощью перетаскивания ячейки мышкой удерживая левую клавишу после наведения указателя на рамку курсора выделенной ячейки. А выполнив это действие с нажатой клавишей CTRL, тогда формула скопируется.
Данный урок может показаться сложным для понимания, но на практике достаточно прост. Нужно только помнить об особенностях поведения формул при их копировании.
Копирование формул без сдвига ссылок
Предположим, что у нас есть вот такая несложная таблица, в которой подсчитываются суммы по каждому месяцу в двух городах, а затем итог переводится в евро по курсу из желтой ячейки J2.
Проблема в том, что если скопировать диапазон D2:D8 с формулами куда-нибудь в другое место на лист, то Microsoft Excel автоматически скорректирует ссылки в этих формулах, сдвинув их на новое место и перестав считать:
Задача: скопировать диапазон с формулами так, чтобы формулы не изменились и остались теми же самыми, сохранив результаты расчета.
Способ 1. Абсолютные ссылки
Способ 2. Временная деактивация формул
Чтобы формулы при копировании не менялись, надо (временно) сделать так, чтобы Excel перестал их рассматривать как формулы. Это можно сделать, заменив на время копирования знак "равно" (=) на любой другой символ, не встречающийся обычно в формулах, например на "решетку" (#) или на пару амперсандов (&&). Для этого:
- Выделяем диапазон с формулами (в нашем примере 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 и скопируйте туда текст вот такого макроса:
Для запуска макроса можно воспользоваться кнопкой Макросы на вкладке Разработчик (Developer — Macros) или сочетанием клавиш Alt+F8. После запуска макрос попросит вас выделить диапазон с исходными формулами и диапазон вставки и произведет точное копирование формул автоматически:
Как зафиксировать ячейку в формуле Excel
Часто так бывает, что при копировании формул, Вам нужно, что бы ссылка на ячейку в формуле осталась такой же, как и была, а не переместилась относительно исходного места. Тогда Вам на помощь придет такая функция в Excel, как фиксация ссылок на ячейки в Экселе. Остановимся подробно на всех вариантах.
1. Способ, как закрепить (зафиксировать) строку и столбец в формуле Excel
- Кликните на ячейке с формулой.
- Кликните в строке формул на адрес той ячейке, что Вы хотите закрепить.
- Нажмите F4 один раз.
- Знак доллара перед буквой означает, что при перемещении формулы вправо или влево, т.е. смещая ее по столбцам, ссылка на столбец ячейки в формуле меняться не будет.
- Знак доллара перед числом означает, что при перемещении формулы вверх или вниз, т.е. смещая ее по строкам, ссылка на строку ячейки в формуле меняться не будет.
2. Способ, как закрепить (зафиксировать) строку в формуле Excel
Способ полностью аналогичный тому, что описан выше, только Вам нужно будет нажать дважды на F4. К примеру, если у Вас в формуле ссылка на ячейку B2, то Вы получите B$2. Это значит, что теперь при перемещении формулы, будет изменяться буква столбца, а номер строки будет оставаться неизменным.
3. Способ, как закрепить (зафиксировать) столбец в формуле Excel
Все тоже самое, что и в вариантах выше, только нажмите на клавишу F4 трижды. Вы должны получить ссылку на ячейку вида $B2, т.е. теперь при перемещении формулы, будет меняться номер строки, а буква столбца будет неизменной.
4. Способ, как отменить фиксацию ячейки в формуле Excel
В случае если Вам наоборот нужно отменить фиксацию ячейки в формуле, то нажмите F4 несколько раз, так что бы в ссылке на ячейку не осталось знаков $, тогда при перемещении формулы, будет изменяться адрес ячейки как по строкам, так и по столбцам.
«Excel». Как сделать, чтобы ячейки в формуле не менялись при копировании?
Как сделать, чтобы в формуле значение одной ячейки не менялось и осталось тем же самым при копировании?
Чтобы разобраться как добиться, чтобы при копировании формулы в Excel ячейка оставалась прежней (а не менялась) необходимо ее закрепить, еще говорят "заморозить", "зафиксировать".
Лучше всего разобрать на примере.
Допустим в ячейке у Вас формула
если Вы растяните ее вниз (или скопируете и вставите вниз — в следующую ячейку)
то формула преобразуется и станет вот такой:
Однако, если Вам нужно, чтобы ко всем ячейкам из столбца A (последовательно) прибавлялось некое значение из ячейки B2 и при копировании эта ячейка не смещалась, то Вам следует немного изменить первоначальную формулу написав ее так:
Сделайте так и ячейка с "долларами" (то есть $B$2 в нашем случае) не будет меняться.
Значки доллара ($) можно проставить как вручную введя их с клавиатуры, так и через F4.
Использовать F4 надо так: мышкой выделяете (в формуле) нужный адрес (в нашем примере — это B2) и нажимаете 1 раз F4 — сразу и перед буквой и перед цифрой появится значок доллара $ (он, кстати, в Excel означает, т.н. абсолютный адрес — то есть такой адрес, который не будет изменяться при копировании формулы)
"Excel" — это популярный документ, который дает много возможностей. Иногда существуют некоторые нюансы, которые приходится соблюдать, чтобы некоторые моменты не создавали неудобства.
Так, попытавшись скопировать данные в другую область, меняются формулы, закрепленные к этим данным.
Есть разные способы решить задачу, чтобы скопировать, в то же время не изменив формулы.
Первый самый простой.
Пример. Вот данные, которые получены в столбце "D" суммированием данных из столбцов "В" и "С", разделив результат на данные из столбца "J", чтобы преобразовать в евро.
Если попытаться перетащить столбец горячими клавишами "скопировать" и "вставить", то итоговые значения посчитаются в каждой из ячеек столбца, как "0", поскольку изменилась формула при копировании. Это потому происходит, что "Excel" свойственно сдвигать относительные ссылки.
1) И вот какое решение существует — преобразовать относительные ссылки в абсолютные.
Этот способ имеет одно неудобство, что приходится вручную работать с данными, подставляя каждый раз.
2) Тогда можно попробовать другой способ — "дезактивировать" формулы, то есть сделать так, чтобы в документе "Excel" не воспринимались формулы — "формулами", а воспринимались, словно это обычный текст.
Тогда знак "=" на какое-то время следует заменить любым другим символом, например, решеткой — "#" или парой амперсандов — "&&".
Воспользуемся горячими клавишами.
3) Еще способ — воспользоваться копированием с применением блокнота, то есть из документа копировать в блокнот, оттуда переносить данные в нужный диапазон.
На вкладке "Формулы" надо найти "Показать формулы" — режим проверки формул, тогда в ячейках вместо результатов программа показывает формулы, по которым вычислили эти результаты. Можно пользоваться горячими клавишами, алгоритм следующий:
Дальше надо скопировать диапазон из Exel в блокнот —
4) Четвертый способ подходит тем, кто постоянно выполняет копирование, перенося каждый раз. Можно воспользоваться макросом — здесь все проще всего, все задано заранее, надо только создать макрос.
Чтобы работать с макросами, надо перейти на вкладку "Разработчик" или применить сочетание горячих клавишь Alt+F8.
Запустив макрос, необходимо показать программе исходный диапазон, откуда копируют и куда вставляют.
В авторском ролике Николай Павлов, специалист по Exel, расскажет еще более подробно и наглядно.
Документ "Excel" часто бывает необходим, чтобы посчитать значение в различных задачах. Но иногда бывает неудобно работать с этим документом по ряду причин. Так, если попытаться скопировать столбец с формулой в другой диапазон, то формула становится другой и считает неправильно. А чтобы не менялась формула, приходится идти на хитрости.
Самое простейшее — сделать так, чтобы "Excel" вместо формулы видел текст. Для этого знак "=" надо заменить любым знаком или символом. Например, на "$" или "#". Чтобы это сделать, используют горячие клавиши. Выделили диапазон, нажали сочетание горячих клавиш, чтобы вызвать окно "найти и заменить", там вместо "=" подставили другой символ. Сделали копирование, а потом точно так же обратно вместо символа вернули знак равенства.
"Excel" — это один из самых используемых документов, так как помогает быстро делать расчеты. В верхней части видны формулы, а если постараться перебросить столбец в другой диапазон, то формула меняется. В этом случае не отображаются расчеты. Как обойти подобное? Можно конечно вручную пытаться изменить ситуацию, сначала переводя ссылки в формулах не в относительные, а в абсолютные, затем, выделяя каждую строку, с ней работать. Но если таких строк много, то долго, не вариант.
Другой вариант — изменить формулу таким образом, чтобы "Excel" воспринимал формулу не как формулу, а как обычный текст. Для этого надо изменить знак равенства на другой. Горячими клавишами открывается окно из вкладки "Главной" — "Найти и выделить" и там смотрим "Заменить" — вместо "равно" — любой знак, ту же "решетку". Конечно, потом все придется поменять обратно, чтобы формулы были формулами.
Еще один вариант — применение макросов, это самое удобное, надо только сохранить макрос с готовым вариантом действия и подставлять.