Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
6 years ago

Medida Total

Tengo una medida "x" que calcula una clase acumulativa. Quiero que el total muestre el valor del último mes que estoy mostrando en una tabla, en lugar de una suma de todos (porque es un acumulativo). Sé que esto normalmente funciona con la adición de un iterador y los valores de todos los meses. Sin embargo, probablemente porque estoy usando variables, no se comporta como se esperaba. Cuando envuelvo la medida en otra medida "y", funciona para agregar el iterador. Simplemente no agredo medidas innecesarias a mi modelo de datos. Véanse las medidas siguientes:

Y = 
MAXX( 
    VALUES ( Dates[MonthYear] ),
    CALCULATE (
        ( x
    )
)
)

X = 

VAR todayMonthYearPlusOne =   VALUE (
                    YEAR ( DATE ( YEAR ( TODAY () ), MONTH ( TODAY () ) + 1, 1 ) )
                        & FORMAT (
                            MONTH ( DATE ( YEAR ( TODAY () ), MONTH (TODAY () ) + 1, 1 ) ),
                            "0#"
                        ))  

VAR tmpBillingPeriod =
    ADDCOLUMNS (FILTER(Deals_Lookup, Deals_Lookup[Won Time (Clone For Reports)] <> BLANK()),
        
        "MonthYearBegin", IF (
            ISBLANK ( [Won Date] ),
            VALUE ( YEAR ( TODAY () ) & FORMAT ( MONTH ( TODAY () ), "0#" ) ),
            VALUE ( YEAR ( [Won Date] ) & FORMAT ( MONTH ( [Won Date] ), "0#" ) )
        ),
        "MonthYearEnd", IF (
                            ISBLANK ( [Lost Date]),
                            VALUE ( YEAR ( TODAY () ) & FORMAT ( MONTH ( TODAY () ), "0#" ) ),
                                    IF (
                                        DAY ( [Lost Date] ) <> -1,
                                        VALUE ( YEAR ( [Lost Date] ) & FORMAT ( MONTH ( [Lost Date] ), "0#" ) ),
                                        VALUE (
                                            YEAR ( DATE ( YEAR ( [Lost Date] ), MONTH ( [Lost Date] ) - 1, 1 ) )
                                                & FORMAT (
                                                    MONTH ( DATE ( YEAR ( [Lost Date] ), MONTH ( [Lost Date] ) - 1, 1 ) ),
                                                    "0#"
                                                )
                                        )
                                    )
                                )
                            )
    VAR tableWithAllMonthYears =  GENERATE (
                tmpBillingPeriod,
                SUMMARIZE ( Dates, [Year], [MonthNum], [MonthYearNum] )
            )
VAR tableWithOnlyWonMonthYears = FILTER (
            tableWithAllMonthYears,
            [MonthYearNum] >= [MonthYearBegin]
                && [MonthYearNum] < [MonthYearEnd]
        )            

VAR tmpTableDeals =
    SELECTCOLUMNS (
        tableWithOnlyWonMonthYears,
        "DealTitle", [Title],
        "Customerid", [Organization ID],
        "monthyear",Dates[MonthYearNum]
   
    )
VAR tmpTableDeals2 =
    SUMMARIZE(tmpTableDeals,[Customerid],[monthyear],"count",1)
RETURN

VAR custcount = 
    SUMX(tmpTableDeals2,[count])

RETURN

VAR X = MAXX( 
    VALUES ( Dates[MonthYear] ),
    CALCULATE (
        ( custcount)
    )
)


RETURN
MAXX( 
    VALUES ( Dates[MonthYearNum] ),
    CALCULATE (
        ( SUMX(tmpTableDeals2,[count]))
    )
)

Sor, por ejemplo, tengo una tabla de la siguiente manera:

MonthYear

Medida XMedida Y (lo que quiero)
Ene 2020308308
Febrero de 2020320320
Mar 2020330330
Abr 2020357357
Mayo de 2020380380
Junio de 2020383383
Total2078383

4 Replies

  • @Laila92 ,La información que ha proporcionado no está despejar el problema para mí. Por favor, puede explicar con un ejemplo.
    ¿Puede compartir datos de ejemplo y salida de ejemplo en formato de tabla?
    Apreciamos tus Felicitaciones.

  • Greg_Deckler's avatar
    Greg_Deckler
    Icon for Community Champion rankCommunity Champion
  • v-zhenbw-msft's avatar
    v-zhenbw-msft
    Icon for Community Support rankCommunity Support

    Hola @Laila92 ,

    Si desea mostrar el valor máximo de la medida de mes en TOTAL, podemos crear una medida para satisfacer sus necesidades.

    Measure 2 = 
    var _maxdate = CALCULATE(MAX('Table'[Year&month]),ALLSELECTED('Table'))
    var _x = [Measure]
    var _y = CALCULATE([Measure],FILTER('Table','Table'[Year&month]=_maxdate))
    return
    IF(ISFILTERED('Table'[Year&month]),_x,_y)

    M1.jpg

    Si no cumple con sus requisitos, ¿podría mostrar el resultado esperado exacto basado en la tabla que ha compartido?

    Saludos

    Equipo de apoyo a la comunidad _ zhenbw

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


    BTW, pbix como adjunto.

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

    Hola @Laila92 ,

    ¿Qué tal el resultado después de seguir las sugerencias mencionadas en mi publicación original?

    ¿Podría proporcionar más detalles o resultado esperado si no cumple con su requisito?

    Si ha solucionado el problema por su cuenta, por favor comparta su solución. Si la ayuda de los mensajes anteriores, por favor márquela como una solución para ayudar a otros a encontrarlo más rápidamente.

    Saludos

    Equipo de apoyo a la comunidad _ zhenbw

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