Cómo calcular MTD, últimos 7 días, ayer, hoy (rango de fechas)

Un usuario Pregunto ✅

maram_cs

Hola

Me gustaría calcular el rango de fechas y agregar la fecha del filtro para mostrar datos en el rango de fechas.

para que quede más claro, quiero agregar un filtro (dropdown) como checklet que tiene los tipos a continuación

ID —– | —- TIPO

1 ——- | —- Hoy

2 ——- | —- Ayer

3 ——- | —- Últimos 7 días

4 ——- | —- MTD

supongamos que hay una tabla simple con columna de fecha «seleccione ITEMID, Factory,CretedDT DE Xtable«lo que tengo que hacer es establecer una relación entre la cortadora que agregué antes y esta Xtable

Intenté agregar un nuevo coulmn en el servidor SQL usando la declaración de caso como se muestra a continuación

Seleccione

IDENTIFICACIÓN DEL PRODUCTO,

Fábrica,

caso

cuando [CretedDT ] = CONVERTIR (FECHA, OBTENER FECHA ()) luego 1
cuando [CretedDT ] = dateadd (day, -1, cast (getdate () as date)) luego 2
cuando [CretedDT ] > = DATEADD (DAY, DATEDIFF (DAY, 0, GETDATE ()) – 7, 0) luego 3

finalizar como Filter_Date

DE Xtable

pero este método tiene un problema, significaría que no puedo incluir ni el tipo de hoy (1) ni el tipo de ayer (2) en el tipo de Últimos 7 días (3), siempre será solo un tipo, por lo tanto, los datos no serán precisos, ¿qué si el usuario elige el tipo número 3 no aparecerán los datos de ayer y tody.

¿Hay alguna forma de simplificar lo que necesito y hacerlo directamente desde Power BI usando medidas o agregando coulmn condicional?

NOTA: El modo de conectividad de datos es DirectQuery

Hola @maram_cs,

Para crear una medida como se muestra a continuación.

Measure = 
VAR tod =
    TODAY ()
VAR yd =
    YEAR ( TODAY () )
VAR md =
    MONTH ( TODAY () )
VAR yest = tod - 1
VAR last7 = tod - 7
VAR sele =
    SELECTEDVALUE ( Slicer[TYPE] )
VAR todaysales =
    CALCULATE (
        SUM ( 'data'[value] ),
        FILTER ( 'data', 'data'[date] = tod )
    )
VAR yestsales =
    CALCULATE (
        SUM ( 'data'[value] ),
        FILTER ( 'data', 'data'[date] = yest )
    )
VAR last7sales =
    CALCULATE (
        SUM ( 'data'[value] ),
        FILTER ( 'data', 'data'[date] <= tod && 'data'[date] > last7 )
    )
VAR mtdsale =
    CALCULATE (
        SUM ( 'data'[value] ),
        FILTER (
            'data',
            YEAR ( 'data'[date] ) = yd
                && MONTH ( 'data'[date] ) = md
                && 'data'[date] <= tod
        )
    )
RETURN
    IF (
        ISFILTERED ( Slicer[TYPE] ),
        SWITCH (
            TRUE (),
            sele = "Today", todaysales,
            sele = "Yesterday", yestsales,
            sele = "Last 7 days", last7sales,
            sele = "MTD", mtdsale
        )
    )

Capture.PNG

Hola @maram_cs,

Para crear una medida como se muestra a continuación.

Measure = 
VAR tod =
    TODAY ()
VAR yd =
    YEAR ( TODAY () )
VAR md =
    MONTH ( TODAY () )
VAR yest = tod - 1
VAR last7 = tod - 7
VAR sele =
    SELECTEDVALUE ( Slicer[TYPE] )
VAR todaysales =
    CALCULATE (
        SUM ( 'data'[value] ),
        FILTER ( 'data', 'data'[date] = tod )
    )
VAR yestsales =
    CALCULATE (
        SUM ( 'data'[value] ),
        FILTER ( 'data', 'data'[date] = yest )
    )
VAR last7sales =
    CALCULATE (
        SUM ( 'data'[value] ),
        FILTER ( 'data', 'data'[date] <= tod && 'data'[date] > last7 )
    )
VAR mtdsale =
    CALCULATE (
        SUM ( 'data'[value] ),
        FILTER (
            'data',
            YEAR ( 'data'[date] ) = yd
                && MONTH ( 'data'[date] ) = md
                && 'data'[date] <= tod
        )
    )
RETURN
    IF (
        ISFILTERED ( Slicer[TYPE] ),
        SWITCH (
            TRUE (),
            sele = "Today", todaysales,
            sele = "Yesterday", yestsales,
            sele = "Last 7 days", last7sales,
            sele = "MTD", mtdsale
        )
    )

Capture.PNG

maram_cs

Hola

Me gustaría calcular el rango de fechas y agregar la fecha del filtro para mostrar datos en el rango de fechas.

para que quede más claro, quiero agregar un filtro (dropdown) como checklet que tiene los tipos a continuación

ID —– | —- TIPO

1 ——- | —- Hoy

2 ——- | —- Ayer

3 ——- | —- Últimos 7 días

4 ——- | —- MTD

supongamos que hay una tabla simple con la columna de fecha «seleccione ITEMID, Factory,CretedDT DE Xtable«lo que tengo que hacer es establecer una relación entre la cortadora que agregué antes y esta Xtable

Intenté agregar un nuevo coulmn en el servidor SQL usando la declaración de caso como se muestra a continuación

Seleccione

IDENTIFICACIÓN DEL PRODUCTO,

Fábrica,

caso

cuando [CretedDT ] = CONVERTIR (FECHA, OBTENER FECHA ()) luego 1
cuando [CretedDT ] = dateadd (day, -1, cast (getdate () as date)) luego 2
cuando [CretedDT ] > = DATEADD (DAY, DATEDIFF (DAY, 0, GETDATE ()) – 7, 0) luego 3

finalizar como Filter_Date

DE Xtable

pero este método tiene un problema, significaría que no puedo incluir ni el tipo de hoy (1) ni el tipo de ayer (2) en el tipo de Últimos 7 días (3), siempre es solo un tipo, por lo tanto, los datos no serán precisos, ¿qué si el usuario elige el tipo número 3, no aparecerán los datos de ayer y tody.

¿Hay alguna forma de simplificar lo que necesito y hacerlo directamente desde Power BI usando medidas o agregando coulmn condicional?

NOTA: El modo de conectividad de datos es DirectQuery

Deja un comentario

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