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

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Syndicate_Admin
Administrator
Administrator

Omitir el valor de cero del cálculo

Tengo la siguiente medida, que funciona *casi* perfectamente para lo que necesito:

Tráfico Cnt YoY% =
DÓNDE __PREV_YEAR = CALCULAR([Tendencia de tráfico Cnt], FECHAADD('Fecha'[Fecha], -1, AÑO))
DEVOLUCIÓN
DIVIDIR([Tendencia de tráfico Cnt] - __PREV_YEAR, __PREV_YEAR)
El problema es, sin embargo, que algunas de las ubicaciones no tienen Traffic Cnt para ambos años. La solicitud de la gerencia es que solo quieran ver la comparación interanual para ubicaciones donde el tráfico Cnt si no es cero en ambos años. He intentado filtrar los valores de <>0 en __PREV_YEAR pero no estoy teniendo éxito.
5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

Podrías probar algo como

Traffic Cnt YOY% =
var currentLocations = CALCULATETABLE( VALUES('Table'[location]), [Traffic Count] > 0 )
var lastYearLocations = CALCULATETABLE( VALUES('Table'[location]), [Traffic Count] > 0, DATEADD('Date'[Date], -1, YEAR) )
var result = CALCULATE( 
   var _PREV_YEAR = CALCULATE([Traffic Cnt Trend], DATEADD('Date'[Date], -1, YEAR))
   return DIVIDE( [Traffic Cnt Trend] - _PREV_YEAR, PREV_YEAR),
TREATAS( INTERSECT( currentLocations, lastYearLocations), 'Table'[location] )
)
return result

Hola, gracias por responder. He intentado implementar esta solución y dice "Se ha utilizado una función 'PLACEHOLDER' en una expresión True/False que se usa como expresión de filtro de tabla. Esto no está permitido".

Estaba recibiendo este error anteriormente cuando jugaba con soluciones que se me ocurrieron, creo que es una locura que esté tratando de hacer el filtro "[Traffic Cnt] >0".

Creo que el principio general de usar la intersección entre este año y el año pasado seguirá funcionando, solo necesitamos obtener esos valores de manera ligeramente diferente. Intente reemplazar las líneas para este año y el año pasado con

var currentYearSummaryTable = ADDCOLUMNS( SUMMARIZE('Table', 'Table'[location]), "@traffic", CALCULATE([Traffic count]) )
var lastYearSummaryTable = ADDCOLUMNS( SUMMARIZE('Table', 'Table'[location]), "@traffic", CALCULATE([Traffic count], DATEADD('Date'[Date], -1, YEAR)) )
var currentLocations = SELECTCOLUMNS( FILTER( currentYearSummaryTable, [@traffic] > 0), "location", [location])
var lastYearLocations = SELECTCOLUMNS( FILTER( lastYearSummaryTable, [@traffic] > 0), "location", [location])
Syndicate_Admin
Administrator
Administrator

@tarmogolf ,

Tráfico Cnt YoY% =
VAR __PREV_YEAR = CALCULATE([Traffic Cnt Trend], DATEADD('Date'[Date], -1, YEAR))
DEVOLUCIÓN
if([Traffic Cnt Trend] <> 0 && __PREV_YEAR <> 0, DIVIDE([Traffic Cnt Trend] - __PREV_YEAR, __PREV_YEAR), blank())

Gracias por responder, agradezco su ayuda aquí. Cuando intento implementar su solución, todavía tiene en cuenta las ubicaciones donde Traffic Cnt Prev Year = 0 cuando se agrega a un nivel superior en la jerarquía.

tarmogolf_0-1648050876647.png

Helpful resources

Announcements
LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

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

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.