Power BI is turning 10! Tune in for a special live episode on July 24 with behind-the-scenes stories, product evolution highlights, and a sneak peek at what’s in store for the future.
Save the dateEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
Hi, I was wondering, what is the most elegant solution, to write a measure, that contains multiple OR conditions over several related tables.
I have the following to work with:
measure SALES (calculates sales from the 'INV1 - AR invoice' table)
Columns that will be used in conditions:
Now I need to calculate Sales, which uses ALL salesperson, but only for
and includes either of these possibilities:
(
'OCRD - Customer'[Market] = "Clean Energy"
OR
Follow this pattern to solve OR logic among different slicers,
= CALCULATE(
SUM( tb[sales] ),
FILTER(
CROSSJOIN( ALL( slc1[col] ), ALL( slc2[col] ), ALL( slc3[col], slc3[_col] ) ),
slc1[col] IN { } || slc2[col] IN { } || slc3[col] IN { } || slc3[_col] IN { }
)
)
I assume you've got enough DAX knowledge to fit the pattern in your real-life scenario.
Expertise = List.Accumulate( {Days as from Today}, {Skills and Knowledge}, (Current, Everyday) => Current & Day.LearnAndPractise(Everyday) ) |
@zenisekd - try this:
Sale II. PL2 =
CALCULATE(
[Sales],
ALL('OSLP - Salesperson'),
'OSLP - Salesperson'[OUSR.Country] = "PL" ,
(
'OCRD - Customer'[Market] = "Clean Energy"
||
'OCRD - Customer'[Industry ID] IN { "H2", "HINFR", "HPROD", "HRFS", "HVEH" }
||
'INV1 - AR invoice'[Project] IN { "X", "Y", "Z" }
)
)
If this helps, please mark as the solution to help others with the same challenge.
Nope.
@zenisekd - My bad, always forget about that rule. We're going to need to create a cartesian product of all possible values, so hopefully this will work, or atleast set you on your way:
CALCULATE (
[Sales],
FILTER (
CROSSJOIN (
ALL ( 'OSLP - Salesperson'[OUSR.Country] ),
ALL ( 'OCRD - Customer'[Market] ),
ALL ( 'OCRD - Customer'[Industry ID] ),
ALL ( 'INV1 - AR invoice'[Project] )
),
'OSLP - Salesperson'[OUSR.Country] = "PL"
&& ( 'OCRD - Customer'[Market] = "Clean Energy"
|| 'OCRD - Customer'[Industry ID]
IN { "H2", "HINFR", "HPROD", "HRFS", "HVEH" }
|| 'INV1 - AR invoice'[Project] IN { "X", "Y", "Z" } )
)
)
If this helps point you towards the answer, please accept as the solution for others with the same challenge.
User | Count |
---|---|
25 | |
11 | |
8 | |
6 | |
6 |
User | Count |
---|---|
25 | |
12 | |
11 | |
7 | |
6 |