Forum Discussion

Sylvine_Wyz's avatar
Sylvine_Wyz
Icon for Helper IV rankHelper IV
5 years ago

Dax - relatives dates

Bonjour, 

 

Je souhaite faire ressortir :

-le BF moyen du mois précédent

-le BF moyen du mois en cours

-le BF moyen du mois suivant

 

J'ai donc mis des filtres de dates relatives sur mes 3 visuels.

Mais je souhaite créer une formule DAX pour ne pas utiliser les filtres.

Y a t il une formule DAX qui existe ? 

 

Merci par avance.

 

 

4 Replies

  • @Sylvine_Wyz , No muy claro se puede utilizar la inteligencia de tiempo con la tabla de fechas

    Ejemplo

    Ventas MTD: CALCULATE(SUM(Sales[Sales Amount]),DATESMTD('Date'[Date]))
    Last MTD Sales - CALCULATE(SUM(Sales[Sales Amount]),DATESMTD(dateadd('Date'[Date],-1,MONTH)))
    Ventas del último mes: CALCULATE(SUM(Sales[Sales Amount]),previousmonth('Date'[Date]))
    este mes , Ventas MTD , CALCULATE(SUM(Sales[Sales Amount]),DATESMTD(ENDOFMONTH('Date'[Date])))
    Last MTD (completar) Ventas : CALCULATE(SUM(Sales[Sales Amount]),DATESMTD(ENDOFMONTH(dateadd('Date'[Date],-1,MONTH))))
    Próximas ventas MTD: CALCULATE(SUM(Sales[Sales Amount]),DATESMTD(dateadd('Date'[Date],1,MONTH)))

    Ventas del mes siguiente: CALCULATE(SUM(Sales[Sales Amount]),nextmonth('Date'[Date]))

    Para obtener lo mejor de la función de inteligencia del tiempo. Asegúrese de que tiene un calendario de fechas y que se ha marcado como la fecha en la vista de modelo. Además, únete a ella con la columna de fecha de tus hechos. Consulte :radacad sqlbi My Video Series Aprecia tus Felicitaciones.

  • v-alq-msft's avatar
    v-alq-msft
    Icon for Community Support rankCommunity Support

    Hola, @Sylvine_Wyz

    Según su descripción, creé datos para reproducir su escenario. El archivo pbix se adjunta al final.

    Mesa:

    c1.png

    Puede crear medidas como se indica a continuación.

    Current Month = 
    CALCULATE(
        AVERAGE('Table'[Value]),
        FILTER(
            ALL('Table'),
            YEAR([Date])=YEAR(TODAY())&&
            MONTH([Date])=MONTH(TODAY())
        )
    )
    Previous Month = 
    CALCULATE(
        AVERAGE('Table'[Value]),
        FILTER(
            ALL('Table'),
            YEAR([Date])=YEAR(EOMONTH(TODAY(),-1))&&
            MONTH([Date])=MONTH(EOMONTH(TODAY(),-1))
        )
    )
    Following Month = 
    CALCULATE(
        AVERAGE('Table'[Value]),
        FILTER(
            ALL('Table'),
            YEAR([Date])=YEAR(EOMONTH(TODAY(),1))&&
            MONTH([Date])=MONTH(EOMONTH(TODAY(),1))
        )
    )

    Resultado:

    c2.png

    Saludos

    Allan

    Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

    • Sylvine_Wyz's avatar
      Sylvine_Wyz
      Icon for Helper IV rankHelper IV

      Hello v-alq-msft 
      Thanks for your help. 

      But i need to use filter in Iso_Pays (Fr, ES, Be...)
      Currently, if i selecte the segment FR or Es, it's the same BF.

      Can you help me  ?

       

      Thanks

      • v-alq-msft's avatar
        v-alq-msft
        Icon for Community Support rankCommunity Support

        Hola, @Sylvine_Wyz

        Puede crear una tabla de una sola columna 'Slicer' que contenga 'BF', 'Fr', 'ES' y así sucesivamente. A continuación, puede intentar modificar la medida como a continuación para ver si ayuda.

        Current Month =
        IF (
            HASONEVALUE ( 'Slicer'[Iso_pays] ),
            SWITCH (
                SELECTEDVALUE ( 'Slicer'[Iso_pays] ),
                "BF",
                    CALCULATE (
                        AVERAGE ( 'Table'[BF] ),
                        FILTER (
                            ALL ( 'Table' ),
                            YEAR ( [Date] ) = YEAR ( TODAY () )
                                && MONTH ( [Date] ) = MONTH ( TODAY () )
                        )
                    ),
                "Fr",
                    CALCULATE (
                        AVERAGE ( 'Table'[Fr] ),
                        FILTER (
                            ALL ( 'Table' ),
                            YEAR ( [Date] ) = YEAR ( TODAY () )
                                && MONTH ( [Date] ) = MONTH ( TODAY () )
                        )
                    ),
                "ES",
                    CALCULATE (
                        AVERAGE ( 'Table'[ES] ),
                        FILTER (
                            ALL ( 'Table' ),
                            YEAR ( [Date] ) = YEAR ( TODAY () )
                                && MONTH ( [Date] ) = MONTH ( TODAY () )
                        )
                    )
            )
        )
        

        Saludos

        Allan

        Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.