Sum({<Field={value}>} Sales)
Set Analysis basics in Power BI
How a basic Qlik set expression such as Sum({<Year={2024}>} Sales) maps to CALCULATE with filter arguments in DAX, and where the two engines behave differently.
What it does in Qlik
A set expression changes the set of records an aggregation runs on, independently of what the user has selected. The default set is $ (the current selections). A modifier such as <Year={2024}, Region={'North'}> replaces the selection in the listed fields and leaves selections in all other fields untouched.
The set is computed once for the whole chart, before the chart dimensions split the data.
Qlik example
Sum({<Year={2024}, Region={'North'}>} Sales)Equivalent to Sum({$<Year={2024}, Region={'North'}>} Sales); the $ is implied.
Power BI equivalent
DAX measure
Create one base measure and reuse it. Each condition becomes a filter argument of CALCULATE. A filter on a column replaces any existing filter on that same column, just like a set modifier.
Sales = SUM ( Sales[Amount] )
Sales 2024 North =
CALCULATE (
[Sales],
'Date'[Year] = 2024,
Customer[Region] = "North"
)Multiple filter arguments are combined with AND, the same as multiple fields inside one Qlik modifier.
Gotchas and behaviour differences
- Marked date tables. If
'Date'is marked as a date table and you filter its date column (for example'Date'[Date] >= ...), DAX also removes every other filter on the date table, so a Month slicer is ignored. Qlik never does this implicitly. - Text vs typed values. Qlik matches the field's values as they are formatted (
{'Jan'}on a dual month field works). DAX compares typed values, so filter on'Date'[Month Number] = 1or on the exact text column. - Per-chart vs per-cell. Qlik builds the set once per chart. A DAX filter argument with a constant behaves the same way. A filter that references another measure or
MAX(...)is evaluated per cell; see dollar-sign expansion. - Relationship direction. A filter on a dimension reaches the fact table only through an active relationship in the right direction. Qlik associations work both ways, so a filter on a table "upstream" of a single-direction relationship may do nothing in Power BI.
Official documentation
- Set analysis (Qlik Help)
- Set modifiers (Qlik Help)
- CALCULATE function (DAX) (Microsoft Learn)
- CALCULATE (dax.guide)
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
{<Product={"Bike*"}>} / {<Customer={"=Sum(Sales)>10000"}>}
Searches in set modifiers (wildcards, >, aggregated conditions)
How Qlik searches inside set modifiers (numeric ranges, wildcards and expression searches such as "=Sum(Sales)>10000") translate to DAX filters, and why the expression search needs ALLSELECTED to match.
Partial / different approach
Sum(TOTAL Sales) / Sum(TOTAL <Category> Sales)
The TOTAL qualifier
Qlik's TOTAL qualifier makes an aggregation ignore the chart dimensions but keep the selections. In DAX that is ALLSELECTED. TOTAL <Field> keeps one dimension, which maps to removing only the other dimension columns.
Direct equivalent
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.