Org 内置了三个 Emacs Lisp 函数用于表格查找。
在列表 S-LIST 中查找第一个使
(PREDICATE VAL S)
非 nil 的元素 S,并返回列表 R-LIST 中对应位置的值。默认 PREDICATE 为 equal 。注意参数 VAL 和 S 传入 PREDICATE 的顺序与 org-lookup-first 调用时一致,即 VAL 在 S-LIST 之前。若 R-LIST 为 nil ,则返回 S-LIST 中匹配的元素 S。
与上述 org-lookup-first 类似,但查找使 PREDICATE 非 nil 的最后一个元素。
与 org-lookup-first 类似,但查找 所有 使 PREDICATE 非 nil 的元素,并返回 所有 对应值。该函数不能单独在公式中使用,因为它返回值列表。但与其他 Emacs Lisp 函数结合时,可实现强大的查找功能。
如果这些函数使用的范围包含空字段,通常需要为公式指定 ‘E’ 模式,否则空字段不会被包含在 S-LIST 和/或 R-LIST 中,可能导致 S-LIST 元素与 R-LIST 元素映射错误。
这三个函数可用于实现关联数组、统计匹配单元格、结果排序、数据分组等。实用示例参见 Worg 上的教程。