我在Excel中创建了“一期”财务模型 - 即每个列中公式一致的模型,因此您可以根据需要复制/粘贴/扩展它们。
我将模型的假设分解为单独的表格。例如,我有一个名为monthly_sales
的单元格;这就是我每月添加的新客户数量。然后公式如下:
A B
1 | Monthly sales | 6 |
A B C D E
1 | | | August 2009 | September 2009 | October 2009
2 | # Customers | | =B2+monthly_sales | =C2+monthly_sales | =D2+monthly_sales
所以8月份,我将有6位客户; 9月,12位客户; 10月,18位客户。到现在为止还挺好。但我最早的客户需要更多的开发资源,对吧?我最好添加一些限制。
A B
1 | Monthly sales | 6 |
2 | Early customers | 3 |
3 | Early dev cycle, months | 2 |
英文:前3位客户每人需要2个月的开发时间。从8月到11月,我有1位客户。 12月,我增加了第二个客户,并在4月份增加了第三个客户。到2010年8月,我通过early_customers
,然后我可以开始每月增加6个。
我知道如何使用VBA执行此操作;我可以编写一个用户定义的函数来检查前几个月,并将# Customers
公式更改为
=B2+min(max_customers_this_month(),monthly_sales)
但我怀疑有一些方法可以在适当的Excel公式中以声明方式表示这个概念。有吗?
答案 0 :(得分:1)
这可能是一种更简洁的方法,但这是一个解决方案。在B2中输入1,在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的两个减法。