Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Icon for Administrator rankAdministrator
2 years ago

Dax

p1m =
CALCULAR(
DISTINCTCOUNT(PSR[customer_code]),
FILTRO(
VALORES(PSR[customer_code]),
[suma de ret] > 0
)
)

Se trata de una medida que calcula el número de clientes distintos de los clientes cuya suma de ventas al por menor es >0.
Quiero calcular otra medida que muestre un recuento distinto de clientes de este mes + los últimos 2 meses del mes actual.
Por ejemplo, el recuento de noviembre sería noviembre + octubre + septiembre. Del mismo modo, el recuento de diciembre sería dec+nov+oct.

5 Replies

  • Hola @Parag_Gawate ,

    En primer lugar, crea una tabla de calendario y crea una relación con tu tabla de hechos.

    A continuación, utilice el siguiente cálculo modificando los nombres de las tablas según sus datos.

    Cal_Measure =
    Var CM = CALCULATE(DISTINCTCOUNT(PSR[customer_code]), Filter(Calendar_Table, 'Calendar_Table'[Month] = Month(Today())))
    Var PM = CALCULATE(DISTINCTCOUNT(PSR[customer_code]), Filter(Calendar_Table, 'Calendar_Table'[Month] = Month(Today())-1))
    Var PPM = CALCULATE(DISTINCTCOUNT(PSR[customer_code]), Filter(Calendar_Table, 'Calendar_Table'[Month] = Month(Today())-2))
    Return
    CM+PM+PPM

    Si esta publicación ayuda, considere aceptarla como la solución para ayudar a otros miembros a encontrarla más rápidamente. ¡¡Gracias!!

  • Por favor, pruebe esto

    CURRENT MONTH = 
    VAR _Start = EOMONTH(TODAY(),-1)+1
    
    VAR _End = EOMONTH(TODAY(),0)
    RETURN
    CALCULATE([p1m], DATESBETWEEN('Calendar'[Date],_Start,_End)
    -------------
    Last 1 MONTH = 
    VAR _Start = EOMONTH(TODAY(),-2)+1
    
    VAR _End = EOMONTH(TODAY(),-1)
    RETURN
    CALCULATE([p1m], DATESBETWEEN('Calendar'[Date],_Start,_End)
    ------------
    Last 2 MONTH = 
    VAR _Start = EOMONTH(TODAY(),-3)+1
    
    VAR _End = EOMONTH(TODAY(),-2)
    RETURN
    CALCULATE([p1m], DATESBETWEEN('Calendar'[Date],_Start,_End)
  • Hola @Parag_Gawate ,

    Te sugiero que crees una tabla "DimDate" para ayudar al cálculo.

    DimDate = 
    VAR _CALENDAR =
        CALENDARAUTO()
    RETURN
        ADDCOLUMNS (
            _CALENDAR,
            "Year", YEAR ( [Date] ),
            "Month", MONTH ( [Date] ),
            "MonthName", FORMAT ( [Date], "MMMM" ),
            "RANKX",
                RANKX ( _CALENDAR, YEAR ( [Date] ) * 100 + MONTH ( [Date] ),, ASC, DENSE )
        )

    Medir:

    Sum 3 month count = 
    VAR _SUMMARIZE =
        SUMMARIZE (
            ALL ( DimDate ),
            DimDate[Year],
            DimDate[MonthName],
            DimDate[RANKX],
            "P1M", [p1m]
        )
    RETURN
        SUMX (
            FILTER (
                _SUMMARIZE,
                [RANKX]
                    > MAX ( DimDate[RANKX] ) - 3
                    && [RANKX] <= MAX ( DimDate[RANKX] )
            ),
            [P1M]
        )

    El resultado es el siguiente.

    Saludos
    Rico Zhou

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