Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

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
Europe Fabric Conference

Europe’s largest Microsoft Fabric Community Conference

Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.

Power BI Carousel June 2024

Power BI Monthly Update - June 2024

Check out the June 2024 Power BI update to learn about new features.

PBI_Carousel_NL_June

Fabric Community Update - June 2024

Get the latest Fabric updates from Build 2024, key Skills Challenge voucher deadlines, top blogs, forum posts, and product ideas.

Top Solution Authors
Top Kudoed Authors