Как я могу представить бизнес-правила в финансовых моделях Excel?
-
22-07-2019 - |
Вопрос
Я создаю " однопериодный " Финансовая модель в Excel - это модель, в которой формулы согласованы в каждом столбце, поэтому вы можете копировать / вставлять / расширять их по своему усмотрению.
Я разбиваю предположения модели на отдельный лист. Например, у меня есть ячейка с именем month_sales
; вот сколько новых клиентов я добавляю каждый месяц. Затем формулы выглядят так:
Таблица предположений 1.0
A B
1 | Monthly sales | 6 |
Лист прогнозов 1.0
A B C D E
1 | | | August 2009 | September 2009 | October 2009
2 | # Customers | | =B2+monthly_sales | =C2+monthly_sales | =D2+monthly_sales
Итак, в августе у меня будет 6 клиентов; в сентябре 12 клиентов; в октябре 18 клиентов. Все идет нормально. Но моим самым ранним клиентам понадобится больше ресурсов для разработки, верно? Я бы лучше добавил некоторые ограничения. Р>
Таблица предположений 2.0
A B
1 | Monthly sales | 6 |
2 | Early customers | 3 |
3 | Early dev cycle, months | 2 |
На английском языке: на первых трех заказчиков уходит 2 месяца. С августа по ноябрь у меня 1 клиент. В декабре я добавляю второго покупателя, а в апреле - третьего. К августу 2010 года я буду через early_customers
, и тогда я смогу начать расти на 6 в месяц.
Я знаю, как это сделать с VBA; Я могу написать пользовательскую функцию, которая проверяет предыдущие месяцы, и я изменяю формулу # Customers
на что-то вроде
=B2+min(max_customers_this_month(),monthly_sales)
Но я подозреваю, что есть некоторый способ декларативно представить эту концепцию в правильной формуле Excel. Есть?
Решение
Вероятно, есть более краткий способ сделать это, но вот решение. Введите 1 в B2 и следующее в C2 (и скопируйте в следующие столбцы):
=IF(
B2 > Early_customers,
B2 + Monthly_sales,
IF(
OR(
C1 - $B1 < Early_dev_cycle,
OFFSET(B2, 0, MAX(-Early_dev_cycle + 1, $B1 - B1)) <> B2
),
B2,
B2 + IF(
B2 < Early_customers,
1,
Monthly_sales
)
)
)
Обратите внимание, что в этом решении предполагается, что строка 1 заполняется числами для месяцев, а не для дат. Чтобы использовать даты, вы должны будете использовать нечто более сложное, чем простое вычитание, для двух вычитаний в предложении OR, которые включают $ B1.