3.5.7 Lookup functions

Org 内置了三个 Emacs Lisp 函数用于表格查找。

(org-lookup-first VAL S-LIST R-LIST &optional PREDICATE)

在列表 S-LIST 中查找第一个使

(PREDICATE VAL S)

nil 的元素 S,并返回列表 R-LIST 中对应位置的值。默认 PREDICATEequal 。注意参数 VALS 传入 PREDICATE 的顺序与 org-lookup-first 调用时一致,即 VALS-LIST 之前。若 R-LISTnil ,则返回 S-LIST 中匹配的元素 S

(org-lookup-last VAL S-LIST R-LIST &optional PREDICATE)

与上述 org-lookup-first 类似,但查找使 PREDICATEnil 的最后一个元素。

(org-lookup-all VAL S-LIST R-LIST &optional PREDICATE)

org-lookup-first 类似,但查找 所有 使 PREDICATEnil 的元素,并返回 所有 对应值。该函数不能单独在公式中使用,因为它返回值列表。但与其他 Emacs Lisp 函数结合时,可实现强大的查找功能。

如果这些函数使用的范围包含空字段,通常需要为公式指定 ‘E’ 模式,否则空字段不会被包含在 S-LIST 和/或 R-LIST 中,可能导致 S-LIST 元素与 R-LIST 元素映射错误。

这三个函数可用于实现关联数组、统计匹配单元格、结果排序、数据分组等。实用示例参见 Worg 上的教程