Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
step1 = SWITCH( SELECTEDVALUE(C_DateView[View]),
"YTD",TOTALYTD(SUM(FACT_PL[USDAMOUNT]),DIM_DATE[FULLDATE],DIM_DATE[FULLDATE] >= startY && DIM_DATE[FULLDATE] <= endDate),
"QTD", TOTALQTD(SUM(FACT_PL[USDAMOUNT]),DIM_DATE[FULLDATE],DIM_DATE[FULLDATE] >= startQ && DIM_DATE[FULLDATE] <= endDate),
"MTD", TOTALMTD(SUM(FACT_PL[USDAMOUNT]),DIM_DATE[FULLDATE],DIM_DATE[FULLDATE] >= startM && DIM_DATE[FULLDATE] <= endDate),
SUM(FACT_PL[USDAMOUNT])
)
step2 = SWITCH( SELECTEDVALUE(C_Allocation[AllocationBool]),
"Yes",CALCULATE(step1,FACT_PL[ALLOCATEDFLAG],FACT_PL[ALLOCATEDFLAG] = 1 || FACT_PL[ALLOCATEDFLAG] = -1),
"No",CALCULATE(step1,FACT_PL[ALLOCATEDFLAG],FACT_PL[ALLOCATEDFLAG] = 1 || FACT_PL[ALLOCATEDFLAG] = -0),
CALCULATE(step1,FACT_PL[ALLOCATEDFLAG],FACT_PL[ALLOCATEDFLAG] = 1 || FACT_PL[ALLOCATEDFLAG] = -1)
)
step3 = SWITCH( SELECTEDVALUE(C_RptFlag[Reporting Flag]),
"One-Time",CALCULATE(step2 ,DIM_REPORTINGFLAG[REPORTINGFLAG] = "One time"),
"Exclude One-Time",CALCULATE(step2 ,DIM_REPORTINGFLAG[REPORTINGFLAG] <> "One time"), step2 )
step4 = SWITCH( SELECTEDVALUE(C_DisplayUnits[Type]),
"Thousands", step3/1000 ,
"Millions", step3/1000000 ,
step3
)
What you describe should ideally all be handled by the data model directly. No extra switch statements required. You should use EVALUATEANDLOG and DAXDEBUGOUTPUT to see how impactful these multiple nested calculate statements are.
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
111 | |
95 | |
77 | |
68 | |
54 |
User | Count |
---|---|
144 | |
105 | |
102 | |
89 | |
63 |