【问题标题】:Recursive formulaes in org-mode tables组织模式表中的递归公式
【发布时间】:2016-01-08 21:17:55
【问题描述】:

我有下表:

| 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 |
|---------------+----------+----------|

我想递归地计算价格,最终表格如下所示:

| 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=@<<..>>$2+2*$3

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

【问题讨论】:

    标签: emacs org-mode


    【解决方案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: @<<<$2..@>$2=@<<$0+2*vsum(@<<$3..@-1$3);%.2f
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多