Iterative calculations can help find the solution to mathematical problems by running calculations over and over using previous results. This is made possible by computers that can run calculations repeatedly to find the likelihood of possible answers by getting closer to the results from different angles.
In Excel, you can reference a cell that contains a formula and use its result in an identical formula in a different cell. For this, you would need to copy the formula and references as many times as you want to repeat the process. This can work if your model is relatively simple, but doing so in more complicated workbooks might prove much more challenging, if not downright impossible to do.
An alternative and better approach is to use the Excel iterative calculation feature. You can create a formula that refers to the cell containing the formula. The formula can use the result of the previous calculations, thus automatically calculating the same thing over multiple iterations.
As easy as it sounds, there are a few things you need to consider. First of all, the number of iterations should be limited. Even though a higher iteration count usually means more accurate results, this also means longer calculations times – and sometimes crashes. Another thing to note is that when iterative calculations are disabled, Excel will show a warning as circular references are usually considered user errors unless you know what you’re doing.
To learn more about circular references please see: How to Handle Circular References in Excel
Enabling Excel Iterative Calculations
To activate and use circular references, you must first activate them by checking Enable iterative calculations option under the File menu.
Go to File > Options > Formulas > Calculation options section in Excel 2016, Excel 2013 and Excel 2010.
In Excel 2007, go to Office button > Excel options > Formulas > Iteration area.
In Excel 2003 and earlier, go to Menu > Tools > Options > Calculation.
Enabling iterative calculations will bring up two additional inputs in the same menu:
- Maximum Iterations determines how many times Excel is to recalculate the workbook,
- Maximum Change determines the maximum difference between values of iterative formulas. Note that entering a smaller number here means more accurate results.
Iterative calculations stop when one of the conditions defined (iterations count or change value) are matched. For example, let’s assume that Maximum Iterations is set to 100 and Maximum Change to 0.001. This means that Excel will stop calculating either after 100 calculations, or when there’s less than 0.001 difference between the results.
Use Cases
Calculating Future Value of an Investment
Let’s assume that we have $10,000 and want to invest this money in a cash deposit (CD) account. We’re going to assume a monthly interest rate of 1.25%. You can download the sample workbook for this use case . To calculate the total value at the end of the 21st month, we’re going to calculate the principal for each month, and add the interest to the previous month.
Begin by entering the starting cash, interest, and the total value function like below.
=value * ( 1 + interest rate)
Then, select the cell with the initial cash value and add the reference of the total value function.
This will give a circular reference warning if iterative calculations are not enabled. If you haven’t done so already, enable this option and set the Maximum Iterations to 20 to find the interest for the 21st month. See the previous section Enabling Iterative Calculations to enable this feature.
Automatic Timestamp
Circular references can also be used to add time stamps into cells. You can download the sample workbook for this use case . Let’s assume we want to add time stamps to the orders entered in the table below.
We can use circular references to add a time stamp when a new order information is entered. To do this, begin by adding a new column into the table where you’d like to print the timestamps. Type in the formula,
=IF(A2<>””,IF(I2<>””,I2,NOW()),””)
This formula will check whether there’s data in Order Number (cell A2). If it’s not blank and the timestamp cell is empty, the formula will return the NOW() function.
Note that pressing the Enter key will give a circular reference warning if iterative calculations are not enabled. See the previous section Enabling Iterative Calculations to enable this feature. This time Maximum Iterations or Maximum Change numbers don’t mean much, because we only need a single iteration, so you can leave these two inputs in their default values.
Now, every time we enter a new order and create a new row, a timestamp will be automatically printed on the Timestamp column.
25.10.2013 Полезные советы
Среди пользователей Excel широко распространено мнение, что циклическая ссылка в excel является разновидностью ошибки, и от нее нужно непременно избавляться.
Между тем, именно циклические ссылки в excel способны облегчить нам решение некоторых практических экономических задач и финансовом моделировании.
Эта заметка как раз и будет призвана дать ответ на вопрос: а всегда ли циклические ссылки – это плохо? И как с ними правильно работать, чтобы максимально использовать их вычислительный потенциал.
Для начала разберемся, что такое циклические ссылки в excel 2010.
Циклические ссылки возникают, когда формула, в какой либо ячейке через посредство других ячеек ссылается сама на себя.
Например, ячейка С4 = Е 7, Е7 = С11, С11 = С4. В итоге, С4 ссылается на С4.
Наглядно это выглядит так:
На практике, зачастую, не такая примитивная связь, а более сложная, когда результаты вычисления одной формулы, порою весьма замысловатые, влияют на результат вычисления другой формулы, которая в свою очередь влияет на результаты первой. Возникает циклическая ссылка.
Предупреждение о циклической ссылке
Появление циклических ссылок очень легко определить. При их возникновении или наличии в уже созданной книге excel сразу же появляется предупреждение о циклической ссылке, которое по большому счету и описывает суть явления.
При нажатии на кнопку ОК, сообщение будет закрыто, а в ячейке содержащей циклическую ссылку в большинстве случаев появиться 0.
Предупреждение, как правило, появляется при первоначальном создании циклической ссылки, или открытии книги содержащей циклические ссылки. Если предупреждение принято, то при дальнейшем возникновении циклических ссылок оно может не появляться.
Как найти циклическую ссылку
Циклические ссылки в excel могут создаваться преднамеренно, для решения тех или иных задач финансового моделирования, а могут возникать случайно, в виде технических ошибок и ошибок в логике построения модели.
В первом случае мы знаем об их наличии, так как сами их предварительно создали, и знаем, зачем они нам нужны.
Во втором случае, мы можем вообще не знать где они находятся, например, при открытии чужого файла и появлении сообщения о наличии циклических ссылок.
Найти циклическую ссылку можно несколькими способами. Например, чисто визуально формулы и ячейки участвующие в образовании циклических ссылок в excel отмечаются синими стрелками, как показано на первом рисунке.
Если циклическая ссылка одна на листе, то в строке состояния будет выведено сообщение о наличии циклических ссылок с адресом ячейки.
Если циклические ссылки есть еще на других листах кроме активного, то будет выведено сообщение без указания ячейки.
Если или на активном листе их более одной, то будет выведено сообщение с указанием ячейки, где циклическая ссылка появляется в первый раз, после ее удаления – ячейка, содержащая следующую циклическую ссылку и т.д.
Найти циклическую ссылку можно также при помощи инструмента поиска ошибок.
На вкладке Формулы в группе Зависимости формул выберите элемент Поиск ошибок и в раскрывающемся списке пункт Циклические ссылки.
Вы увидите адрес ячейки с первой встречающейся циклической ссылкой. После ее корректировки или удаления – со второй и т.д.
Теперь, после того как мы выяснили как найти и убрать циклическую ссылку, рассмотрим ситуации, когда делать этого не нужно. То есть когда циклическая ссылка в excel приносит нам определенную пользу.
Использование циклических ссылок
Рассмотрим пример использования циклических ссылок в финансовом моделировании. Он поможет нам понять общий механизм итеративных вычислений и дать толчок для дальнейшего творчества.
В финансовом моделировании не часто, но все же возникает ситуация, когда нам необходимо рассчитать уровень затрат по статье бюджета, зависящей от финансовый результата, на который эта статья влияет. Это может быть, например статья расходов на дополнительное премирование персонала отдела продаж, зависящая от прибыли от продаж.
После введения всех формул, у нас появляется циклическая ссылка:
Однако, ситуация не безнадежная. Нам достаточно изменить некоторые параметры Excel и расчет будет осуществлен корректно.
Еще одна ситуация когда могут быть востребованы циклические ссылки – это метод взаимных или обратных распределений косвенных затрат между непроизводственными подразделениями.
Подобные распределения делаются при помощи системы линейных уравнений, и могут быть реализованы в Excel с применением циклических ссылок.
На тему методов распределения затрат в ближайшее время появиться отдельная статья.
Пока же нас интересует сама возможность таких вычислений.
Итеративные вычисления
Для того чтобы корректный расчет был возможен, мы должны включить итеративные вычисления в параметрах Excel.
Итеративные вычисления – это вычисления повторяемые множество раз, пока не будет достигнут результат соответствующий заданным условиям (условию точности или условию количества осуществленных итераций).
Включить итеративные вычисления можно через вкладку Файл → раздел Параметры → пункт Формулы. Устанавливаем флажок «Включить итеративные вычисления».
Как правило, установленных по умолчанию предельного числа итераций и относительной погрешности достаточно для наших вычислительных целей.
Следует иметь ввиду, что слишком большое количество вычислений может существенно загружать систему и снижать производительность.
Также, говоря об итеративных вычислениях, следует отметить, что возможны три варианта развития событий.
Решение сходится, что означает получение надежного конечного результата.
Решение расходится, т. е. при каждой последующей итерации разность между текущим и предыдущим результатами увеличивается.
Решение колеблется между двумя значениями, например, после первой итерации получается значение 1, после второй — значение 10, после третьей — снова 1 и т. д.
Ранее я описал, как найти и исправить циклическую ссылку. Напомню, что циклическая ссылка появляется, если в ячейку Excel введена формула, содержащая ссылку на саму эту ячейку (напрямую или через цепочку других ссылок). Например (рис. 1), в ячейке С2 находится формула, ссылающаяся на саму ячейку С2.
Рис. 1. Пример циклической ссылки
Но!.. Не всегда циклическая ссылка является бедствием. Циклическую ссылку можно использовать для решения уравнений итерационным способом. Для начала нужно позволить Excel вести вычисления, даже при наличии циклической ссылки. В обычном режиме Excel, обнаружив циклическую ссылку, выдаст сообщение об ошибке, и потребует ее устранения. В обычном режиме Excel не может провести вычисления, так как циклическая ссылка порождает бесконечный цикл вычислений. Можно, либо устранить циклическую ссылку, либо допустить вычисления по формуле с циклической ссылкой, но ограничив число повторений цикла. Для реализации второй возможности щелкните на кнопке «Office» (в левом верхнем углу), а затем на «Параметры Excel» (рис. 2).
Скачать заметку в формате Word, примеры в формате Excel
Рис. 2. Параметры Excel
В открывшемся окне «Параметры Excel» перейдите на вкладку Формулы и отметьте «Включить итеративные вычисления» (рис. 3). Помните, что эта опция включается для приложения Excel в целом (а не для одного файла), и будет действовать, пока вы ее не отключите.
Рис. 3. Включить итеративные вычисления
На этой же вкладе, можно выбрать, как будут вестись вычисления: автоматически или вручную. При автоматическом вычислении Excel сразу рассчитает конечный результат, при вычислениях, вручную, можно будет наблюдать результат каждой итерации (простым нажатием F9 запуская каждый новый цикл вычисления).
Решим уравнение третьей степени: х3 – 4х2 – 4х + 5 = 0 (рис. 4). Для решения этого уравнения (и любого другого уравнения совершенно произвольного вида) понадобится всего одна ячейка Excel.
Рис. 4. График функции f(x)
Для решения уравнения нам понадобится рекуррентная формула (то есть, формула, выражающая каждый член последовательности через один или несколько предыдущих членов):
(1) x = x – f(x)/f’(x), где
х – переменная;
f(x) – функция, задающая уравнение, корни которого мы ищем; f(x) = х3 – 4х2 – 4х + 5
f’(x) – производная нашей функции f(x); f’(x) = 3х2 – 8х – 4; производные основных элементарных функций можно посмотреть здесь.
Если вы заинтересовались, откуда взялась формула (1), можете почитать, например, здесь.
Итоговая рекуррентная формула имеет вид:
(2) х = x – (х3 – 4х2 – 4х + 5)/(3х2 – 8х – 4)
Выберем любую ячейку на листе Excel (рис. 5; в нашем примере это ячейка G19), присвоим ей имя х, и введем в нее формулу:
(3) =x-(x^3-4*x^2-4x+5)/(3*x^2-8*x-4)
Можно вместо х использовать адрес ячейки… но согласитесь, что имя х, смотрится привлекательнее; следующую формулу я ввел в ячейку G20:
(4) =G20-(G20^3-4*G20^2-4*G20+5)/(3*G20^2-8*G20-4)
Рис. 5. Рекуррентная формула: (а) для поименованной ячейки; (б) для обычного адреса ячейки
Как только мы введем формулу и нажмем Enter, в ячейке сразу же появится ответ – значение 0,77. Это значение соответствует одному из корней уравнения, а именно второму (см. график функции f(x) на рис. 4). Поскольку начальное приближение не задавалось, итерационный вычислительный процесс начинался со значения, по умолчанию хранимого в ячейке х и равного нулю. Как же получить остальные корни уравнения?
Для изменения стартового значения, с которого рекуррентная формула начинает свои итерации, предлагается использовать функцию ЕСЛИ: [1]
(5) =ЕСЛИ(x=0;-5;x-(x^3-4*x^2-4*x+5)/(3*x^2-8*x-4))
Здесь значение «-5» – начальное значение для рекуррентной формулы. Изменяя его, можно выйти на все корни уравнения:
Начальное значение | Корень уравнения |
1 | 0,77 |
-5 | -1,40 |
8 | 4,63 |
[1] Идея подсмотрена здесь
Итерационное вычисление
В EXCEL
итерационные процедуры нужны для
пошаговых вычислений. Итерационное
вычисление основано на повторении
последовательности операций, при котором
на каждом последующем шаге вычисления
используется результат предыдущего
шага.
Для того чтобы итерационный процесс
был возможен, одна или несколько ячеек
должны содержать циклические ссылки.
В стандартном режиме циклическая ссылка
воспринимается программой как ошибка,
потому что вычисление с никогда не может
быть закончено. Для ограничения числа
шагов (циклических ссылок) можно
воспользоваться встроенными средствами
EXCEL. После этого можно использовать
циклические ссылки для вычисления
методом последовательного приближения
(итерации). Разрешение на итерацию можно
ввести с помощью меню Сервис->Параметры->Вычисления
и поставить флажок в ячейке Итерация.
После того как флажок установлен,
включается ограничение на количество
циклов вычислений на листе. Во-первых,
программа прерывает процесс вычисления,
обнаружив его “зависание”, когда
относительное изменение величины не
превышает некоторого порогового значения
. Оно проставляется в окне Максимальное
изменение. По умолчанию оно равно 0,001.
После того как закончен ввод данных,
программа автоматически производит
первое вычисление всех значений на
листе. Повторить вычисление можно, нажав
клавишу F9.
Рассмотрим примеры итерационных
процессов.
Задание 20.
Разрешите циклическую ссылку.
Необходимо решить следующую задачу:
вычислить полагающийся торговому агенту
бонус, составляющий 12% от чистой прибыли.
Сумма общей прибыли составляет 1,5 млн.
рублей, чистая прибыль равна величине
общей прибыли минус выплачиваемый
бонус.
Для этого составьте следующую таблицу,
рис.11:
Рис.11
Измените величину общей прибыли и
посмотрите, как изменится бонус.
Задание 21. Составьте свой пример
на использования итерации. Результата
покажите преподавателю и оформите его
в тетради.
Подбор параметра.
Программа
EXCEL обладает замечательным
свойством — подбирать параметр какой-то
зависимости, функции для получения
заведомо желаемого (заданного) результата.
Это может быть использовано, например,
для определения процента погашения за
ссуду при известном сроке погашении. И
много еще других случаев в жизни, когда
необходимо «подогнать» какой-либо
параметры при остальных фиксированных.
Для использования этого режима необходимо
в меню Сервис выбрать позицию Подбор
параметра. В появившемся окне диалога
необходимо ввести три параметра:
1) Указать адрес ячейки, в которой должно
находится целевое значение функции,
которое вы хотите достичь.
2) Указать в выбранной ячейке числовое
значение целевой функции.
3) Указать адрес ячейки, содержимое
которой позволено изменять для получения
заданного значения целевой функции.
При указании изменяемой ячейки следует
учитывать два нюанса: во-первых, данная
ячейка должна содержать числовое
значение, а не формулу, во-вторых, итоговая
ячейка должна прямо или косвенно
ссылаться на изменяемую. В противном
случае, несмотря на активные усилия,
программа так и не сможет определить
нужного исходного значения.
Задание 22. Подобрать радиус круга,
площадь которого равна 5000 квадратных
метров.
Задание 23. Придумайте свой пример
на подбор параметра. Реализуйте его на
компьютере и опишите его в тетради.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
Содержание
- — Что такое итеративный расчет в Google Таблицах?
- — Как избежать циклических ссылок в Excel?
- — Что такое итерационные вычисления?
- — Как вы используете итерационные вычисления?
- — Что подразумевается под итеративным?
- — Как разрешить циклические ссылки на листах?
Итерация — это повторный пересчет рабочего листа до тех пор, пока не будет выполнено определенное числовое условие. Excel не может автоматически вычислить формулу, которая прямо или косвенно ссылается на ячейку, содержащую формулу. Это называется круговой ссылкой.
Что такое итеративный расчет в Google Таблицах?
Чтобы предотвратить ошибки, которые иногда мешают сложным вычислениям, сегодня мы запускаем новую настройку в Таблицах в Интернете (Файл> Настройки электронной таблицы> Расчет> Итерационные вычисления), которая позволяет вам установить максимальное количество раз, когда может выполняться расчет с круговой ссылкой.
Использовать Меню формул
Щелкните вкладку «Формулы» в меню ленты в верхней части окна Excel. Щелкните маленькую стрелку рядом с кнопкой «Проверка ошибок» в этой области. Наведите указатель мыши на «Круговые ссылки», и появится последняя введенная круговая ссылка.
Что такое итерационные вычисления?
Итерационные вычисления повторные вычисления до тех пор, пока не будет выполнено определенное числовое условие. Итерационные вычисления помогают Excel находить решение формул, многократно выполняя одно и то же вычисление с использованием предыдущих результатов. Анализируя предыдущие результаты, Excel может определить вероятность возможных решений.
Как вы используете итерационные вычисления?
Узнать об итеративном расчете
- Если вы используете Excel 2010 или более позднюю версию, щелкните Файл> Параметры> Формулы. …
- В разделе Параметры расчета установите флажок Включить итеративный расчет. …
- Чтобы установить максимальное количество повторных вычислений Excel, введите количество итераций в поле Максимальное количество итераций.
Что подразумевается под итеративным?
: с повторением: например. а: выражая повторение словесного действия. б: использование повторения последовательности операций или процедур, методы итеративного программирования.
Как разрешить циклические ссылки на листах?
В листах вы можете используйте importrange для сослаться на тот же лист и вызвать желаемый диапазон. Например, вы можете поместить в B1 формулу = A1 + 1, а в A1 использовать формулу = importrange (, «B1») + 1. Возможно, вам придется сначала поместить формулу в A2, а затем переместить ее в A1, но она должна работать.
Интересные материалы:
Все в одном устройстве смены голоса бесплатно?
Все звук аналоговый?
Всегда ли 4 ядра лучше 2?
Всегда ли единичный вектор равен 1?
Всегда ли на Amazfit BIP u выставлено напоказ?
Всегда ли персонализация услуг — это хорошо?
Всегда ли пешеходные переходы отмечены?
Всегда ли правильная грамматика?
Всегда ли стимулы работают на экономику?
Всегда ли свидание романтично?
Материалы
Перекрестный расчет себестоимости
- Подробности
- Создано 10 Март 2013
Содержание |
---|
Пример задачи |
Преобразование математической модели |
Назначенная себестоимость |
Подбор значения |
Итерационный расчет |
Заключение |
При разработке экономических моделей одной из самых интересных задач является решение проблемы перекрестных связей между формулами. Такие взаимосвязи не позволяют использовать стандартный тип вычислений Excel — прямой алгоритм вычислений дает сообщение о циклической ссылке между формулами. На практике такие задачи встечаются не очень часто. Поэтому вызывают некоторое замешательство даже у опытных пользователей, так как правильно построенный алгоритм не удается реализовать привычным способом в электронных таблицах. Рассмотрим варианты решения подобного рода задачи на примере экономической модели расчета цеховой себестоимости.
Пример задачи
На крупном производственном предприятии имеется 2 цеха вспомогательного производства:
- Энергоцех
- Теплоцех
Первый производит электроэнергию для всего предприятия, второй вырабатывает тепло для обогрева всех производственных и административных зданий. Рассматривая каждый цех как центр затрат, можно выделить отдельный бюджет собственных расходов: зарплата персонала, содержание, ремонт, хозяйственные расходы и т.п. Особенностями этих цехов является то, что они формируют составляющие себестоимости продукции, а именно, потребленное электричество и тепло. В нашем случае себестоимость единицы электроэнергии будет равна сумме затрат энергоцеха в рублях, деленной на количество выработанного электричества в натуральном измерении – кВт/ч; аналогично, себестоимость единицы тепла равна сумме затрат теплоцеха в рублях, деленной на общую выработку тепла в натуральном измерении – мДж.
Сложность заключается в том, что сами цеха потребляют энергию друг друга – энергоцех отапливается, а теплоцех потребляет электроэнергию (например, на освещение). В реальной ситуации надо еще учитывать, что какая-то часть собственной энергии каждого цеха идет на внутреннее потребление. Этот момент в задаче не учитывается, так как он принципиально не влияет на алгоритм решения.
Итак, получается, что энергоцех для расчета себестоимости кВт/ч должен учитывать цену потребленного тепла, а теплоцех, в свою очередь, для расчета стоимости мДж должен знать цену кВт/ч. Типичный случай «перекрестной ссылки». Задача, как ни странно, часто встречается на практике именно в такой формулировке. Бывает еще более сложная ситуация, когда вспомогательных цехов с перекрестными затратами несколько: холодильный цех, газо- и водоснабжение, и т.п. Иногда взаимно потребляются полуфабрикаты, произведенные в другом цехе. На большинстве крупных производственных предприятий, особенно с корнями из советского прошлого, до сих пор считают цеховую себестоимость, и приходят в какой-то момент в описанный алгоритмический тупик.
Упрощенная форма задачи представлена в файле примера к статье:
Формула в ячейке В9 (=B8+B7*E10) определяет, что итоговые затраты энергоцеха складываются из бюджета внутренних расходов (в примере представлен одним числом) и стоимостью потребления тепла (объем, умноженный на цену). Ячейка B10 вычисляет себестоимость кВт/ч электроэнергии (=B9/B6). Если попытаться скопировать формулу расчета себестоимости единицы электроэнергии в формулу расчета единицы теплоэнергии (B10 в E10), то логично получим сообщение о циклической ссылке:
Какие же варианты решения имеются и используются на практике?
Преобразование математической модели
Кардинальный вариант – это пересмотр алгоритмов вычислений таким образом, чтобы исключить перекрестные ссылки между формулами.
В нашей задаче таким решением является отказ от цеховой (передельной) себестоимости и применение директ-костинга, то есть расчета себестоимости на уровне только прямых затрат. Этот метод решения, пожалуй, наиболее правильный и подходящий большинству предприятий. Но здесь останавливаться на нем не будем, так как цель статьи все-таки показать возможности Excel, а не устроить теоретическую дискуссию.
Назначенная себестоимость
Для решения задачи можно директивно установить (назначить) величину себестоимости для одного или обоих типов затрат. Например, стоимость электроэнергия устанавливается равной 2 руб за кВт/ч. Этого, в принципе, достаточно для решения нашей проблемы – теплоэнергию уже можно рассчитать по формуле без перекрестных ссылок. Но очевидно возникает другая проблема. Почему назначенная себестоимость равна двум, а не трем рублям? Дополнительно в итоговый расчет себестоимости надо вводить корректирующую сумму, которую непонятно к какому центру затрат отнести. Есть большой риск, что просто будет неверно посчитана полная себестоимость. То есть, себестоимость выработанной продукции не совпадет с затратами всего предприятия.
Как вариант предыдущего метода на практике часто используется в качестве назначенной фактическая себестоимость прошедшего периода (месяца). Этот вариант более устойчив к большим отклонениям в итоговых результатах, но проблему полностью не решает. Скорее это попытка минимизировать риск ошибки, причем в данном варианте обычно опускается расчет корректировок итоговых показателей полной себестоимости.
Подбор значения
Лучше попытаться подобрать величину себестоимости с максимальной степенью точности. То есть так, чтобы полная себестоимость произведенной продукции совпала с суммарными затратами завода. Этот вариант тоже можно считать методом назначенной стоимости, но здесь исключается ошибка итоговых расчетов. Очевидно, что перебирать значения вручную достаточно сложно. На практике можно воспользоваться интерфейсным средством Excel «Подбор параметра«:
Решение задачи найдено. Но обратите внимание, что «Подбор параметра» ссылался на контрольную ячейку математической модели, перебирая числа, до тех пор, пока там не оказалось нулевое значение. На практике у вас может не быть подобной контрольной точки, так как ее вычисление связано с множеством внешних данных. Еще один недостаток данного метода – его можно использовать для обработки только одной ячейки (подбора одного числа). Но забывать об этом варианте тоже не стоит – в некоторых случаях он даже удобнее рассматриваемого ниже варианта итерационных расчетов.
Итерационный расчет
Excel позволяет решать задачи с перекрестными ссылками в формулах при помощи итерационных вычислений. При этом необходимым условием является сходимость (приближение к результату) взаимозависимых формул после каждого шага повторения вычислений.
Для включения итерационного типа вычислений включите одноименный параметр Excel. После этого можно копировать формулу из ячейки B10 в E10. В результате получим верный результат и отсутствие сообщения о циклической ссылке:
Параметры итерационных расчетов (Предельное число итераций и Относительная погрешность) можно изменить, если необходима большая точность вычислений.
Заключение
Итерационные вычисления – это мощный встроенный механизм Excel для решения специфических задач с перекрестными взаимосвязями в формулах. Но использовать этот метод следует с большой осторожностью и только, если Вы действительно уверены в верно составленном алгоритме решения задачи. В большинстве случаев сообщение Excel о циклической ссылке указывает на некорректно выстроенную математическую модель, а не на необходимость применения итерационного расчета.
Для того чтобы быть уверенным в правильности итерационных расчетов, рекомендуется создавать специальные контрольные точки (служебные ячейки с формулами). В примере задачи в качестве такого контроля используется сравнение суммы затрат по центрам ответственности и итоговой себестоимости потребления ресурсов.
Также следует помнить, что итерационный расчет существенно замедляет общую скорость вычислений Excel. Рекомендуется после получения результата просто вставить значения вместо формулы в одну или в несколько ячеек с перекрестной ссылкой, сохранив где-нибудь копию формулы для повтора вычислений с измененными исходными данными.
Смотри также
» Объединение строк
У продвинутых пользователей Excel очень популярен вопрос о возможности объединения диапазона ячеек, содержащих текст, в одну строку при…
» Распределение начислений по платежам
При ведении финансового учета в электронных таблицах обычно ограничиваются, так называемым «котловым» методом расчета задолженности…
» Календарный план выпуска изделий
Одной из самых сложных задач экономического менеджмента является составление календарного плана выпуска продукции в условиях…
» Судоку
Пример решения головоломки «Судоку 9х9» без программирования. К экономике отношения не имеет, зато отлично показывает возможности Excel в…
» Поиск кратчайшего маршрута
При решении сложных алгоритмических задач с использование электронных таблиц иногда приходится сталкиваться с ошибками из-за…
Обычной проблемой для бизнеса является вычисление определенного вклада как процента от чистой прибыли компании. Это не простая проблема умножения, поскольку чистая прибыль также учитывает данный вклад. Например, если доходы компании составили 1 000 000 рублей, а расходы 900 000, валовая прибыль при этом составляет 100 000 рублей. При этом компания выделяет в сторону в качестве вклада 10% от чистой прибыли.
Чистая прибыль при этом будет вычисляться по следующей формуле: Чистая прибыль = Валовая прибыль - Вклад
. Это называется циклически зависимая формула, поскольку выражения в левой и правой части зависят друг от друга. В данном случае сумма вклада будет вычисляться по формуле: Вклад = (Чистая прибыль)*0.1
.
Одним из способов решения данной проблемы является возможность предположить правильный ответ и затем посмотреть, насколько вы близко находитесь от реального результата. Например, в данном случае можно предположить, что, если вклад составляет 10% от чистой прибыли, мы можем взять эти 10% от валовой прибыли в 100 000. При этом сумма вклада получается равной 10 000. Если мы используем это число в формуле, то получим, что чистая прибыль равна 90 000, а 10% от нее равны 9 000. Таким образом, мы ошиблись на 1 000. Можно попробовать ещё раз. Возьмем вклад, равный 9 000. При этом чистая прибыль будет равна 91 000, а сумма вклада в 10% от этой суммы будет равна 9 100. Мы ошиблись уже всего на 100 рублей.
Если мы будем продолжать данный процесс, сумма вклада все ближе и ближе будет приближаться к истинному значению. Когда мы приблизимся достаточно близко (например, с точностью до рубля), мы можем остановиться и принять ответ за верное решение. Этот процесс называется итерациями. Конечно, мы не собираемся тратить свое драгоценное время или время компании на такие расчеты. Excel делает такие сложные вычисления очень простыми, если вы проделаете следующие шаги.
Рис. 3.5. Циклические ссылки
- Загрузите вашу книгу и введите туда необходимые циклически зависимые расчеты. На рис. 3.5 показана книга, вычисляющая предыдущий рассмотренный пример. При нажатии на Enter — подтверждении формулы расчета вклада — Excel выведет на экран предупреждение о наличии циклов.
- Нажмите на кнопку Файл, далее Параметры, затем вкладка Формулы.
- Включите флажок Включить итеративные вычисления.
- Вы можете использовать поле Предельное число итераций для задания количества итераций для вычисления. Как правило, число 100 является оптимальным между точностью и временем вычисления.
- Также вы можете задать Относительную погрешность в соответствующем иоле. При достижении заданной здесь точности Excel автоматически прекратит вычисления. Опять же, число 0.001, предложенное по умолчанию, является адекватным для большинства ситуаций.
- Нажмите ОК. Excel произведет вычисления и выдаст ответ (см 3.6).
Рис. 3.6. Ответ после итерационных вычислений
Если вы хотите посмотреть, как именно происходит вычисление итераций в вашем случае, установите в параметрах Excel вычисления на листе вручную и предельное число итераций, равное 1. Нажимая на кнопку F9, вы сможете видеть результат вычисления очередной итерации.
Скорее всего вы сталкивались с ситуацией, когда строишь в Excel расчетную модель, делаешь все логично и вроде по методике. И тут – раз – и выпадает сообщение о циклической ссылке. Основных причин может быть две. Первая причина – просто ошибка (например, не туда сослались). В таком случае ничего особо не посоветуешь. Нужно исправлять формулу. Вторая причина циклической ссылки — это когда методика расчетов не совпадает с логикой формул Excel. А это интересно. И как раз об этом статья.
Итак, обсудим, что делать, если логика вычислений требует добавлять в формулы взаимные ссылки. Спойлер: в Excel есть галочка, которая все исправит.
Рассмотрим ситуацию на простом примере с плановой калькуляцией доходов и расходов. Дано:
- Сумма расходов по статьям 25 150 ₽
- Плановая рентабельность продаж 20%.
Требуется:
- на основе расходов и рентабельности рассчитать прибыль;
- получившуюся прибыль прибавить к расходам и найти сумму выручки.
Да, формулировка «рассчитать прибыль на основе расходов и рентабельности» может показаться странной. Мы привыкли, что прибыль — это разница между доходами и расходами. На самом деле все ok.
Это при расчете фактической прибыли мы из выручки вычитаем расходы. А при построении плана (особенно, затратным методом) достаточно часто мы берем за основу именно расходы и оцениваем, какая должна быть выручка, чтобы обеспечить заданный уровень прибыли и рентабельности. Поэтому в нашем примере сначала считаем прибыль, затем прибавляем ее к расходам и получаем выручку.
Первая мысль, как найти прибыль показана на рисунке 1. Нужно расходы умножить на Рентабельность:
Прибыль = 25 150 ₽ • 20% = 5 030 ₽
Получившуюся прибыль прибавим к расходам, получим выручку, и задача вроде выполнена.
Выручка = 25 150 ₽ + 5 030 ₽ = 30 180 ₽
Рисунок 1. Расходы на Рентабельность продаж умножать нельзя.
Вообще-то нет, не выполнена… Если проверить, какая получится Рентабельность продаж, увидим, что это не 20%.
Проверка рентабельности = 5 030 ₽ / 30 180 ₽ = 17%
Потому что нельзя просто так взять Рентабельность продаж и умножить на расходы. Так делают с наценкой. Чтобы расчет получился верным, нужно изменить формулу расчета прибыли. От 100% отнять Рентабельность 20%, взять обратную величину, так мы получим коэффициент Выручки относительно расходов. А чтобы получить коэффициент прибыли придется отнять еще 100%.
Доля прибыли относительно расходов = 1 / ( 100% — 20% ) — 100% = 25%
Умножаем на расходы:
Прибыль = 25 150 ₽ • 25% = 6 287 ₽
Получаем выручку:
Выручка = 25 150 ₽ + 6 287 ₽ = 31 437 ₽
Проверяем:
Проверка рентабельности = 6 287 ₽ / 31 437 ₽ = 20% – Результат правильный.
Но! Согласитесь, весь предыдущий абзац в целом непонятен и такие «упражнения» с коэффициентами на большой расчетной модели реализовать сложно, а иногда невозможно. Или они получатся такими, что из-за сложности потом их не поменяешь. Что делать?
Все просто — напишите формулу, как есть, как этого требует методика расчета. То есть формулу Прибыли запишите, как произведение Выручки на Рентабельность. А формулу Выручки — как сумму Прибыли и Расходов. Вроде все логично и правильно, только у вас присутствуют взаимные ссылки на ячейки. И после таких действий появится сообщение о циклической ссылке, см. рисунок 2.
Рисунок 2. Пишите формулу, как требует методология, даже если появится сообщение о циклической ссылке.
Не проблема! Переходим Файл → Параметры → Формулы → Включить итеративные вычисления.
Рисунок 3. Включите итеративные вычисления.
После этого добрый Excel подберет правильные суммы и сам подставит необходимые значения, чтобы всё сходилось и считалось правильно.
Рисунок 4. Включите итеративные вычисления
Плановая калькуляция доходов и расходов – это самый простой для понимания пример, где можно использовать итеративные вычисления. Их можно также подключать для оценки запасов и переходящих остатков незавершенного производства. В финансовом моделировании.
Однако, используя эту галочку, помните, что итерации могут нагружать компьютер и отнимать ресурсы. И еще помните, что циклическая ссылка часто появляется из-за того, что просто не туда сослался. В таком случае нужно исправлять именно ошибки, а не включать итерации в формулах 😊