I have a very simple table like this:

| A | B |  C |
| 1 | 2 | 15 |
| 1 | 2 | 32 |
| 1 | 2 | 81 |

I want to apply a formula that calculate the sum between A and B and insert the result just after the B column but before the C one. The formula is easy but…

#+TBLFM: $? = $1+$2

…I don't know what to put in place of $?.

How can I achieve that?

  • Adding a column is a one-time operation that is best done through external means, not through a formula. While in column C, say M-x org-table-insert-column which inserts an empty third column, leaving the formula then as $3 = $1 + $2.
    – NickD
    Aug 1 at 0:59
  • I agree with @NickD. It would be helpful to know why you are trying to add one more column to the table. Thus, we would know whether this is a XY problem. Aug 9 at 4:24

An elisp formula can do the trick :

  | A | B |   |  C |
  | 1 | 2 | 3 | 15 |
  | 1 | 2 | 3 | 32 |
  | 1 | 2 | 3 | 81 |
  #+TBLFM: $4='(progn(org-table-analyze)(when (eq 3 org-table-current-ncol) (org-table-insert-column)) (+ $1 $2));N
  • It doesn't work for me, it produces a weird result. Care to elaborate on what does this elisp formula do?
    – Nicryc
    Aug 1 at 10:19
  • The trouble with using a formula to do this, is that the next time you refresh the table, the formula is applied again (and again and again...) For non-idempotent operations, this is obviously going to cause problems. That's why I recommended that for such one-time operations, you do NOT use a formula (or if you do, you then delete the part of the formula that does that particular operation.
    – NickD
    Aug 1 at 13:15
  • It works the first time, but try doing C-c C-c on your formula a second time: what do you see?
    – NickD
    Aug 1 at 13:17
  • @Nicryc. Your question is certainly part of a much larger question, the context of which I do not know and which should be treated as such. My solution is kind of a joke of taking your question at face value. At home it works, but I will not use such a solution under any circumstances.
    – gigiair
    Aug 1 at 13:34
  • It's hard to show it here so I'm just gonna describe it. It creates two new columns ($4 and $5) and put the result of the first row in the $5 column and the result of the following rows in the $4 column. Besides it automatically change the beginning of my formula to $5=. I know this is some weird question but in fact my tables are completely re-generated each time I change some values in a bigger root table using the org-aggregate module.
    – Nicryc
    Aug 1 at 15:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.