Org has three predefined Emacs Lisp functions for lookups in tables.
Searches for the first element S in list S-LIST for which
(PREDICATE VAL S)
nil; 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-first above, but searches for the last
element for which PREDICATE is non-
org-lookup-first, but searches for all elements
for which PREDICATE is non-
nil, 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 are not 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.