Cálculo diagonal, dividiendo un mes por el mes anterior pero usando una cuenta diferente

Un usuario Pregunto ✅

GeraldZ

Hola,

Aquí hay una vista simple de los datos de muestra.

Diagonal Calc.png

Quiero crear una medida en PBI que para la cuenta B en el mes 2 lo divido por la cuenta A en el mes 1 (que es igual a 2). Luego quiero continuar con eso durante el mes 3 y dividir 300/200 (Cuenta C mes 3 por Cuenta B mes 2).

Me he estado rascando la cabeza para saber cómo resolver esto. Alguien puede ayudarme porfavor?

¡Gracias!

GZ

hola @GeraldZ

Prueba esta fórmula:

Measure 3 = 
VAR _lastvalue =
    CALCULATE (
        MAX ( 'Table'[Month] ),
        FILTER ( ALL ( 'Table' ), 'Table'[Month] < MAX ( 'Table'[Month] ) )
    )
RETURN
    DIVIDE (
        CALCULATE ( SUM ( 'Table'[Value] ) ),
        CALCULATE (
            SUM ( 'Table'[Value] ),
            FILTER ( ALL ( 'Table' ), 'Table'[Month] = _lastvalue )
        )
    )

Resultado:

2.JPG

aquí está el archivo pbix, inténtelo.

Atentamente,

Lin

En respuesta a GeraldZ

hola @GeraldZ

Si es así, debe agregar una columna de índice / clasificación para la columna Cuenta para determinar qué Cuenta es anterior al mismo mes.

De lo contrario, ¿cómo se sabe que la cuenta anterior de «B» es «A» y no «D»?

Así que ajusta la fórmula de la siguiente manera:

Paso 1:

Cree una columna de índice / clasificación para la columna Cuenta.

Paso 2:

Measure 3 = 
VAR _lastvalue =
    CALCULATE (
        MAX ( 'Table'[Month] ),
        FILTER ( ALL ( 'Table' ), 'Table'[Month] < MAX ( 'Table'[Month] ) )
    )
var _lastAccount=
    CALCULATE (
        MAX ( 'Table'[Account] ),
        FILTER ( ALL ( 'Table' ), 'Table'[Index] < MAX ( 'Table'[Index]) )
    )
RETURN
    DIVIDE (
        CALCULATE ( SUM ( 'Table'[Value] ) ),
        CALCULATE (
            SUM ( 'Table'[Value] ),
            FILTER ( ALL ( 'Table' ), 'Table'[Month] = _lastvalue &&'Table'[Account]=_lastAccount)
        )
    )

Resultado:

1.JPG

aquí hay un nuevo archivo pbix, inténtelo.

Atentamente,

Lin

hola @GeraldZ

Prueba esta fórmula:

Measure 3 = 
VAR _lastvalue =
    CALCULATE (
        MAX ( 'Table'[Month] ),
        FILTER ( ALL ( 'Table' ), 'Table'[Month] < MAX ( 'Table'[Month] ) )
    )
RETURN
    DIVIDE (
        CALCULATE ( SUM ( 'Table'[Value] ) ),
        CALCULATE (
            SUM ( 'Table'[Value] ),
            FILTER ( ALL ( 'Table' ), 'Table'[Month] = _lastvalue )
        )
    )

Resultado:

2.JPG

aquí está el archivo pbix, inténtelo.

Atentamente,

Lin

GeraldZ

En respuesta a v-lili6-msft

Hola,

Esto funciona para el conjunto de datos más pequeño, pero si lo amplío un poco, no es así. El problema es que la cuenta cambia. Por favor, vea a continuación cuando utilizo su medida. Vea a continuación cómo se ve la medida si amplío el conjunto de datos.

Diagonal Calcv2.png

El cálculo debería ser el siguiente (este hecho en Excel)

Diagonal Calcv2 excel.png

¡Gracias por tu ayuda!

En respuesta a GeraldZ

hola @GeraldZ

Si es así, debe agregar una columna de índice / clasificación para la columna Cuenta para determinar qué Cuenta es anterior al mismo mes.

De lo contrario, ¿cómo se sabe que la cuenta anterior de «B» es «A» y no «D»?

Así que ajusta la fórmula de la siguiente manera:

Paso 1:

Cree una columna de índice / clasificación para la columna Cuenta.

Paso 2:

Measure 3 = 
VAR _lastvalue =
    CALCULATE (
        MAX ( 'Table'[Month] ),
        FILTER ( ALL ( 'Table' ), 'Table'[Month] < MAX ( 'Table'[Month] ) )
    )
var _lastAccount=
    CALCULATE (
        MAX ( 'Table'[Account] ),
        FILTER ( ALL ( 'Table' ), 'Table'[Index] < MAX ( 'Table'[Index]) )
    )
RETURN
    DIVIDE (
        CALCULATE ( SUM ( 'Table'[Value] ) ),
        CALCULATE (
            SUM ( 'Table'[Value] ),
            FILTER ( ALL ( 'Table' ), 'Table'[Month] = _lastvalue &&'Table'[Account]=_lastAccount)
        )
    )

Resultado:

1.JPG

aquí hay un nuevo archivo pbix, inténtelo.

Atentamente,

Lin

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *