Трюк №36. Как преобразовать формулы и функции Excel в значения

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

Специальная вставка

При помощи инструмента Excel Специальная вставка (Paste Special) можно копировать результаты вычисления формулы, оставляя исходные формулы на месте. Предположим, у вас есть формулы в ячейках А1:А100. Выделите этот диапазон, выберите команду Копировать (Сору), а затем выделите начальную ячейку, куда будут помещены результаты. Выберите команду Главная → Вставка → Специальная вставка → Значения (Home → Paste → Paste Special → Values) и щелкните кнопку ОК.

Если вы хотите на место исходных формул поместить только результаты их вычисления, выделите диапазон с формулами и выберите команду Копировать (Сору). Теперь, когда диапазон все так же выделен, выберите команду Главная → Вставка → Специальная вставка → Значения (Home → Paste → Paste Special → Values) и щелкните кнопку ОК.

Копирование только значений

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

Выделите диапазон ячеек с формулами и правой кнопкой мыши щелкните правую или левую границу выделения (другими словами, любое место, кроме маркера заполнения). Не отпуская правую кнопку мыши (или удерживая клавишу Ctrl и нажав кнопку мыши на Macintosh), перетащите диапазон в желаемое место, отпустите кнопку мыши и в раскрывшемся контекстном меню выберите команду Копировать только значения (Copy Here as Values Only).

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

Выделите диапазон ячеек с формулами, затем снова правой кнопкой мыши щелкните правую или левую границу выделения (другими словами, любое место, кроме маркера заполнения). Не отпуская правую кнопку мыши (или удерживая клавишу Ctrl и нажав кнопку мыши на Macintosh), перетащите диапазон на один столбец вправо или влево, а затем обратно на исходное место, отпустите кнопку мыши и в раскрывшемся контекстном меню выберите команду Копировать только значения (Copy Here as Values Only).

Макрос

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

1
2
3
4
5
6
7
8
9
// Листинг 2.4
Sub ValuesOnly()
Dim rRange As Range
	On Error Resume Next
		Set rRange = Application.InputBox(Prompt:="Выберите формулы",
											Title:="VALUES ONLY". Type:=8)
		If rRange Is Nothing Then Exit Sub
	rRange = rRange.Value
End Sub

Чтобы применить его, выберите команду Разработчик → Макрос → Редактор Visual Basic (Developer → Macro → Visual Basic Editor) (Alt/Option+Fll). В VBE выберите команду Insert → Module, чтобы вставить стандартный модуль. В этот модуль введите предыдущий код. Щелкните кнопку Close этого окна или нажмите сочетание клавиш Alt/Apple+Q, чтобы вернуться обратно в Excel. Выберите команду Разработчик → Макрос → Макросы (Developer → Macro → Macros) (Alt/Option+F8), выберите ValuesOnly, а затем щелкните кнопку Параметры (Options), чтобы назначить макросу сочетание клавиш. Запустив этот макрос, вы увидите окно InputBox, в котором необходимо выбрать диапазон, содержащий формулы. Адрес выбранного диапазона автоматически появится в этом окне, и все, что останется сделать, — щелкнуть кнопку ОК.

Top