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

Обновлено: 07.07.2024

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

  • либо это значения, вычисленные этими формулами
  • либо сам текст формул

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

  • где удалять формулы:
    • в диапазоне,
    • всем листе
    • или всей книге

    Эта статья даст ответы на все такие вопросы.

    Удалить формулы и сохранить данные

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

    Так вот, чтобы перевести формулы в значения, нужно:

    1. Выделить нужный диапазон ячеек (или одну ячейку, всю строку, столбец или весь лист)
    2. Скопировать выделенное
    3. Вставить процедурой вставки «как значения»

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

    С помощью мыши

    Не самый быстрый, т.к. работает только одна рука, но самый удобный и понятный способ. Выделяем, копируем, и в контекстном меню, вызываемом нажатием правой кнопки мыши по выделенному диапазону, нужно выбрать вот эту команду (выделена красным):

    Команда "вставить как значения" в командном меню вставки в Excel

    Команда «вставить как значения» в командном меню вставки в Excel

    С помощью клавиатуры (сочетания клавиш)

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

    1. выделяем диапазон
      • мышью, если это столбец, строка или лист
      • сочетаниями Ctrl+Shift+стрелки или Shift+стрелки, если ячейки или диапазоны ячеек
    2. копируем сочетанием Ctrl+C
    3. перемещаемся стрелками к диапазону, куда нужно вставить данные и/или Ctrl+Tab для перехода в другую книгу
    4. вызываем контекстное меню клавишей на клавиатуре, иногда ее нет, но обычно на клавиатурах она есть, рядом с правым ALT
    5. Стрелками перемещаемся к команде (Вниз-вниз-вправо)
    6. Клавиша Enter

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

    В 2 клика с надстройкой !SEMTools

    Быструю замену формул на значения в выделенном диапазоне без необходимости копирования и особой вставки я реализовал в своей надстройке для Excel !SEMTools.

    Для тех, кто не готов разбираться в VBA, после установки !SEMTools запуск процедуры доступен в 2 клика из соответствующего меню в группе «УДАЛИТЬ«. Функционал относится к бесплатным возможностям !SEMTools (работают без ограничений в любой версии).

    Удалить формулы и сохранить значения в Excel с !SEMTools

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

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

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

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

    Удалить формулы на листе / во всех листах

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

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

    Удаляем формулы со всего листа с !SEMTools

    Перевод формул в их текст (без сохранения результирующих значений)

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

    Перевести формулы в текст

    Выделяем диапазон формул, жмем Ctrl+H («эйч», англ.), чтобы запустить диалоговое окно «Найти и заменить«, и в соответствующих окошках вбиваем значения.

    Формулы как текст

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

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

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

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

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

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

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

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

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

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

    Чтобы вировать только формулу:в группе Буфер обмена на вкладке Главная нажмите кнопку В paste(Главная), выберите специальная ветвь ищелкните Формулы.

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

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

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

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

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

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

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

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

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

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

    Для переключения между сочетаниями нажмите F4.

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

    Копируемая формула

    Первоначальная ссылка

    Новая ссылка

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

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

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

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

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

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

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

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

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

    Команда "Вставить" в группе "Буфер обмена"

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

    Щелкните правой кнопкой мыши, чтобы увидеть команды "Копировать", "Вырезать" и "Вставить"

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

    Совет: Формулу также можно скопировать и вкопировать в другую ячейку или на другой таблицу.

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

    Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

    Хорошо видно, что один и тот же город или компания тут присутствуют в разношёрстных вариантах, что, очевидно, будет создавать массу проблем при работе с этими таблицами в будущем. И если чуть подумать, то можно найти массу примеров похожих задач из других областей.

    А теперь представьте, что к вам такие кривые данные попадают регулярно, т.е. это не единичная история из серии "исправил вручную, забыл", а проблема на регулярной основе и в большом количестве ячеек.

    Что же делать? Не заменять же вручную 100500 раз кривой текст на правильный через окошко "Найти и заменить" или нажимая Ctrl + H ?

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

    Справочник подстановки

    К сожалению, при очевидной распространенности подобной задачи, в Microsoft Excel не существует простых встроенных способов для её решения. Для начала, давайте разберёмся, как это делать формулами, без привлечения "тяжелой артиллерии" в виде макросов на VBA или Power Query.

    Случай 1. Массовая полная замена

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

    Предположим, что у нас есть две таблицы:

    Данные и замены по компаниям

    В первой - исходные разномастные названия компаний. Во второй - справочник соответствия. Если находим в названии компании в первой таблице любое слово из столбца Найти, то нужно полностью заменить это кривое название на правильное - из столбца Заменить второй таблицы-справочника.

    • Обе таблицы преобразованы в динамические ("умные") с помощью сочетания клавиш Ctrl + T или командой Вставка - Таблица (Insert - Table) .
    • На появившейся вкладке Конструктор (Design) первой таблице присвоено имя Данные , а второй таблице-справочнику - Замены .

    Чтобы объяснить логику формулы зайдём чуть издалека.

    Взяв в качестве примера первую компанию из ячейки A2 и забыв временно про остальные компании, попробуем определить какой именно вариант из столбца Найти там встречается. Для этого выделим любую пустую ячейку в свободной части листа и введём туда функцию НАЙТИ (FIND) :

    Ищем вхождения

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

    Хитрость тут в том, что поскольку первым аргументом мы указали не одно, а несколько значений - эта функция будет возвращать в качестве результата тоже не одно значение, а массив из 3 элементов. Если у вас не последняя версия Office 365 с поддержкой динамических массивов, то после ввода этой формулы и нажатия на Enter вы этот массив увидите прямо на листе:

    Динамический массив результатов в Office 365

    Пугаться не стоит :) На самом деле наша формула работает и увидеть весь массив результатов всё равно можно, если выделить введённую функцию в строке формул и нажать клавишу F9 (только не забудьте потом нажать Esc , чтобы вернуться обратно к формуле):

    Массив результатов в строке формул Excel

    Полученный массив результатов означает, что в исходном кривом названии компании (ГК Морозко ОАО) из всех значений в столбце Найти нашлось только второе (Морозко) , причём начиная с 4-го по счёту символа.

    Теперь добавим к нашей формуле функцию ПРОСМОТР (LOOKUP) :

    Добавляем функцию ПРОСМОТР

    У этой функции три аргумента:

    1. Искомое значение - можно использовать любое достаточно большое число (главное, чтобы оно превышало длину любого текста в исходных данных)
    2. Просматриваемый_вектор - тот диапазон или массив, где мы ищем искомое значение. Здесь это введённая ранее функция НАЙТИ, возвращающая массив
    3. Вектор_результатов - диапазон, откуда мы хотим вернуть значение, если искомое значение найдено в соответствующей ячейке. Здесь это правильные названия из столбца Заменить нашей таблицы-справочника.

    Главная и неочевидная фишка тут в том, что функция ПРОСМОТР при отсутствии точного совпадения всегда ищет ближайшее наименьшее (предыдущее) значение. Поэтому, указав в качестве искомого значения любое здоровенное число (например 9999), мы заставим ПРОСМОТР находить ячейку с ближайшим наименьшим числом (4) в массиве и выдавать соответствующее ей значение из вектора результатов, т.е. правильное название компании из столбца Заменить.

    Второй нюанс заключается в том, что, технически, наша формула является формулой массива, т.к. функция НАЙТИ возвращает в качестве результатов не одно, а массив из трёх значений. Но поскольку функция ПРОСМОТР поддерживает массивы "из коробки", то нам не придётся вводить эту формулу как классическую формулу массива - с помощью сочетания клавиш Ctrl + Shift + Enter . Достаточно будет простого Enter .

    Вот и всё. Надеюсь вы ухватили логику.

    Осталось перенести готовую формулу первую ячейку B2 столбца Исправлено - и наша задача решена!

    Готовая формула

    Само-собой, с обычными (не умными) таблицами эта формула тоже замечательно работает (только не забудьте про клавишу F4 и закрепление соответствующих ссылок):

    На обычных таблицах

    Случай 2. Массовая частичная замена

    Этот случай чуть похитрее. Снова имеем две "умных" таблицы:

    Исходные данные для частичной замены

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

    Готовая формула будет выглядеть так (для удобства восприятия я разделил её на насколько строк с помощью Alt + Enter ):

    Частичная массовая замена

    Основную работу здесь выполняет стандартная Excel'евская текстовая функция ПОДСТАВИТЬ (SUBSTITUTE) , у которой 3 аргумента:

    1. Исходный текст - первый кривой адрес из столбца Адрес
    2. Что ищем - тут мы используем трюк с функцией ПРОСМОТР(LOOKUP) из предыдущего способа, чтобы вытащить значение из столбца Найти, которое входит как фрагмент в кривой адрес.
    3. На что заменить - аналогичным образом находим соответствующее ему правильное значение из столбца Заменить.

    Вводить эту формулу с Ctrl + Shift + Enter здесь тоже не нужно, хотя она и является, по-сути, формулой массива.

      Функция ПОДСТАВИТЬ является регистрочувствительной, поэтому "Спб" в предпоследней строке так и не нашлось в таблице замен. Для решения этой проблемы можно либо использовать функцию ЗАМЕНИТЬ (REPLACE) , либо предварительно привести обе таблицы к одному регистру.

    Перехват ошибок

    Не идеально и, местами, громоздко, но гораздо лучше, чем однообразная замена вручную, правда? :)

    В следующей статье разберёмся, как реализовать подобную массовую подстановку с помощью макросов и Power Query.

    Формулы – это хорошо. Они автоматически пересчитываются при любом изменении исходных данных, превращая Excel из "калькулятора-переростка" в мощную автоматизированную систему обработки поступающих данных. Они позволяют выполнять сложные вычисления с хитрой логикой и структурой. Но иногда возникают ситуации, когда лучше бы вместо формул в ячейках остались значения. Например:

    • Вы хотите зафиксировать цифры в вашем отчете на текущую дату.
    • Вы не хотите, чтобы клиент увидел формулы, по которым вы рассчитывали для него стоимость проекта (а то поймет, что вы заложили 300% маржи на всякий случай).
    • Ваш файл содержит такое больше количество формул, что Excel начал жутко тормозить при любых, даже самых простых изменениях в нем, т.к. постоянно их пересчитывает (хотя, честности ради, надо сказать, что это можно решить временным отключением автоматических вычислений на вкладке Формулы – Параметры вычислений).
    • Вы хотите скопировать диапазон с данными из одного места в другое, но при копировании "сползут" все ссылки в формулах.

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

    Способ 1. Классический

    Этот способ прост, известен большинству пользователей и заключается в использовании специальной вставки:

    1. Выделите диапазон с формулами, которые нужно заменить на значения.
    2. Скопируйте его правой кнопкой мыши – Копировать(Copy) .
    3. Щелкните правой кнопкой мыши по выделенным ячейкам и выберите либо значок Значения (Values) :

    преобразование формул в значения в Excel


    либо наведитесь мышью на команду Специальная вставка (Paste Special) , чтобы увидеть подменю:

    formulas-to-values2.jpg


    Из него можно выбрать варианты вставки значений с сохранением дизайна или числовых форматов исходных ячеек.

    В старых версиях Excel таких удобных желтых кнопочек нет, но можно просто выбрать команду Специальная вставка и затем опцию Значения (Paste Special - Values) в открывшемся диалоговом окне:

    Способ 2. Только клавишами без мыши

    При некотором навыке, можно проделать всё вышеперечисленное вообще на касаясь мыши:

    1. Копируем выделенный диапазон Ctrl + C
    2. Тут же вставляем обратно сочетанием Ctrl + V
    3. Жмём Ctrl , чтобы вызвать меню вариантов вставки
    4. Нажимаем клавишу с русской буквой З или используем стрелки, чтобы выбрать вариант Значения и подтверждаем выбор клавишей Enter :

    Способ 3. Только мышью без клавиш или Ловкость Рук

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

    1. Выделяем диапазон с формулами на листе
    2. Хватаем за край выделенной области (толстая черная линия по периметру) и, удерживая ПРАВУЮ клавишу мыши, перетаскиваем на пару сантиметров в любую сторону, а потом возвращаем на то же место
    3. В появившемся контекстном меню после перетаскивания выбираем Копировать только значения (Copy As Values Only) .

    После небольшой тренировки делается такое действие очень легко и быстро. Главное, чтобы сосед под локоть не толкал и руки не дрожали ;)

    Способ 4. Кнопка для вставки значений на Панели быстрого доступа

    Ускорить специальную вставку можно, если добавить на панель быстрого доступа в левый верхний угол окна кнопку Вставить как значения. Для этого выберите Файл - Параметры - Панель быстрого доступа (File - Options - Customize Quick Access Toolbar) . В открывшемся окне выберите Все команды (All commands) в выпадающем списке, найдите кнопку Вставить значения (Paste Values) и добавьте ее на панель:

    Добавление кнопки вставки значений на панель быстрого доступа

    Теперь после копирования ячеек с формулами будет достаточно нажать на эту кнопку на панели быстрого доступа:

    Кнопка вставки значений на панели быстрого доступа

    Кроме того, по умолчанию всем кнопкам на этой панели присваивается сочетание клавиш Alt + цифра (нажимать последовательно). Если нажать на клавишу Alt , то Excel подскажет цифру, которая за это отвечает:

    Подсветка горячих клавиш

    Способ 5. Макросы для выделенного диапазона, целого листа или всей книги сразу

    Если вас не пугает слово "макросы", то это будет, пожалуй, самый быстрый способ.

    Макрос для превращения всех формул в значения в выделенном диапазоне (или нескольких диапазонах, выделенных одновременно с Ctrl) выглядит так:

    Если вам нужно преобразовать в значения текущий лист, то макрос будет таким:

    И, наконец, для превращения всех формул в книге на всех листах придется использовать вот такую конструкцию:

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

    Способ 6. Для ленивых

    Если ломает делать все вышеперечисленное, то можно поступить еще проще - установить надстройку PLEX, где уже есть готовые макросы для конвертации формул в значения и делать все одним касанием мыши:

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