Rango de tiempo de fecha dinámico para gráfico de líneas

Un usuario Pregunto ✅

anandgovindaraj

Tengo datos de precios por hora, a continuación se muestra una muestra:

Precio de fecha y hora del evento

7/1/2019 0:00 22
7/1/2019 1:00 24
7/1/2019 2:00 24
7/1/2019 3:00 23
7/1/2019 4:00 23
7/1/2019 5:00 25
7/1/2019 6:00 28

Creé un diagrama de línea simple de series temporales de precios y tengo una segmentación (entre fechas) para controlar la cantidad de días que se verán.

¿Es posible trazar dos días (48 horas) a la vez? Sí, puedo usar la segmentación para esto, pero el objetivo es permitir que el usuario seleccione un día (utilizando una segmentación con una lista de todas las fechas) y el gráfico debe mostrar los precios por hora para el día seleccionado y el día siguiente.

¡Gracias!

mfelix

Hola @anandgovindaraj,

Necesitas hacer los siguientes pasos:

  • Cree una tabla de calendario para usar como filtro (esta tabla no debe estar relacionada con el conjunto de datos)
  • Agrega la siguiente medida:
Price over 2 days = 
VAR SelectedDate =
    MAX ( DimDate[Date] )
VAR Number_of_days = 1 //Used to create number of days to show in chart if want to show 3 days number should be 2
RETURN   
CALCULATE (
        SUM ( EventDate[Price] );
        FILTER (
            ALL ( EventDate[Eventdatetime].[Date] );
            EventDate[Eventdatetime].[Date] >= SelectedDate
                && EventDate[Eventdatetime].[Date] <= SelectedDate + Number_of_days
        )
    )

  • Crear una segmentación con la tabla de calendario
  • Y un gráfico con el EventDatetime y la medida anterior.

Resultado final a continuación:

2 dias.gif

Ver archivo PBIX adjunto.

Saludos,

mfelix

parar2k

En respuesta a mfelix

Se adjunta la solución @anandgovindaraj, solo agregue una medida simple como se muestra a continuación y cree una tabla de fechas para la segmentación.

Total Price = 
CALCULATE( SUM( Table1[ Price] ),  
DATESBETWEEN( Table1[Eventdatetime ].[Date], 
MIN( 'Calendar'[Date] ), 
NEXTDAY( 'Calendar'[Date] ) ))

anandgovindaraj

¡Gracias!

mfelix

Hola @anandgovindaraj,

Necesitas hacer los siguientes pasos:

  • Cree una tabla de calendario para usar como filtro (esta tabla no debe estar relacionada con el conjunto de datos)
  • Agrega la siguiente medida:
Price over 2 days = 
VAR SelectedDate =
    MAX ( DimDate[Date] )
VAR Number_of_days = 1 //Used to create number of days to show in chart if want to show 3 days number should be 2
RETURN   
CALCULATE (
        SUM ( EventDate[Price] );
        FILTER (
            ALL ( EventDate[Eventdatetime].[Date] );
            EventDate[Eventdatetime].[Date] >= SelectedDate
                && EventDate[Eventdatetime].[Date] <= SelectedDate + Number_of_days
        )
    )

  • Crear una segmentación con la tabla de calendario
  • Y un gráfico con el EventDatetime y la medida anterior.

Resultado final a continuación:

2 dias.gif

Ver archivo PBIX adjunto.

Saludos,

mfelix

parar2k

En respuesta a mfelix

Se adjunta la solución @anandgovindaraj, solo agregue una medida simple como se muestra a continuación y cree una tabla de fechas para la segmentación.

Total Price = 
CALCULATE( SUM( Table1[ Price] ),  
DATESBETWEEN( Table1[Eventdatetime ].[Date], 
MIN( 'Calendar'[Date] ), 
NEXTDAY( 'Calendar'[Date] ) ))

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *