Вычисление вложенной формулы по шагам
Иногда трудно понять, как вложенная формула вычисляет конечный результат, поскольку в ней выполняется несколько промежуточных вычислений и логических проверок. Но с помощью диалогового окна Вычисление формулы вы можете увидеть, как разные части вложенной формулы вычисляются в заданном порядке. Например, формулу =IF(AVERAGE(F2:F5)>50,SUM(G2:G5),0) проще понять, если вы увидите следующие промежуточные результаты:
Шаги, показанные в диалоговом окне
Сначала выводится вложенная формула. Функции СРЗНАЧ и СУММ вложены в функцию ЕСЛИ.
=ЕСЛИ(40>50;СУММ(G2:G5);0)
Диапазон ячеек F2:F5 содержит значения 55, 35, 45 и 25, поэтому функция СРЗНАЧ(F2:F5) возвращает результат 40.
=ЕСЛИ(Ложь;СУММ(G2:G5);0)
Значение 40 не больше 50, поэтому выражение в первом аргументе функции IF (аргумент logical_test) имеет значение false.
Функция ЕСЛИ возвращает значение третьего аргумента (аргумент значение_если_ложь). Функция СУММ не вычисляется, так как она является вторым аргументом функции IF (value_if_true аргумент) и возвращается только в том случае, если выражение имеет значение true.
- Выделите ячейку, которую нужно вычислить. За один раз можно вычислить только одну ячейку.
- На вкладке Формулы в группе Зависимости формул нажмите кнопку Вычислить формулу.
- Нажмите кнопку Вычислить, чтобы проверить значение подчеркнутой ссылки. Результат вычисления отображается курсивом. Если подчеркнутая часть формулы является ссылкой на другую формулу, нажмите кнопку Шаг с заходом, чтобы отобразить другую формулу в поле Вычисление. Нажмите кнопку Шаг с выходом, чтобы вернуться к предыдущей ячейке и формуле.
Примечание: Кнопка Шаг с заходом недоступна для ссылки, если ссылка используется в формуле во второй раз или если формула ссылается на ячейку в отдельной книге.
- Некоторые части формул, использующие функции IF и CHOOSE, не вычисляются, а #N/A отображается в поле Оценка .
- Если ссылка пуста, в поле Вычисление отображается нулевое значение (0).
- Формулы с циклическими ссылками могут не оцениваться должным образом. Если нужны циклические ссылки, можно включить итеративное вычисление.
- Следующие функции пересчитываются при каждом изменении листа и могут привести к тому, что средство «Оценка формулы » дает результаты, отличные от результатов, отображаемых в ячейке: RAND, OFFSET, CELL, INDIRECT, NOW, TODAY, RANDBETWEEN, INFO и SUMIF (в некоторых сценариях).
Порядок выполнения действий в формулах Excel
В некоторых случаях порядок вычисления может повлиять на возвращаемое формулой значение, поэтому для получения нужных результатов важно понимать стандартный порядок вычислений и знать, как можно его изменить.
- Порядок вычислений Формулы вычисляют значения в определенном порядке. Формула в Excel всегда начинается со знака равно (=). Excel интерпретирует символы после знака равно как формулу. После знака равно вычисляются элементы (операнды), например константы или ссылки на ячейки. Они разделены операторами вычислений. Excel вычисляет формулу слева направо в соответствии с определенным порядком для каждого оператора в формуле.
- Приоритет операторов в формулах Excel Если в одной формуле используется несколько операторов, Microsoft Excel выполняет операции в порядке, указанном в приведенной ниже таблице. Если формула содержит операторы с одинаковым приоритетом ( например, если формула содержит операторы умножения и деления), Excel оценивает операторы слева направо.
Оператор Описание : (двоеточие) (один пробел) , (запятая) Операторы ссылок – Знак «минус» % Процент ^ Возведение в степень * и / Умножение и деление + и — Сложение и вычитание & Объединение двух текстовых строк в одну =
< >
>=
<>Операторы сравнения - Использование скобок в Excel формулах Чтобы изменить порядок выполнения формулы, заключите ее часть, которая должна быть выполнена первой, в скобки. Например, результатом приведенной ниже формулы будет число 11, поскольку в Microsoft Excel умножение выполняется раньше сложения. В данной формуле число 2 умножается на 3, а затем к результату добавляется число 5. =5+2*3 Если же с помощью скобок изменить синтаксис, Microsoft Excel сложит 5 и 2, а затем умножит результат на 3; результатом этих действий будет число 21. =(5+2)*3 В приведенном ниже примере скобки, в которые заключена первая часть формулы, задают следующий порядок вычислений: определяется значение B4+25, после чего полученный результат делится на сумму значений в ячейках D5, E5 и F5. =(B4+25)/СУММ(D5:F5)
Как просмотреть этапы вычисления формул
Часто ли Вам приходилось разбирать чужой файл с непонятными на первый взгляд формулами? Вроде считают, но как? Вроде и разобраться хочется как работает какая-нибудь мега-формула — но как это сделать? Я хочу рассказать о паре простых шагов, которые необходимо сделать, чтобы разобраться в работе любой формулы. Давайте попробуем разобраться на примере формулы из моей статьи: Как получить список уникальных(не повторяющихся) значений?:
=ИНДЕКС($A$2:$A$51;НАИМЕНЬШИЙ(ЕСЛИ(СЧЁТЕСЛИ($C$1:C1;$A$2:$A$51)=0;СТРОКА($A$1:$A$50));1))
Что нам понадобится для начала:

