编写生成上三角矩阵的Excel动态公式:利率乘积计算
动态生成u/d乘积的上三角矩阵Excel公式
核心逻辑
上三角矩阵仅保留行号 ≤ 列号的单元格数值,下三角区域留空。对于矩阵中第i行第j列(i、j从1开始计数)的单元格,其值为 u^(j-i) * d^(i-1):
- 行号每增加1,多乘一次
d(第1行无d因子,即d^0=1) - 列号每比行号多1,多乘一次
u
通用Excel公式
假设u存储在单元格$A$1,d存储在单元格$B$1,在目标区域的任意起始单元格(如C1)输入以下公式,然后向右、向下填充即可生成任意阶数的上三角矩阵:
=IF(ROW() > COLUMN(), "", $A$1^(COLUMN()-ROW()) * $B$1^(ROW()-1))
公式拆解
IF(ROW() > COLUMN(), "", ...):判断当前单元格是否属于下三角区域(行号>列号),若是则留空,否则计算乘积$A$1^(COLUMN()-ROW()):计算u的幂次,列号与行号的差值即为需要乘u的次数$B$1^(ROW()-1):计算d的幂次,行号减1即为需要乘d的次数
5阶矩阵示例(u=1.15,d=0.9)
填充公式后得到的矩阵如下:
| 行\列 | C1 | C2 | C3 | C4 | C5 |
|---|---|---|---|---|---|
| 1 | 1 | 1.15 | 1.3225 | 1.520875 | 1.74900625 |
| 2 | 0.9 | 1.035 | 1.19025 | 1.3687875 | |
| 3 | 0.81 | 0.9315 | 1.071225 | ||
| 4 | 0.729 | 0.83835 | |||
| 5 | 0.6561 |
灵活调整说明
- 任意起始区域:若矩阵从非
C1的单元格开始(如D2),需将公式中的行号列号替换为矩阵内的相对位置。以D2为起点,公式修改为:=IF((ROW()-ROW($D$2)+1) > (COLUMN()-COLUMN($D$2)+1), "", $A$1^((COLUMN()-COLUMN($D$2)+1)-(ROW()-ROW($D$2)+1)) * $B$1^((ROW()-ROW($D$2)+1)-1)) - 变量更新:直接修改
$A$1或$B$1的数值,整个矩阵会自动同步更新
内容的提问来源于stack exchange,提问作者Mohit
相关产品推荐
相关产品推荐

