Monu_G
Hola,
Tengo un desafío en el que tengo que mostrar datos en el gráfico de barras visual, en el que los cálculos se basan en los datos del historial en función de la segmentación seleccionada, también el eje en el gráfico de barras debe aparecer según el mes / año seleccionado en la segmentación, por ejemplo
Supongamos que hoy es 28 de mayo, pero quiero datos calculados y visuales en el gráfico de barras de los últimos 6 a partir de enero de 2019.
Por ejemplo, quiero datos visuales desde julio de 2018 hasta enero de 2019, si la cortadora se selecciona para enero de 2019.
Además, Axis debería mostrar el nombre de los seis meses en el gráfico de barras, y así debería aparecer dinámicamente cada vez (desde julio hasta enero en este caso)
TeigeGao
Hola @Monu_G,
En su escenario, podemos utilizar el siguiente método:
Primero, necesitamos crear una tabla de calendario usando la siguiente consulta DAX:
calendar = CALENDAR(DATE(2018,1,1),DATE(2019,12,31))
Luego agregue la siguiente columna calculada:
month/year="calendar"[Date].[Month] & " " & YEAR('calendar'[Date])
yearmonth = YEAR('calendar'[Date])&IF(MONTH('calendar'[Date]) <10,"0"&MONTH('calendar'[Date]),MONTH('calendar'[Date]))
order = CALCULATE(DISTINCTCOUNT('calendar'[yearmonth]),FILTER(ALL('calendar'),'calendar'[yearmonth] < EARLIER('calendar'[yearmonth]))) +1
Después de eso, podemos crear una medida usando la siguiente consulta:
Measure = VAR mini = CALCULATE ( MIN ( 'calendar'[Date] ), FILTER ( ALL ( 'calendar' ), 'calendar'[order] = LOOKUPVALUE ( 'calendar'[order], 'calendar'[month/year], SELECTEDVALUE ( 'calendar'[month/year] ) ) - 5 ) ) VAR maxaa = CALCULATE ( MAX ( 'calendar'[Date] ), FILTER ( ALL ( 'calendar' ), 'calendar'[order] = LOOKUPVALUE ( 'calendar'[order], 'calendar'[month/year], SELECTEDVALUE ( 'calendar'[month/year] ) ) ) ) RETURN CALCULATE ( SUM ( data[Value] ), FILTER ( data, data[Date] >= mini && data[Date] <= maxaa ) )
Luego, arrastre la columna de calendario yearmonth como segmentador, la medida y la fecha de la columna de datos al gráfico:
El resultado será como el siguiente:
Aquí está el archivo pbix, consúltelo: https://1drv.ms/u/s!Ao9Of0JgO6MU8SAqL8xL0CspEtdq
Atentamente,
Teige
TeigeGao
Hola @Monu_G,
En su escenario, podemos utilizar el siguiente método:
Primero, necesitamos crear una tabla de calendario usando la siguiente consulta DAX:
calendar = CALENDAR(DATE(2018,1,1),DATE(2019,12,31))
Luego agregue la siguiente columna calculada:
month/year="calendar"[Date].[Month] & " " & YEAR('calendar'[Date])
yearmonth = YEAR('calendar'[Date])&IF(MONTH('calendar'[Date]) <10,"0"&MONTH('calendar'[Date]),MONTH('calendar'[Date]))
order = CALCULATE(DISTINCTCOUNT('calendar'[yearmonth]),FILTER(ALL('calendar'),'calendar'[yearmonth] < EARLIER('calendar'[yearmonth]))) +1
Después de eso, podemos crear una medida usando la siguiente consulta:
Measure = VAR mini = CALCULATE ( MIN ( 'calendar'[Date] ), FILTER ( ALL ( 'calendar' ), 'calendar'[order] = LOOKUPVALUE ( 'calendar'[order], 'calendar'[month/year], SELECTEDVALUE ( 'calendar'[month/year] ) ) - 5 ) ) VAR maxaa = CALCULATE ( MAX ( 'calendar'[Date] ), FILTER ( ALL ( 'calendar' ), 'calendar'[order] = LOOKUPVALUE ( 'calendar'[order], 'calendar'[month/year], SELECTEDVALUE ( 'calendar'[month/year] ) ) ) ) RETURN CALCULATE ( SUM ( data[Value] ), FILTER ( data, data[Date] >= mini && data[Date] <= maxaa ) )
Luego, arrastre la columna de calendario yearmonth como segmentador, la medida y la fecha de la columna de datos al gráfico:
El resultado será como el siguiente:
Aquí está el archivo pbix, consúltelo: https://1drv.ms/u/s!Ao9Of0JgO6MU8SAqL8xL0CspEtdq
Atentamente,
Teige
Monu_G
En respuesta a TeigeGao
Hola Tiege,
Muchas gracias por su solución, funciona bien en condiciones normales, sin embargo, en mi caso, el modelo de cubo SSAS se creó en Visual Studio 2015 y SQL Server 2016, que no admite el valor seleccionado y no puedo realizar la importación completa en PowerBI. cuando falla, IF (HASONEVALUE) podría funcionar pero no estoy seguro de cómo usarlo con su solución. ¿Hay algo que pueda sugerir teniendo en cuenta mis limitaciones?
Gracias,