The
XLOOKUP for BigQuery
XLOOKUP
function returns the values in the result range based on the position where a match was found in the lookup range. If no match is found, it returns the closest match.Cross lookup. Returns the values in the data column at the position where a match was found in the search column.
Sample Usage
=XLOOKUP("Apple",table_name!fruit,table_name!price)
Syntax
XLOOKUP(search_key,lookup_range,result_range,missing_value,match_mode)
search_key
: The value to search for. For example,42
,"Cats"
, orB24
.search_column
: The column to consider for the search.result_column
: The column to consider for the result.missing_value
: [OPTIONAL -#N/A
by default] The value to return if no match is found.match_mode
: [OPTIONAL -0
by default] The manner in which to find a match for the search_key.0
: For an exact match.1
: For an exact match or the next value that is greater than the search_key.-1
: For an exact match or the next value that is lesser than the search_key.2
: For a wildcard match.
Tip: search_mode
isn’t supported in XLOOKUP for BigQuery.
Sample Usage
XLOOKUP("Apple", A2:A, E2:E)
to replace VLOOKUP("Apple", A2:E, 5, FALSE)
XLOOKUP("Price", A1:E1, A6:E6)
to replace HLOOKUP("Price", A1:E6, 6, FALSE)
XLOOKUP
where match column is to the right of the output columnXLOOKUP("Apple", E2:E7, A2:A7)
. The VLOOKUP
equivalent is VLOOKUP("Apple", {E2:E7, A2:A7}, 2, FALSE)
Syntax
XLOOKUP(search_key, lookup_range, result_range, missing_value, match_mode, search_mode)
search_key
: The value to search for. For example,42
,"Cats"
, orB24
.lookup_range
: The range to consider for the search. This range must be a singular row or column.result_range
: The range to consider for the result. This range's row or column size should be the same as thelookup_range
, depending on how the lookup is done.missing_value
: [OPTIONAL -#N/A
by default] The value to return if no match is found.match_mode
: [OPTIONAL -0
by default] The manner in which to find a match for thesearch_key
.0
is for an exact match.1
is for an exact match or the next value that is greater than thesearch_key
.-1
is for an exact match or the next value that is lesser than thesearch_key
.2
is for a wildcard match.
search_mode
: [OPTIONAL -1
by default] The manner in which to search through thelookup_range
.1
is to search from the first entry to the last.-1
is to search from the last entry to the first.2
is to search through the range with binary search. The range needs to be sorted in ascending order first.-2
is to search through the range with binary search. The range needs to be sorted in descending order first.
Notes
- If
result_range
is more than one row or column, then the output will be the entire row/column at the index a match was found in thelookup_range
.
Examples
Lookup table for all examples.
XLOOKUP
for Total amount sold with match_mode
and search_mode
omitted and missing argument specified.XLOOKUP
for Total amount sold with match_mode = 0
and search_mode = 1
and -1
.XLOOKUP
for Total amount sold with match_mode = 1
and -1
and search_mode
omitted.XLOOKUP
using horizontal matching and returning an entire column.