Filtro dinámico en la medida de costos de este mes frente a la del mes pasado

Un usuario Pregunto ✅

MrHankey

Estoy usando una fuente de datos simple con Cost y YearMonth en formato numérico «20191, 20192, 20193». Quiero una medida dinámica de «Costo de este mes» y «Costo del último mes» que se actualice todos los meses.

He creado dos medidas «Este mes» y «Mes anterior»:

Este mes = MAX (Hoja1[YearMonth])

Mes pasado = [This Month] -1
Y luego creé las medidas de costo, donde las de códigos duros funcionan perfectamente. Sin embargo, necesito que sean dinámicos.
Así que esta medida codificada funciona bien:
1. Costo de este mes = CALCULAR (SUMA (Hoja1[Cost]), Hoja1[YearMonth] = 20192)
Esta medida dinámica utilizando el [This Month] medida es resumir todos los costos en la tabla en lugar de filtrar:
2. Costo de este mes = CALCULAR( SUM (Hoja1[Cost]), FILTRO (Hoja1, Hoja1[YearMonth] = [This Month]))
La medida Costo del último mes no me proporciona ningún dato. Pero por alguna razón cuando cambio el [Last Month] medida a un «20191» codificado de forma rígida, esta medida está funcionando como se esperaba:
3. Costo del mes pasado = CALCULAR (SUM (Hoja1[Cost]), FILTRO (Hoja1, Hoja1[YearMonth] = [Last Month]))
Entonces, ¿qué está pasando aquí? ¿Puedo crear estas medidas de costo usando un filtro dinámico con mis valores YearMonth?
¡Gracias!

MrHankey

Gracias chicos, fue tan fácil como esto:

Costo este mes =
CALCULAR(
[Cost],
FILTRAR(
‘Calendario’,
‘Calendario'[YearMonth] = MAX (‘Calendario'[YearMonth])))

MrHankey

y

Costo el mes pasado =
CALCULAR(
[Cost],
FILTRAR(
‘Calendario’,
‘Calendario'[YearMonth] = MAX (‘Calendario'[YearMonth]) -1))

MrHankey

Gracias chicos, fue tan fácil como esto:

Costo este mes =
CALCULAR(
[Cost],
FILTRAR(
‘Calendario’,
‘Calendario'[YearMonth] = MAX (‘Calendario'[YearMonth])))

Ashish_Mathur

Hola,

Tendremos que crear una columna Fecha a partir de la columna Año Mes. Luego crearemos una tabla de calendario y crearemos una relación desde la columna de fecha de su hoja de datos base a la columna de fecha de su tabla de calendario. En la tabla de calendario, escribiremos fórmulas de columna calculadas para extraer el año y el mes. Una vez hecho esto, podemos escribir medidas simples para obtener el resultado deseado.

v-piga-msft

Hola @MrHankey,

Suponiendo que tiene la muestra de datos como la siguiente.

muestra de datos.PNG

Entonces podrías crear la medida a continuación. Puede modificar la medida en función de sus necesidades reales.

Measure =
CALCULATE (
    SUM ( 'Table1'[Cost] ),
    FILTER ( 'Table1', 'Table1'[YearMonth] = MAX ( 'Table1'[YearMonth] ) )
)
Measure 2 =
CALCULATE (
    SUM ( Table1[Cost] ),
    FILTER (
        ALLSELECTED ( 'Table1' ),
        'Table1'[YearMonth]
            = IF (
                RIGHT ( FORMAT ( MAX ( 'Table1'[YearMonth] ), "" ), 1 ) = "1",
                BLANK (),
                MAX ( 'Table1'[YearMonth] ) - 1
            )
    )
)

Aquí está la salida.

Capture.PNG

Atentamente,

cereza

Deja un comentario

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