- Знать что такое формула
- Знать что такое формула массива
- Не лениться заглядывать в справку по неизвестной функции. Как это сделать: ставим курсор мыши на интересующую формулу и жмем F1(в Excel 2003 и более ранних версиях только так можно). Начиная с Excel 2007 можно еще и иначе: ставим курсор внутрь функции — появится подсказка по функции. После чего нажимаем на имя функции из подсказки:
Чем это поможет? Чтобы понять как работает формула в целом, необходимо знать, что делает каждая функция в неё вложенная и для чего предназначены её аргументы хотя бы в общих чертах.
- Не обязательно, но желательно скачать файл, приложенный к статье Как получить список уникальных(не повторяющихся) значений?, чтобы наглядно пройти все шаги, описанные ниже
Скачать пример: Tips_All_ExtractUnique.xls (108,0 KiB, 18 811 скачиваний)
Если Вы не знакомы с функциями, используемыми в приведенной выше формуле и хотите разобраться — необходимо просмотреть справку по ним, иначе работу формулы не поймете даже с пояснениями
Вот теперь можно начать потрошить формулу. В принципе, самый сложный этап уже пройден. Теперь остается только воспользоваться встроенным средством Excel — окно просмотра этапов вычислений формулы. Выделяем ячейку с нужной формулой и:
для пользователей Excel 2007 и более поздних версий:
вкладка Формулы-группа кнопок Зависимости формул—Вычислить формулу (Formulas—Formula Auditing—Evaluate Formula)
для пользователей Excel 2003:
Сервис—Зависимости формул—Вычислить формулу
Появится форма
После каждого нажатия на кнопку Вычислить (Evaluate) будет произведен очередной этап вычислений формулы и в окне формы будет отображен этот этап. Вычисляемая в текущий момент часть формулы(этап) подчеркивается одинарной линией.
Что следует знать: сначала вычисляется самая глубоко вложенная функция, а уже потом самая первая. Самая первая и основная функция у нас будет ИНДЕКС , а самая глубоко вложенная — СЧЁТЕСЛИ . Поэтому на примере нашей формулы следующим этапом будет вычисление функции СЧЁТЕСЛИ и в скобках будет показан результат для этой функции: . Т.е. для каждого значения диапазона $A$2:$A$51 будет выведено количество — сколько раз это значение встречается в диапазоне $C$1:C1 . Т.к. это первая строка формулы — то будут все нули:
Далее будет произведено вычисление логического выражения =0 : сравнение результата функции СЧЁТЕСЛИ с нулем. Результатом будет ИСТИНА или ЛОЖЬ.
Этот результат(ИСТИНА, ЛОЖЬ) обрабатывается далее функцией ЕСЛИ . А в ЕСЛИ у нас условие: если СЧЁТЕСЛИ равно нулю (т.е. если результат ИСТИНА), то в ЕСЛИ возвращаем номер строки( СТРОКА($A$1:$A$50) ), если нет — то вернет ЛОЖЬ.
Т.к. функция НАИМЕНЬШИЙ работает только с числами, игнорируя любые другие значения, то она не будет учитывать ЛОЖЬ(т.к. это логическое значение, а не число), а будет отбирать только числа — что и ложится в основу формулы.
Чтобы в этом примере было более просто разобраться(насколько это возможно), коротко расскажу о принципе работы этой формулы: если значение из диапазона $A$2:$A$51 встречается в диапазоне вывода формулы(на строку выше) $C$1:C1 , то СЧЁТЕСЛИ вернет не нулевое значение и получится ЛОЖЬ. Если такого значения ещё нет — будет нуль и в НАИМЕНЬШИЙ будет передан номер строки. А уже номер строки передается в ИНДЕКС , которая возвращает непосредственно значение по номеру строки. Чтобы более точно понять подобные формулы надо рассмотреть не только формулу из первой ячейки, но и пару следующих.
Помимо кнопки Вычислить в этом окне есть и другие: Шаг с заходом (Step In) и Шаг с выходом (Step Out) . Делают они почти тоже самое, но доступны не для всех видов формул, а лишь для тех, в которых участвуют ссылки на ячейки с другими функциями. Если вычисляемая в настоящий момент функция содержит внутри ссылку на ячейку, в которой записана другая функция или формула — то Шаг с заходом (Step In) выводит в окно вычисления эту функцию(формулу) и активирует ячейку с этой формулой. При этом доступна эта кнопка становится лишь тогда, когда при вычислении основной формулы шаг вычисления доходит до этой самой ссылки на вложенную формулу. Шаг с выходом (Step Out) при этом возвращает к вычислению предыдущей формулы.
Небольшой практический совет: если используете инструмент Вычислить формулу для поиска ошибки в своей формуле для поиска ошибки и в формуле используются слишком большие диапазоны, то просматривать по шагам такую формулу неудобно. Чтобы было проще — можно уменьшить диапазоны ячеек до 10, выделить ячейку с ошибочным результатом и посмотреть этап вычисления — все участвующие ячейки будут на виду и проще будет понять где ошибка.
Конечно, если формулу создал кто-то другой такой подход не всегда справедлив для сложных формул, т.к. изменение диапазонов без понимания для чего они может привести к нерабочей формуле и в этом случае смотреть этапы вычисления бесполезно.
Есть еще одна возможность анализировать этапы вычислений. Необходимо выделить ячейку с нужной формулой, перейти в строку формул и там выделить фрагмент формулы, результат вычисления которого требуется получить:
после чего, не снимая выделения нажимаем клавишу F9. Выделенный блок формулы будет вычислен и результат будет помещен на место выделенного блока формулы:
Мне этот метод нравится меньше, т.к. он не показывает именно шаги вычисления, а вычисляет разом выделенный блок. Поэтому его можно применять в случаях, когда порядок вычисления известен и надо лишь убедиться, что интересующий блок формулы работает правильно.
Статья помогла? Поделись ссылкой с друзьями!
покупка
Когда вы выполняете какие-то вычисления в Excel и в итоге получаете результаты с ошибками, вы можете просмотреть шаги расчета, чтобы выяснить, где идет ошибка, и затем исправить это.
Отображение и просмотр шагов расчета с помощью функции Evaluate Formula
В Excel вы можете применить функцию Evaluate Formula для просмотра шагов расчета.
1. Выберите одну ячейку формулы и щелкните Формулы > Оценить формулу, Тогда Оценить формулу появляется диалоговое окно. Смотрите скриншот:
![]() |
![]() |
![]() |
2. в Оценить формулу диалоговое окно, вы можете нажать Оценивать кнопку, чтобы показать шаги расчета. (Щелкнув Оценивать кнопка один раз отобразит один шаг расчета.)
![]() |
![]() |
![]() |
![]() |
![]() |
3. Затем, после просмотра этапов расчета, вы можете нажать Закрыть кнопку, чтобы закрыть диалоговое окно.
Примечание: вы также можете нажать Шаг в для просмотра данных каждой ячейки, а затем щелкните Выйти вернуться назад. (Каждую ячейку нужно было щелкнуть по шагу в один раз.)
![]() |
![]() |
![]() |
![]() |
![]() |








