Next: Editing and debugging formulas, Previous: Column formulas, Up: The spreadsheet [Contents][Index]
Org has three predefined Emacs Lisp functions for lookups in tables.
(org-lookup-first VAL S-LIST R-LIST &optional PREDICATE)
Searches for the first element S
in list S-LIST
for which
(PREDICATE VAL S)
is t
; returns the value from the corresponding position in list
R-LIST
. The default PREDICATE
is equal
. Note that the
parameters VAL
and S
are passed to PREDICATE
in the same
order as the corresponding parameters are in the call to
org-lookup-first
, where VAL
precedes S-LIST
. If
R-LIST
is nil
, the matching element S
of S-LIST
is returned.
(org-lookup-last VAL S-LIST R-LIST &optional PREDICATE)
Similar to org-lookup-first
above, but searches for the last
element for which PREDICATE
is t
.
(org-lookup-all VAL S-LIST R-LIST &optional PREDICATE)
Similar to org-lookup-first
, but searches for all elements for
which PREDICATE
is t
, and returns all corresponding
values. This function can not be used by itself in a formula, because it
returns a list of values. However, powerful lookups can be built when this
function is combined with other Emacs Lisp functions.
If the ranges used in these functions contain empty fields, the E
mode
for the formula should usually be specified: otherwise empty fields will not be
included in S-LIST
and/or R-LIST
which can, for example, result
in an incorrect mapping from an element of S-LIST
to the corresponding
element of R-LIST
.
These three functions can be used to implement associative arrays, count matching cells, rank results, group data etc. For practical examples see this tutorial on Worg.
Next: Editing and debugging formulas, Previous: Column formulas, Up: The spreadsheet [Contents][Index]