gpt4 book ai didi

emacs - 组织表中的条件总和(sumif)

转载 作者:行者123 更新时间:2023-12-04 21:15:09 27 4
gpt4 key购买 nike

我有一张这样的 table :

#+NAME: ENTRY
|------+--------|
| Item | Amount |
|------+--------|
| A | 100 |
| B | 20 |
| A | 120 |
| C | 40 |
| B | 50 |
| A | 20 |
| C | 16 |
|------+--------|

然后我需要对另一个表中的每个项目求和:
#+NAME: RESULT
|------+-----|
| Item | Sum |
|------+-----|
| A | 240 |
| B | 70 |
| C | 56 |
|------+-----|

我尝试在此表中使用 vlookup 和远程引用,但我无法总结结果列表,例如:
#+TBLFM: $2=vsum((vconcat (org-lookup-all $1 '(remote(ENTRY,@2$1..@>$1)) '(remote(ENTRY,@2$2..@>$2)))))

但它没有给出答案。

因此,我必须使用占位符来保存结果列表,然后对其求和:
#+NAME: RESULT
|------+--------------+-----|
| Item | Placeholder | Sum |
|------+--------------+-----|
| A | [100 120 20] | 240 |
| B | [20 50] | 70 |
| C | [40 16] | 56 |
|------+--------------+-----|
#+TBLFM: $2='(vconcat (org-lookup-all $1 '(remote(ENTRY,@2$1..@>$1)) '(remote(ENTRY,@2$2..@>$2))))::$3=vsum($2)

有没有更好的解决方案?

最佳答案

一种方法是不使用 vsum :

#+TBLFM: $2='(apply '+ (mapcar 'string-to-number (org-lookup-all $1 '(remote(ENTRY,@2$1..@>$1)) '(remote(ENTRY,@2$2..@>$2)))))

如果你想使用 calc 函数,你总是可以使用 calc-eval :
#+TBLFM: $2='(calc-eval (format "vsum(%s)" (vconcat (org-lookup-all $1 '(remote(ENTRY,@2$1..@>$1)) '(remote(ENTRY,@2$2..@>$2))))))

关于emacs - 组织表中的条件总和(sumif),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25578255/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com