Sum({StateName} Sales)
Alternate states (comparative analysis) in Power BI
Alternate states give objects independent selection sets, for example comparing two groups of regions side by side. Power BI has one filter context per visual, plus disconnected tables and measures that apply them with TREATAS. There is no built-in "state" concept.
What it does in Qlik
In Qlik you define states (for example Comparison) and assign objects to them. Each state has its own selections. Set analysis can read from a state ({Comparison}) or combine states ({$<Year = Comparison::Year>}).
Qlik example
// object in state "Comparison", or:
Sum({Comparison} Sales)
// default selections, but Region taken from the Comparison state
Sum({$<Region = Comparison::Region>} Sales)Power BI equivalent
Disconnected table + TREATAS
Compare Region = DISTINCT ( Geo[Region] ) -- calculated table, no relationship
Sales (comparison) =
CALCULATE (
[Sales],
REMOVEFILTERS ( Geo[Region] ),
TREATAS ( VALUES ( 'Compare Region'[Region] ), Geo[Region] )
)Put a slicer on 'Compare Region'[Region]. Visuals using [Sales (comparison)] follow both slicers: the main slicer for everything except Region, and the compare slicer for Region.
Gotchas and behaviour differences
- Each comparison needs its own disconnected table and measure variants. Calculation groups can reduce the number of measures.
- Edit interactions (Format > Edit interactions) decides which slicers filter which visuals. It's the closest report-level match to assigning objects to states.
- Bookmarks can store slicer states, but they are snapshots, not live parallel states.
Official documentation
- Alternate states for comparative analysis (Qlik Help)
- TREATAS function (DAX) (Microsoft Learn)
- Change how visuals interact in a report (Microsoft Learn)
Related pages
{<Field+={x}>} / {<Field-={x}>} / {<Field*={x}>}
Set modifier operators: =, +=, -=, *=
Qlik set modifiers can replace, extend, reduce or intersect the user's selection in a field. Here is how each assignment operator maps to DAX, using KEEPFILTERS, TREATAS and UNION.
Partial / different approach
Sum({1} Sales) / Sum({<Region=>} Sales)
Ignoring selections: {1}, Field= and {1<...>}
How to translate Qlik's {1} set identifier and empty field modifiers (Region=) into REMOVEFILTERS, ALL and ALLSELECTED. Includes the important difference in how chart dimensions are treated.
Partial / different approach
$Syn tables (automatic)
Synthetic keys and associative linking
Qlik links tables automatically on every field with the same name and builds synthetic keys when they share several fields. Power BI never links by name. Relationships are explicit, use a single column and have a direction, so migrations usually remodel to a star schema.
No 1:1 equivalent
SET vSales = Sum(Sales); LET vToday = Today();
Variables (SET, LET and $-expansion)
Qlik variables hold expressions, values and settings, and are expanded as text. Power BI splits these roles: measures for reusable logic, Power Query parameters for load settings, what-if and field parameters for user input, calculation groups for logic applied to many measures, and VAR inside DAX.
Partial / different approach
Spotted an error or a better pattern? QlikToDax is maintained by a working BI consultant; corrections are welcome via the About page. Last reviewed 2026-10-25.