EXPANDALL DAX Function (Visual calculations)
Retrieves a context with added detail levels along an axis compared to the current context. With an expression, returns its value in the new context, enabling navigation to the lowest level on the axis, and is the inverse of COLLAPSEALL.
Syntax
| Parameter | Attributes | Description |
|---|---|---|
| Expression | Optional |
The expression to be evaluated in the new context. |
| Axis |
An axis reference. |
Return values
The value of Expression at the lowest level of Axis. Without Expression, EXPANDALL does not return a value: it changes the context, and you can use it only as a filter argument of CALCULATE.
Notes
The visual calculation functions have an axis parameter that is defined in the VISUAL SHAPE query syntax produced by the visual calculation feature in Power BI.
Remarks
EXPANDALL can be used only in a visual calculation. In a measure or in a calculated column, EXPANDALL returns an error.
EXPANDALL has two forms. With Expression, EXPANDALL moves the context to the lowest level of Axis and returns the value of Expression in the new context. Without Expression, EXPANDALL only moves the context. You can use this form only as a filter argument of CALCULATE, for example CALCULATE ( MIN ( [Sales Amount] ), EXPANDALL ( ROWS ) ).
The lowest level usually has more than one cell for each cell of the current level. Therefore, Expression must aggregate the values, for example with SUM, AVERAGE, MIN, MAX, or COUNT. A column reference without an aggregation returns an error.
The Axis argument is mandatory and must be an axis reference, such as ROWS or COLUMNS. A column reference is not valid and returns an error.
EXPANDALL moves only on the axis that you specify. When the visual has both ROWS and COLUMNS, use EXPANDALL on both axes to reach the single cells of the matrix, for example CALCULATE ( MAX ( [Sales Amount] ), EXPANDALL ( ROWS ), EXPANDALL ( COLUMNS ) ). On the lowest level, EXPANDALL does not move and evaluates Expression in the current cell. If the visual does not have the axis, EXPANDALL does not move.
EXPAND moves down one level at a time. EXPANDALL gives the same result as EXPAND with an N value that is equal to or larger than the number of levels of the axis. COLLAPSEALL does the opposite of EXPANDALL: it moves to the top level of the axis.
Examples
-- EXPANDALL moves the visual calculation to the lowest level of the axis.
-- The query simulates a matrix with Year, Quarter, and Month on rows.
-- Expression must aggregate the values of the lowest level.
-- EXPANDALL returns the largest month of the current cell on every row.
-- EXPAND moves down only one level.
-- Min Month uses EXPANDALL without expression, as a CALCULATE modifier
DEFINE
COLUMN '__V'[ExpandAll] = EXPANDALL ( MAX ( [Sales Amount] ), ROWS )
COLUMN '__V'[Expand] = EXPAND ( MAX ( [Sales Amount] ), ROWS )
COLUMN '__V'[MinMonth] =
CALCULATE ( MIN ( [Sales Amount] ), EXPANDALL ( ROWS ) )
VAR __Core =
SUMMARIZECOLUMNS (
ROLLUPADDISSUBTOTAL (
'Date'[Calendar Year Number], "IsGrandTotalRowTotal",
'Date'[Calendar Year Quarter Number], "IsYearTotal",
'Date'[Calendar Year Month Number], "IsQuarterTotal"
),
TREATAS ( { 2007, 2008 }, 'Date'[Calendar Year Number] ),
TREATAS ( { 1, 2, 3, 4, 5, 6 }, 'Date'[Month Number] ),
"Sales_Amount", [Sales Amount]
)
VAR __Input =
SELECTCOLUMNS (
__Core,
"Year", 'Date'[Calendar Year Number],
"Quarter", 'Date'[Calendar Year Quarter Number],
"Month", 'Date'[Calendar Year Month Number],
"IsGrandTotalRowTotal", [IsGrandTotalRowTotal],
"IsYearTotal", [IsYearTotal],
"IsQuarterTotal", [IsQuarterTotal],
"Sales Amount", [Sales_Amount]
)
TABLE '__V' = __Input
WITH VISUAL SHAPE
AXIS ROWS
GROUP [Year] TOTAL [IsGrandTotalRowTotal]
GROUP [Quarter] TOTAL [IsYearTotal]
GROUP [Month] TOTAL [IsQuarterTotal]
ORDER BY [Year] ASC, [Quarter] ASC, [Month] ASC
DENSIFY "IsDensifiedRow"
EVALUATE
SELECTCOLUMNS (
'__V',
"Year", [Year],
"Quarter", [Quarter],
"Month", [Month],
"Sales Amount", [Sales Amount],
"EXPANDALL", [ExpandAll],
"EXPAND", [Expand],
"Min Month", [MinMonth]
)
ORDER BY [Year], [Quarter], [Month]
| Year | Quarter | Month | Sales Amount | EXPANDALL | EXPAND | Min Month |
|---|---|---|---|---|---|---|
| (Blank) | (Blank) | (Blank) | 10,247,701.35 | 1,128,104.82 | 5,693,275.41 | 559,538.52 |
| 2007 | (Blank) | (Blank) | 5,693,275.41 | 1,128,104.82 | 3,046,602.02 | 794,248.24 |
| 2007 | 20071 | (Blank) | 2,646,673.39 | 961,289.24 | 961,289.24 | 794,248.24 |
| 2007 | 20071 | 200701 | 794,248.24 | 794,248.24 | 794,248.24 | 794,248.24 |
| 2007 | 20071 | 200702 | 891,135.91 | 891,135.91 | 891,135.91 | 891,135.91 |
| 2007 | 20071 | 200703 | 961,289.24 | 961,289.24 | 961,289.24 | 961,289.24 |
| 2007 | 20072 | (Blank) | 3,046,602.02 | 1,128,104.82 | 1,128,104.82 | 936,192.74 |
| 2007 | 20072 | 200704 | 1,128,104.82 | 1,128,104.82 | 1,128,104.82 | 1,128,104.82 |
| 2007 | 20072 | 200705 | 936,192.74 | 936,192.74 | 936,192.74 | 936,192.74 |
| 2007 | 20072 | 200706 | 982,304.46 | 982,304.46 | 982,304.46 | 982,304.46 |
| 2008 | (Blank) | (Blank) | 4,554,425.94 | 999,667.17 | 2,738,040.73 | 559,538.52 |
| 2008 | 20081 | (Blank) | 1,816,385.21 | 656,766.69 | 656,766.69 | 559,538.52 |
| 2008 | 20081 | 200801 | 656,766.69 | 656,766.69 | 656,766.69 | 656,766.69 |
| 2008 | 20081 | 200802 | 600,080.00 | 600,080.00 | 600,080.00 | 600,080.00 |
| 2008 | 20081 | 200803 | 559,538.52 | 559,538.52 | 559,538.52 | 559,538.52 |
| 2008 | 20082 | (Blank) | 2,738,040.73 | 999,667.17 | 999,667.17 | 845,141.60 |
| 2008 | 20082 | 200804 | 999,667.17 | 999,667.17 | 999,667.17 | 999,667.17 |
| 2008 | 20082 | 200805 | 893,231.96 | 893,231.96 | 893,231.96 | 893,231.96 |
| 2008 | 20082 | 200806 | 845,141.60 | 845,141.60 | 845,141.60 | 845,141.60 |
Related articles
Learn more about EXPANDALL in the following articles:
-
Introducing EXPAND and COLLAPSE for visual calculations in Power BI
This article introduces the two basic visual context navigation functions: EXPAND and COLLAPSE. » Read more
Last update: Nov 9, 2026 » Contribute » Show contributors
Contributors: Alberto Ferrari, Marco Russo
Microsoft documentation: https://learn.microsoft.com/en-us/dax/expandall-function-dax