Может ли Excel отображать формулу и ее результат одновременно?

Может ли Excel отображать формулу и ее результат одновременно?

Я знаю, что в Excel можно переключаться междуотображение значений и отображение формулМне необходимо сдать задания по статистике в виде распечатанного листа Excel, показывающегообаформула и результат. Сейчас инструктор заставляет нас либо копировать формулу и вставлять ее как текст рядом с вычисленным значением, либо копировать значение и вставлять его рядом с формулой. Это очень неэффективно, подвержено ошибкам (если вы измените формулу или значения после копирования-вставки) и, как правило, является пустой тратой времени.

Есть ли способ заставить Excel показать формулу?иего значение в той же ячейке? Если нет, есть ли функция, которая отобразит формулу из указанной ячейки как обычный текст, например, =showformula(A1)которая выведет =sum(A2:A5) вместо 25(если бы это были формула и значение ячейки A1)?

Я использую Excel 2010, но было бы неплохо получить общий ответ, который подойдет для любой последней версии Excel.

решение1

Я не знаю о каких-либо встроенных функциях для этого. Однако вы можете создать пользовательскую функцию VB, чтобы выполнить то, что вам нужно.

НажиматьАльт+Ф11Чтобы открыть редактор VBA, щелкните правой кнопкой мыши в обозревателе проектов и выберитеВставлять->Модуль. Вставьте следующий код:

Function GetFormula(cell)  
  GetFormula = cell.Formula  
End Function

Теперь вы можете использовать =GetFormula(A1), чтобы отобразить формулу этой ячейки.

решение2

Стоит отметить, что в Excel 2013 для этого есть встроенная функция: FORMULATEXT.

Из статьи support dot office dot com о FORMULATEXTфункции:

Описание

Возвращает формулу в виде строки.

Синтаксис

ФОРМУЛАТЕКСТ(ссылка)

Синтаксис функции FORMULATEXT имеет следующие аргументы:

  • Ссылка Обязательно. Ссылка на ячейку или диапазон ячеек.

Замечания

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

решение3

Вот способ автоматизировать то, что вы делали раньше. Он сочетает в себе лучшие частиОтвет LonelyKnight на его/ее собственный вопрос, ответ Индрека и ответ Биллиса:

Sub Show_Formulas()
    Dim rng As Range, cell As Range
    row_offset = 10
    col_offset = 0
    Set rng = Range(Cells(1, 1), Cells(5, 7))

    On Error GoTo ErrHandler
    For Each cell In rng
        cell.Offset(row_offset, col_offset) = "'" & cell.Formula
    Next cell
    Exit Sub

ErrHandler:
    MsgBox "The cow jumped over the moon", , "Error!", Err.HelpFile, Err.HelpContext

End Sub

Для каждой ячейки в указанном диапазоне (здесь жестко закодированном как A1:G5) он копирует формулу ячейки, защищенную апострофом, в ячейку с фиксированным смещением. (См.Как добавить VBA в MS Office? (для получения руководства по использованию VBA в Excel.) Вам просто нужно не забыть запустить этот макрос перед печатью.

Или добавьте PrintOut , , , Trueоператор непосредственно перед Exit Sub, и этот макрос распечатает лист для вас. (Вам просто нужно не забыть напечататьиспользуя этот макрос.) Четвертый параметр — PrintOutэтоПредварительный просмотр, установите значение, Trueчтобы Microsoft Excel вызывал предварительный просмотр перед печатью листа (что дает вам возможность отменить операцию) или False(или опустите) для немедленной печати листа без каких-либо условий.

Или, если вы действительно беспокоитесь о том, что забудете запустить это, вы можете использовать Private Sub Worksheet_Changeдля обновления отображаемых формул в любое время, когда вы делаетелюбойизменение в рабочем листе.

решение4

Бесплатная надстройка,ФормулаDeskможет сделать это за вас, а также отобразить формулу в более понятном виде и выявить ошибки в формуле.

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

[Раскрытие информации: я являюсь автором FormulaDesk]

введите описание изображения здесь

Связанный контент