Вывод этапов вычисления формулы в Excel

Скриншот результатов отображения промежуточных этапов вычислений формулы Excel

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

 

В данной версии функции ParseFormula поддерживаются только 2 формулы: СУММ и ПРОИЗВЕД

Пример её использования - в прикреплённом файле.

В примере в голубых ячейках - исходные данные для формул,
в оранжевых ячейках - формулы типа =ПРОИЗВЕД(A1;B1) для получения промежуточных результатов
в зеленой ячейке подсчитывается сумма произведений формулой =СУММ(C1:C10)

 

Функция анализирует диапазоны, заданные в качестве параметров этих формул, и возвращает результат промежуточных вычислений в виде

123*2,85 + 156*2,94 + 189*3,03 + 222*3,12 + 255*3,21 + 288*3,3 + 321*3,39 + 354*3,48 + 387*3,57 + 420*3,66 = 9082,35

 

Для использования функции добавьте в стандартный модуль вашего файла (или любой подключенной надстройки) следующий код:

Option Compare Text
 
Function ParseFormula(ByRef cell As Range, Optional SubItem As Boolean = False)
    On Error Resume Next
    fo = cell.Formula: fu = Split(Split(fo, "=")(1), "(")(0)
    Dim cel As Range, ra As Range: Set ra = Range(Split(Split(fo, "(")(1), ")")(0))
 
    Select Case fu
        Case "PRODUCT": s = "*"
        Case "SUM": s = " + "
        Case Else: s = " ??? ": fu = ""
    End Select
    If fu = "" Then ParseFormula = cell.Value: Exit Function
 
    For Each cel In ra.Cells
        ParseFormula = ParseFormula & s & IIf(fu = "", cel.Value, ParseFormula(cel, True))
    Next cel
    ParseFormula = Mid(ParseFormula, Len(s) + 1)
    If Not SubItem Then ParseFormula = "" & ParseFormula & " = " & cell.Value
End Function

После добавления кода поместите в нужную ячейку формулу вида =ParseFormula(a1)
где a1 - ссылка на ячейку с обрабатываемой формулой.

Результат работы функции можно использовать и из кода VBA:

Sub ПримерИспользованияParseFormula()
    ' выводим промежуточные результаты вычисления для формулы из активной ячейки
    РезультатВычислений = ParseFormula(ActiveCell)
    Debug.Print РезультатВычислений
End Sub

 

Вложения:

Комментарии

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

Подскажите как можно с помощью формулы "ЕСЛИ", задать условие для обнаружение по нескольким критериям осуществить поиск, на подобии формулы ВПР, формула ВПР работает с одним значением, надо несколько условий задать!!

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
CAPTCHA
Подтвердите, пожалуйста, что вы - человек:
     _      _____  ____       _      _    __   
/ \ |__ / | _ \ / \ / | / /_
/ _ \ / / | |_) | / _ \ | | | '_ \
/ ___ \ / /_ | _ < / ___ \ | | | (_) |
/_/ \_\ /____| |_| \_\ /_/ \_\ |_| \___/
Введите код, изображенный в стиле ASCII-арт.

Не получается применить макрос? Не удаётся изменить код под свои нужды?

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