LOOKUP

Look for criterion in an already-sorted array, and return a corresponding result. Returns the contents of a cell either from a one-row or one-column range.

Optionally, the assigned value (of the same index) is returned in a different column and row. As opposed to VLOOKUP and HLOOKUP, search and result vector may be at different positions; they do not have to be adjacent.

note

The search supports wildcards or regular expressions. With regular expressions enabled, you can enter "all.*", for example to find the first location of "all" followed by any characters. If you want to search for a text that is also a regular expression, you must either precede every regular expression metacharacter or operator with a "\" character, or enclose the text into \Q...\E. You can switch the automatic evaluation of wildcards or regular expression on and off in - LibreOfficeDev Calc - Calculate.


warning

When using functions where one or more arguments are search criteria strings that represents a regular expression, the first attempt is to convert the string criteria to numbers. For example, ".0" will convert to 0.0 and so on. If successful, the match will not be a regular expression match but a numeric match. However, when switching to a locale where the decimal separator is not the dot makes the regular expression conversion work. To force the evaluation of the regular expression instead of a numeric expression, use some expression that can not be misread as numeric, such as ".[0]" or ".\0" or "(?i).0".


Syntax

LOOKUP(Lookup; SearchVector [; ResultVector])

Lookup is the value of any type to be looked for; entered either directly or as a reference.

SearchVector is an array of data. The lookup is performed in the first row or first column of the array.

note

The search vector for the LOOKUP must be sorted ascending, otherwise the search will not return any usable results. Numerical values precede values of type Text if both types are included (for example, -2, 0, 2, “A”, “B”).


If SearchVector has same number of columns and rows or has more rows than columns, LOOKUP searches in the first column (similar to VLOOKUP), and returns the corresponding value in the last column.

If SearchVector has more columns than rows, LOOKUP searches in the first row (similar to HLOOKUP), and returns the corresponding value in the last row.

ResultVector is another single-row or single-column range from which the result of the function is taken. The result is the cell of the result vector with the same index as the instance found in the search vector.

If ResultVector is omitted, the function returns the value found in the last row or last column of the SearchVector array.

If SearchVector is a one-dimensional array and if ResultVector is omitted, the function returns the last occurrence of the lookup value if it exists in the SearchVector.

Handling of Empty Cells

Example

The table below list the country codes of some countries.

Source: https://www.countrycode.org

Country Codes Samples

=LOOKUP(46,A2:B34) returns "Sweden", the country which code is 46. Since the result vector is not defined, the function returns the value in the last column of the search array.

=LOOKUP(55,A2:A34,D2:D34) returns "BR/BRA", the ISO code for country code 55 (Brazil).

=LOOKUP(7,A2:B34) returns "Russia", the last occurrence of country code 7 in the search array.

Technical information

note

This function is part of the Open Document Format for Office Applications (OpenDocument) standard Version 1.3.