如何创建基于起止年份计算复利式Escalated Value的公式?
实现递增价值计算的公式方案
现有数据表格
| 年份 | V1 | V2 |
|---|---|---|
| 2022 | 101% | 102% |
| 2023 | 103% | 101% |
| 2024 | 104% | 103% |
| 2025 | 102% | 101% |
需求说明
基于手动输入的初始价值、起始年份和结束年份,计算递增后价值(ValueEscalated),预期输出如下:
| 分段 | 初始价值 | 起始年份 | 结束年份 | 递增后价值 |
|---|---|---|---|---|
| V1 | 100 | 2022 | 2023 | 104.03 (1001.011.03) |
| V2 | 200 | 2022 | 2025 | 214.34 (2001.021.011.031.01) |
公式实现(以Excel为例)
假设原始数据的年份列在A2:A5,V1增长率列在B2:B5,V2增长率列在C2:C5;输出表格中,初始价值在D列,起始年份在E列,结束年份在F列。
核心计算公式(仅输出数值)
以计算V1的递增后价值为例(对应输出表格的G2单元格):
=ROUND(D2 * PRODUCT(INDEX(B:B, MATCH(E2, A:A, 0)):INDEX(B:B, MATCH(F2, A:A, 0))), 2)
公式拆解:
MATCH(E2, A:A, 0):定位起始年份在原始数据中的行号MATCH(F2, A:A, 0):定位结束年份在原始数据中的行号INDEX(B:B, ...):INDEX(B:B, ...):提取起始到结束年份区间内的所有增长率PRODUCT():计算该区间内所有增长率的乘积,再乘以初始价值D2ROUND(..., 2):将结果保留两位小数
计算V2时,只需把公式中的B:B替换为C:C即可。
带计算过程注释的公式
如果需要同时显示计算逻辑注释,可使用以下公式:
=ROUND(D2 * PRODUCT(INDEX(B:B, MATCH(E2, A:A, 0)):INDEX(B:B, MATCH(F2, A:A, 0))), 2) & " (" & D2 & TEXTJOIN("*", TRUE, INDEX(B:B, MATCH(E2, A:A, 0))+0:INDEX(B:B, MATCH(F2, A:A, 0))+0) & ")"
其中+0的作用是将百分比格式的增长率转换为小数形式(如101%转为1.01),确保注释中的计算式显示正确。
内容的提问来源于stack exchange,提问作者SSG_08
相关产品推荐
相关产品推荐

