cancel
Showing results for 
Search instead for 
Did you mean: 

Fabric is Generally Available. Browse Fabric Presentations. Work towards your Fabric certification with the Cloud Skills Challenge.

Reply
Syndicate_Admin
Administrator
Administrator

Varios pasos de SELECTEDVALUE no obtienen el resultado deseado

Tengo una medida en la que la salida deseada depende de la selección del usuario de aproximadamente 4 segmentaciones de datos. He intentado hacer todo esto como variables y todo como medidas separadas, pero hay un desglose en alguna parte. No sé si debería usar algo como KEEPFILTERS.
Aquí hay una explicación aproximada de lo que estoy tratando de lograr.
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
)
¿Puedo deshacerme del TOTAL? Fórmulas TD y simplemente hacer estilo antiguo si es necesario. Los pasos 1 y 3 usan tablas DIM como filtros, el resto están contenidos dentro de la tabla de hechos.
Algo malo está sucediendo entre el Paso 2 y 3, creo que donde los valores se ponen a cero por completo, como si toda la tabla se filtrara a nada que no debería ser cierto.
Pensé en hacer una declaración IF con aproximadamente 54 condiciones, pero supongo que tiene que haber una mejor manera.
1 REPLY 1
Syndicate_Admin
Administrator
Administrator

Lo que usted describe idealmente debería ser manejado directamente por el modelo de datos. No se requieren instrucciones de cambio adicionales. Debe usar EVALUATEANDLOG y DAXDEBUGOUTPUT para ver cuán impactantes son estas múltiples instrucciones de cálculo anidadas.

Helpful resources

Announcements
PBI November 2023 Update Carousel

Power BI Monthly Update - November 2023

Check out the November 2023 Power BI update to learn about new features.

Community News

Fabric Community News unified experience

Read the latest Fabric Community announcements, including updates on Power BI, Synapse, Data Factory and Data Activator.

Power BI Fabric Summit Carousel

The largest Power BI and Fabric virtual conference

130+ sessions, 130+ speakers, Product managers, MVPs, and experts. All about Power BI and Fabric. Attend online or watch the recordings.

Top Solution Authors
Top Kudoed Authors