cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
jminanoc
Helper I
Helper I

MAT, MAT_LY, YTD, YTD_LY, Q, Q_LY

Estimados tengo un problema espero me puedan ayudar:

 

Tengo una tabla calendario (dinamica), que usaré, pero necesito crear, una tabla auxiliar donde pueda elegir el Tipo de Agrupación y este me seleccione solo lasfechas que elegí, por ejemplo si elijo YTD_LY, me eliga las las fechas entre enero y hoy, pero del año anterior.

 

Adjunto el archivo pbix, con mi tabla calendario, esper me puedan ayudar

https://drive.google.com/file/d/1y66j1o2rNKqJYrtnoxxSFSbAK7WOAkwX/view?usp=sharing

 

jminanoc_0-1652796569387.png

 

1 ACCEPTED SOLUTION

Muchas gracias, es exactamente lo que necesitaba.

 

Saludos

View solution in original post

4 REPLIES 4
Syndicate_Admin
Administrator
Administrator

@Syndicate_Admin , Pruebe como este ejemplo

Período de conmutación =
var _max = if(isfiltered('Date'),MAX( 'Date'[Date]) , today())
var _min =
SWITCH(SELECTEDVALUE(Period[PeriodType],"MTD"),
"YTD",eomonth(_max,-1*MONTH(_max))+1 , //FY Abril -Marzo
"LYTD",eomonth(_max,-1*MES(_max))+1 ,
"FYTD",if( Month(_max) <4 , date(year(_max)-1,4,1) ,date(year(_max),4,1)), //FY April -March
"QTD",eomonth(_max,-1* if( mod(Month(_max),3) =0,3,Month(_max)))+1,
"MTD",eomonth(_max,-1)+1 ,
"LMTD",eomonth(_max,-1)+1 ,
"LYMTD",eomonth(_max,-1)+1 ,
"WTD", _max -WEEKDAY(_max,2)+1,
"Cumm", Minx(ALLSELECTED('Date'),'Date'[Date]),
"Rolling 3", fecha(Año(_max), mes(_max) -3, Día(_max))+1,
"Rolling 6", fecha(Año(_max), mes(_max) -6, Día(_max))+1,
"Rolling 12", fecha(Año(_max), mes(_max) -12, Día(_max))+1,
EN BLANCO())
var _max1 = SWITCH(SELECTEDVALUE(Period[PeriodType],"MTD") ,
"LYTD",Fecha(Año(_max)-1, mes(_max), Día(_max))
"LMTD",Fecha(Año(_max), mes(_max)-1, Día(_max))
"LYMTD",Fecha(Año(_max)-1, mes(_max), Día(_max) ) ,
_max)
var _min1 = SWITCH(SELECTEDVALUE(Period[PeriodType],"MTD") ,
"LYTD",Fecha(Año(_min)-1, mes(_min), Día(_min))
"LMTD",Fecha(Año(_min), mes(_min)-1, Día(_min))
"LYMTD",Fecha(Año(_min)-1, mes(_min), Día(_min) ,
_min)
devolución
CALCULATE([net] ,DATESBETWEEN('Date'[Date],_min1,_max1))

Corrija los valores según la necesidad

Muchas gracias por si tiempo, espero que pueda adaptarla a la tabla calendario que ya tengo.

@jminanoc ,

He actualizado su archivo pbix de muestra (ver archivo adjunto) para usted, por favor compruebe si eso es lo que desea.

1. Crear tabla de dimensiones de período

yingyinr_1-1653027556557.png

2. Cree una medida como la siguiente y aplique un filtro de nivel visual en la imagen con la condición (La medida es 1😞

Measure =
VAR _selperiod =
    SELECTEDVALUE ( 'Periods'[Period] )
VAR _seldate =
    SELECTEDVALUE ( 'Calendario'[Fecha] )
VAR _stdate =
    TODAY ()
VAR _curyear =
    YEAR ( _stdate )
VAR _lyeomonth =
    EOMONTH ( DATE ( _curyear - 1, MONTH ( _stdate ), 1 ), 0 )
VAR _lycurdate =
    IF (
        DAY ( TODAY () ) > DAY ( _lyeomonth ),
        _lyeomonth,
        DATE ( _curyear - 1, MONTH ( _stdate ), DAY ( _stdate ) )
    )
VAR _mat =
    CALCULATETABLE (
        VALUES ( 'Calendario'[Fecha] ),
        FILTER (
            'Calendario',
            DATEDIFF ( _seldate, TODAY (), MONTH ) >= 0
                && DATEDIFF ( _seldate, _stdate, MONTH ) <= 12
        )
    )
VAR _lymat =
    CALCULATETABLE (
        VALUES ( 'Calendario'[Fecha] ),
        FILTER (
            'Calendario',
            DATEDIFF ( _seldate, _lycurdate, MONTH ) >= 0
                && DATEDIFF ( _seldate, _lycurdate, MONTH ) <= 12
        )
    )
VAR _ytd =
    DATESBETWEEN ( 'Calendario'[Fecha], DATE ( _curyear, 1, 1 ), _stdate )
VAR _lytd =
    DATESBETWEEN ( 'Calendario'[Fecha], DATE ( _curyear - 1, 1, 1 ), _lycurdate )
VAR _q =
    CALCULATETABLE (
        VALUES ( 'Calendario'[Fecha] ),
        FILTER (
            'Calendario',
            'Calendario'[Año] = _curyear
                && 'Calendario'[Quarter] = CONCATENATE ( "Q", QUARTER ( _stdate ) )
        )
    )
VAR _lyq =
    CALCULATETABLE (
        VALUES ( 'Calendario'[Fecha] ),
        FILTER (
            'Calendario',
            'Calendario'[Año] = _curyear - 1
                && 'Calendario'[Quarter] = CONCATENATE ( "Q", QUARTER ( _stdate ) )
        )
    )
RETURN
    SWITCH (
        _selperiod,
        "MAT", IF ( _seldate IN _mat, 1, 0 ),
        "MAT_LY", IF ( _seldate IN _lymat, 1, 0 ),
        "Q", IF ( _seldate IN _q, 1, 0 ),
        "Q_LY", IF ( _seldate IN _lyq, 1, 0 ),
        "YTD", IF ( _seldate IN _ytd, 1, 0 ),
        "YTD_LY", IF ( _seldate IN _lytd, 1, 0 )
    )

yingyinr_0-1653027497234.png

Si lo anterior no puede ayudarlo a obtener el resultado deseado, proporcione más detalles sobre su resultado esperado con lógica de backend y ejemplos especiales. Es mejor si puede compartir un archivo pbix simplificado con esta información. Puede consultar el siguiente enlace para cargar el archivo a la comunidad. Gracias.

Cómo subir PBI en la comunidad

Saludos

Muchas gracias, es exactamente lo que necesitaba.

 

Saludos

Helpful resources

Announcements
Power Platform Conf 2022 768x460.jpg

Join us for Microsoft Power Platform Conference

The first Microsoft-sponsored Power Platform Conference is coming in September. 100+ speakers, 150+ sessions, and what's new and next for Power Platform.

Power BI Dev Camp Session 23 768x460.jpg

Check it Out!

Mark your calendars and join us on Thursday, June 30 at 11a PDT for a great session with Ted Pattison!

June 20 episode 7 with aka link 768x460.jpg

The Power BI Community Show

Join us on June 20 at 11 am PDT when Kim Manis shares the latest on Azure Synapse analytics, the Microsoft Intelligent Data Platform, and notable Power BI Updates from Microsoft Build 2022.