Удалить формулы в Excel можно множеством способов, каждый из которых сильно зависит от поставленной задачи. Как правило, при этом требуется сохранить в ячейках какие-то значения. Вариантов два:
- это значения, вычисленные этими формулами,
- сам текст формул.
Помимо вопроса о том, что оставить в ячейках после удаления формул, могут быть и другие вводные, такие как:
- Где удалять формулы:
- в диапазоне,
- во всем листе,
- во всей книге.
- Нужно ли удалять формулы в скрытых/отфильтрованных строках.
Эта статья даст ответы на все вопросы выше.
Удалить формулы и сохранить данные
Наиболее распространенная задача — когда нужно оставить в ячейке результат формулы, а саму формулу удалить. В понимании Excel результат формулы является значением ячейки.
Так вот, чтобы перевести формулы в значения, нужно:
- Выделить нужный диапазон ячеек (или одну ячейку, всю строку, столбец или весь лист).
- Скопировать выделенное.
- Вставить процедурой вставки “как значения”.
Можно сделать это клавишами мыши или клавиатуры — суть процедуры от этого не меняется.
С помощью мыши
Не самый быстрый (так как работает только одна рука), но самый удобный и понятный способ. Выделяем, копируем и в контекстном меню (вызывается нажатием правой кнопки мыши по выделенному диапазону) команду со скриншота:

С помощью клавиатуры (сочетания клавиш)
Копирование делается в соседний столбец или другую книгу. Я предпочитаю этот способ, хоть он и экономит лишь секунды.
Пошагово:
- Выделяем диапазон:
- мышью, если это столбец, строка или лист,
- сочетаниями Ctrl + Shift + стрелки или Shift + стрелки, если ячейки или диапазоны ячеек.
- Копируем сочетанием Ctrl + C.
- Перемещаемся стрелками к диапазону, куда нужно вставить данные, и/или нажимаем Ctrl + Tab для перехода в другую книгу.
- Вызываем контекстное меню клавишей на клавиатуре. Иногда ее нет, но обычно на клавиатурах она расположена рядом с правым Alt.
- Стрелками перемещаемся к команде (Вниз-вниз-вправо).
- Нажимаем Enter.
Может показаться, что тут целых 6 шагов и это долго, но попробуйте приловчиться и сравнить работу на больших диапазонах ячеек — мышью будет точно дольше.
Перевод формул в их текст (без сохранения результирующих значений)
Иногда требуется для демонстрационных целей преобразовать ячейки, оставив текст формул. В таких случаях полезной будет процедура замены.


В видимых ячейках, пропуская скрытые фильтром
Вот здесь при использовании стандартных решений уже могут возникнуть проблемы. Процедура вставки “как значения” даст сбой и повредит данные, если в копируемом диапазоне есть отфильтрованные строки.
Вот код VBA-процедуры, который позволяет обойти проблему:
Sub remFormulas()
Dim cell As Range
For Each cell In Selection
If Not (cell.EntireRow.Hidden = True Or cell.EntireColumn.Hidden = True) Then
cell.Value2 = cell.Value2
End If
Next cell
End Sub
Он отработает на отлично, как и та же процедура надстройки. В синтаксисе кода присутствует проверка ячеек на предмет того, скрыты ли они.

Удалить формулы на листе / во всех листах
Когда нужно быстро избавиться от всех формул на листе или во всей книге, также могут помочь соответствующие простенькие процедуры, написанные на VBA:
Sub удалитьФормулыСоВсегоЛиста()
ActiveSheet.UsedRange.Value2 = ActiveSheet.UsedRange.Value2
End Sub
Sub удалитьФормулыИзВсейКниги()
Dim w As Worksheet
For Each w In Worksheets
With w.UsedRange
.Value = .Value
End With
Next w
End Sub
Ими можно воспользоваться без внедрения в свои файлы, подключив надстройку !SEMTools.

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

Хотите так же быстро удалять формулы в Excel?
!SEMTools ускорит эту и сотни других задач!