组织电子表格的表格公式

时间:2012-02-03 03:47:42

标签: emacs org-mode org-table

我有一张表如下:

| Xn | S | Pn |
| 0  | 0 | 0  |
| 1  | 0 | 1  |
| 0  | 1 | 0  |
| 1  | 1 | 0  |

我想搜索专栏XnS,并返回Pn的{​​{1}}值。

有人可以就如何做到这一点提出建议吗?

2 个答案:

答案 0 :(得分:5)

#+tblname: example-table
| Xn | S | Pn |
|  0 | 0 |  0 |
|  1 | 0 |  1 |
|  0 | 1 |  0 |
|  1 | 1 |  0 |

#+source: compute-table
#+begin_src emacs-lisp :var table=example-table
(require 'cl)
(loop for (xn s pn) in (rest table)
      when (and (= xn 1) (= s 0)) collect pn)
#+end_src

#+results: compute-table
| 1 |

答案 1 :(得分:2)

使用org-babel:为表命名,并将其用作以您选择的语言进行搜索的函数的输入(在org支持的多种语言中)。

在伪代码中:

#+tblname: my_table
|Xn|S|Pn|
| 0|0|9 |
[...]

#+name filter_table
#+begin_src lang :var tbl=my_table :results output
  filter tbl # tbl (my_table by default) is passed in as array of arrays (or list of lists)
  print matching Pn
#+end_src