组织模式表中的递归公式

Recursive formulaes in org-mode tables

我有以下 table:

| Year (Beginn) |    Price | Increase |
|---------------+----------+----------|
|          2016 | 20000.00 |  1000.00 |
|          2017 |          |  1000.00 |
|          2018 |          |  1000.00 |
|          2019 |          |  1000.00 |
|          2020 |          |  1000.00 |
|          2021 |          |  1000.00 |
|          2022 |          |  1000.00 |
|          2023 |          |  1000.00 |
|          2024 |          |  1000.00 |
|          2025 |          |  1000.00 |
|          2026 |          |  1000.00 |
|          2027 |          |  1000.00 |
|          2028 |          |  1000.00 |
|          2029 |          |  1000.00 |
|          2030 |          |  1000.00 |
|---------------+----------+----------|

我想递归地计算价格,使得最终的 table 看起来像这样:

| Year (Beginn) |    Price | Increase |
|---------------+----------+----------|
|          2016 | 20000.00 |  1000.00 |
|          2017 | 22000.00 |  1000.00 |
|          2018 | 24000.00 |  1000.00 |
|          2019 | 26000.00 |  1000.00 |
|          2020 | 28000.00 |  1000.00 |
|          2021 | 30000.00 |  1000.00 |
|          2022 | 32000.00 |  1000.00 |
|          2023 | 34000.00 |  1000.00 |
|          2024 | 36000.00 |  1000.00 |
|          2025 | 38000.00 |  1000.00 |
|          2026 | 40000.00 |  1000.00 |
|          2027 | 42000.00 |  1000.00 |
|          2028 | 44000.00 |  1000.00 |
|          2029 | 46000.00 |  1000.00 |
|          2030 | 48000.00 |  1000.00 |
|---------------+----------+----------|

阅读a related SO question后我尝试了公式

#+TBLFM: @<<<..>=@<<..>>+2*

但它不起作用。它给出了一个错误,并且似乎也在第一列而不是指定的第二列上运行。知道如何正确计算第二列吗?我正在使用 org-mode 版本 8.2.5c 和 Emacs 版本 24.5.1.

我建议使用以下范围公式:

| Year (Beginn) |    Price | Increase |
|---------------+----------+----------|
|          2016 | 20000.00 |  1000.00 |
|          2017 |          |  1000.00 |
|          2018 |          |  1000.00 |
|          2019 |          |  1000.00 |
|          2020 |          |  1000.00 |
|          2021 |          |  1000.00 |
|          2022 |          |  1000.00 |
|          2023 |          |  1000.00 |
|          2024 |          |  1000.00 |
|          2025 |          |  1000.00 |
|          2026 |          |  1000.00 |
|          2027 |          |  1000.00 |
|          2028 |          |  1000.00 |
|          2029 |          |  1000.00 |
|          2030 |          |  1000.00 |
|---------------+----------+----------|
#+TBLFM: @<<<..@>=@<<[=10=]+2*vsum(@<<..@-1);%.2f

您可以编写一个递归公式,但这会一次传播一行。即使是 org-table-iterate(C-u C-u C-c * 在任何 table 单元格上)也必须多次调用,因为它在 10 次迭代后停止。