Excel財務モデルでビジネスルールを表すにはどうすればよいですか?
-
22-07-2019 - |
質問
「1期間」を作成していますExcelの財務モデル-つまり、各列で数式が一貫しているため、必要に応じてそれらをコピー/貼り付け/拡張できます。
モデルの仮定を別のシートに分解しています。たとえば、 monthly_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
したがって、8月には6人の顧客がいます。 9月、12人の顧客。 10月、18人の顧客。ここまでは順調ですね。しかし、私の初期の顧客には、より多くの開発リソースが必要ですよね?いくつかの制限を追加することをお勧めします。
仮定シート2.0
A B
1 | Monthly sales | 6 |
2 | Early customers | 3 |
3 | Early dev cycle, months | 2 |
英語:最初の3人の顧客は、それぞれ2か月の開発時間を要します。 8月から11月まで、1人の顧客がいます。 12月に2人目の顧客を追加し、4月に3人目の顧客を追加します。 2010年8月までに early_customers
を通り抜けると、1か月あたり6ずつ成長を始めることができます。
VBAでこれを行う方法を知っています。前月をチェックするユーザー定義関数を作成し、#Customers
式を次のようなものに変更します
=B2+min(max_customers_this_month(),monthly_sales)
しかし、この概念をExcelの適切な式で宣言的に表現する方法はあると思います。ありますか?
解決
これを行うにはおそらくもっと簡潔な方法がありますが、ここに解決策があります。 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に日付ではなく月の数値が入力されることを前提としていることに注意してください。日付を使用するには、$ B1を含むOR句の2つの減算に単純な減算よりも高度なものを使用する必要があります。
所属していません StackOverflow