This is a tutorial/article summary showing advanced techniques and tricks with Excel's GROUPBY function, aiming to help users go beyond simple grouping and leverage powerful dynamic aggregation capabilities.
HSTACK
to horizontally stack columns before passing to GROUPBY, e.g.:
GROUPBY(HSTACK([Division], [Sales Manager]), ...)
HSTACK
for function argument:
GROUPBY(..., ..., HSTACK(SUM, AVERAGE, MEDIAN, PERCENTOF))
COUNTA(UNIQUE(a))
:
GROUPBY([Division], [Product], LAMBDA(a, COUNTA(UNIQUE(a))))
YEAR
, MONTH
, and TEXT
for columns.HSTACK(YEAR(Date), MONTH(Date), TEXT(Date, "MMMM"))
.CHOOSECOLS
.CHOOSECOLS(HSTACK(YEAR([Date]), MONTH([Date]), TEXT([Date], "MMMM"), ...), 1, 3, 4)
GROUPBY([Division], HSTACK([Sales], [Product]), HSTACK(AVERAGE, LAMBDA(a, COUNTA(UNIQUE(a)))))
DROP
to remove unnecessary header rows.COUNTA
with ARRAYTOTEXT
in the LAMBDA function:
GROUPBY([Division], [Product], LAMBDA(a, ARRAYTOTEXT(UNIQUE(a))))
End of summary.