Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Icon for Administrator rankAdministrator
4 years ago
Solved

Rolling 12 meses

Hola
Utilicé la siguiente medida para calcular Rolling 12 Months, pero en los datos que se muestran del 21 de enero al 21 de noviembre,en realidad debería mostrar del 20 de diciembre al 21 de noviembre.
Por favor, consulte la siguiente imagen.
Por favor, encuentre la siguiente medida y consejo es cualquier cosa que tenemos que cambiar.
----------------------------------------------------------------------------------------------------------------------------------------------
Importe de las ventas 12 meses =
---------------------------------------------------------
DÓNDE _selectedAltYear =
SELECTEDVALUE( 'Hasta el año'[Número de año])
-----------------------------------------------------
nueva tabla de fechas
DÓNDE __rlvntDateTable =
CALCULABLE(
'Fecha',
FILTRO('Fecha','Fecha'[Fecha]>= fecha electrónica([Fecha máxima de hasta el año],-12) && 'Fecha'[Fecha]<= [Fecha máxima de hasta el año])
)
---------------------------------------------------------
DÓNDE _altsalesamount =
CALCULAR( [Monto de las ventas], __rlvntDateTable )
DEVOLUCIÓN
_altsalesamount
-------------------------------------------------------------------------------------------------------------------------------------------
achanikya_0-1641212342137.png

  • achanikya ,

    Escribo una fórmula para usar el año de selección para obtener la última fecha de la tabla del calendario y usarla como condición para rodar calculada en la tabla de hechos. Puede intentar utilizar la siguiente fórmula de medida si es adecuada para sus necesidades:

    Sales amount 12 month =
    //get the selection year from new date table 
    VAR sYear =
        MAX ( 'To Year'[Year] ) //get the last date with selected year from calendar table
    VAR selected =
        CALCULATE (
            MAX ( 'Date'[Date] ),
            FILTER ( ALLSELECTED ( 'Date' ), YEAR ( [Date] ) = sYear )
        )
    RETURN
        //rolling calculation
        CALCULATE (
            [Sales Amount],
            FILTER (
                ALLSELECTED ( 'Fact' ),
                //replace this wiht your fact table
                [Date]
                    >= DATE ( YEAR ( selected ) - 1, MONTH ( selected ), DAY ( selected ) )
                    && [Date] <= selected
            ),
            VALUES ( 'Fact'[System Name] )
        )

    Si lo anterior no ayuda, ¿puede compartir un pbix o algunos datos ficticios que mantengan la estructura de datos sin procesar con los resultados esperados? Deberían ayudarnos a aclarar su escenario y probar la fórmula de codificación.

    Cómo obtener respuestas a su pregunta rápidamente

    Saludos

    Xiaoxin Sheng

3 Replies

  • @achanikya , Pruebe como,

    Importe de las ventas 12 meses =
    ---------------------------------------------------------
    VAR _selectedAltYear =
    maxx(allselected('Fecha'), 'Date'[Date]<=)
    -----------------------------------------------------
    nueva tabla de fechas
    VAR __rlvntDateTable =
    CALCULABLE(
    «Fecha»,
    FILTER('Fecha','Fecha'[Fecha]>= eomonth(_selectedAltYear,-12) && 'Fecha'[Fecha]<= _selectedAltYear)
    )
    ---------------------------------------------------------
    VAR _altsalesamount =
    CALCULATE( [Importe de las ventas], __rlvntDateTable )
    DEVOLUCIÓN
    _altsalesamount

    Pero si está seleccionando una fecha y luego desea un eje de 12 meses, necesita una tabla independiente

    Necesidad de una tabla de fechas independiente:https://www.youtube.com/watch?v=44fGGmg9fHI

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Icon for Administrator rankAdministrator

      achanikya ,

      ¿Alguna actualización para estos? ¿Las sugerencias anteriores ayudaron con su escenario? si ese es el caso, puede considerar Kudo o aceptar las sugerencias útiles para ayudar a otros que enfrentaron requisitos similares.

      Si esto tampoco ayuda, comparta información más detallada para ayudarnos a aclarar su escenario para probar.

      Cómo obtener respuestas a su pregunta rápidamente

      Saludos

      Xiaoxin Sheng

  • achanikya ,

    Escribo una fórmula para usar el año de selección para obtener la última fecha de la tabla del calendario y usarla como condición para rodar calculada en la tabla de hechos. Puede intentar utilizar la siguiente fórmula de medida si es adecuada para sus necesidades:

    Sales amount 12 month =
    //get the selection year from new date table 
    VAR sYear =
        MAX ( 'To Year'[Year] ) //get the last date with selected year from calendar table
    VAR selected =
        CALCULATE (
            MAX ( 'Date'[Date] ),
            FILTER ( ALLSELECTED ( 'Date' ), YEAR ( [Date] ) = sYear )
        )
    RETURN
        //rolling calculation
        CALCULATE (
            [Sales Amount],
            FILTER (
                ALLSELECTED ( 'Fact' ),
                //replace this wiht your fact table
                [Date]
                    >= DATE ( YEAR ( selected ) - 1, MONTH ( selected ), DAY ( selected ) )
                    && [Date] <= selected
            ),
            VALUES ( 'Fact'[System Name] )
        )

    Si lo anterior no ayuda, ¿puede compartir un pbix o algunos datos ficticios que mantengan la estructura de datos sin procesar con los resultados esperados? Deberían ayudarnos a aclarar su escenario y probar la fórmula de codificación.

    Cómo obtener respuestas a su pregunta rápidamente

    Saludos

    Xiaoxin Sheng