Lookup & reference functions

The 37 lookup & reference functions in Sheets, with the usual names, arguments and results.

FunctionWhat it doesSyntax
ADDRESSCell address as textADDRESS(row_num, column_num, [abs_num], [a1], [sheet_text])
AREASNumber of areas in a referenceAREAS(reference)
CHOOSEPick the Nth valueCHOOSE(index, value1, value2, ...)
CHOOSECOLSSelected columns of an arrayCHOOSECOLS(array, col_num1, [col_num2, ...])
CHOOSEROWSSelected rows of an arrayCHOOSEROWS(array, row_num1, [row_num2, ...])
COLUMNColumn number of a referenceCOLUMN([reference])
COLUMNSNumber of columns in a rangeCOLUMNS(array)
DROPArray without its first or last rows/columnsDROP(array, rows, [columns])
EXPANDPad an array to a given sizeEXPAND(array, rows, [columns], [pad_with])
FILTERexampleRows or columns that meet a conditionFILTER(array, include, [if_empty])
FORMULATEXTFormula of a cell as textFORMULATEXT(reference)
GROUPBYGroup rows and aggregate their valuesGROUPBY(row_fields, values, function, [field_headers], [total_depth], [sort_order], [filter_array], [field_relationship])
HLOOKUPLook up across the first rowHLOOKUP(lookup, table, row_index, [approximate])
HSTACKAppend arrays side by sideHSTACK(array1, [array2, ...])
HYPERLINKLink shown as its friendly nameHYPERLINK(link_location, [friendly_name])
INDEXexampleValue at a row/column of a rangeINDEX(range, row, [column])
INDIRECTReference given as textINDIRECT(ref_text, [a1])
LOOKUPApproximate lookup in sorted dataLOOKUP(lookup_value, lookup_vector, [result_vector])
MATCHexamplePosition of a value in a rangeMATCH(lookup, range, [match_type])
OFFSETReference moved from a starting cellOFFSET(reference, rows, cols, [height], [width])
PIVOTBYAggregate values by row and column groupsPIVOTBY(row_fields, col_fields, values, function, [field_headers], [row_total_depth], [row_sort_order], [col_total_depth], [col_sort_order], [filter_array], [relative_to])
ROWRow number of a referenceROW([reference])
ROWSNumber of rows in a rangeROWS(array)
SORTexampleSort the rows or columns of an arraySORT(array, [sort_index], [sort_order], [by_col])
SORTBYSort an array by other arraysSORTBY(array, by_array1, [sort_order1], ...)
TAKEFirst or last rows and columns of an arrayTAKE(array, rows, [columns])
TOCOLArray as a single columnTOCOL(array, [ignore], [scan_by_column])
TOROWArray as a single rowTOROW(array, [ignore], [scan_by_column])
TRANSPOSESwap the rows and columns of an arrayTRANSPOSE(array)
TRIMRANGERange without its outer blank rows/columnsTRIMRANGE(range, [trim_rows], [trim_cols])
UNIQUEexampleDistinct rows or columns of an arrayUNIQUE(array, [by_col], [exactly_once])
VLOOKUPexampleLook up down the first columnVLOOKUP(lookup, table, col_index, [approximate])
VSTACKAppend arrays one below the otherVSTACK(array1, [array2, ...])
WRAPCOLSWrap a row or column into columnsWRAPCOLS(vector, wrap_count, [pad_with])
WRAPROWSWrap a row or column into rowsWRAPROWS(vector, wrap_count, [pad_with])
XLOOKUPexampleLook up a value, return the matching itemXLOOKUP(lookup, lookup_range, return_range, [if_not_found], [match_mode], [search_mode])
XMATCHexamplePosition of an item in a row or columnXMATCH(lookup_value, lookup_array, [match_mode], [search_mode])