Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
Syndicate_Admin
Administrator
Administrator

Haga algunos cálculos basados en el registro de fecha máxima para cada mes

¡Hola a todos!

Tengo una pequeña pregunta: tengo una tabla de ingresos con todos los meses / años actuales y pasados. Hay una columna donde se indica cuándo se rellenaron los registros en la tabla mencionada, al igual que una columna de "fecha de actualización". Estoy tratando de calcular la suma de la columna de ingresos, filtrada por un cierto tipo de producto (columna producto = 'producto A'). Pero, me gustaría obtener los registros solo para la última fecha de actualización / MAX de cada mes, eso significa que si en enero tuvimos 3 "fechas de actualización" (01/01; 01/10; 01/31), quiero sumar los ingresos solo para los registros de la última fecha de actualización en enero (31/01) y para el producto A (se aplican 2 filtros). Y me gustaría hacerlo para cada mes de cada año.

¿Algún consejo sobre cómo lograrlo?

¡Muchas gracias!

8 REPLIES 8
Syndicate_Admin
Administrator
Administrator

Hola

Veo la solución a esto de la siguiente manera:
1. Cree una columna MonthYear en la tabla de ingresos basada en la columna RefreshDate
2. Cree una clave RecordKey = Product+MonthYear en la tabla de ingresos

3. Cree una tabla resumida: Agrupar por RecordKey, MAX(RefreshDate)

4. Cree una columna en la tabla ingresos como LOOKUP para cada RecordKey y traiga MaxRefreshDate = MAX(RefreshDate) de la tabla resumida

5. Cree otra columna MaxRefreshDateFlag = si MaxRefreshDate = RefreshDate entonces 1 else 0

6. Utilice este indicador para obtener datos solo para las fechas de actualización máximas de cada producto y la fecha de corrección.

Por favor, haga saber si esto ayuda.

Syndicate_Admin
Administrator
Administrator

@GabrielQM ,

Consulte mi archivo pbix para ver si le ayuda.

Crea una medida.

Measure =
VAR _MONTH =
    MONTH ( MAX ( 'Table'[date] ) )
VAR _YEAR =
    YEAR ( MAX ( 'Table'[date] ) )
VAR _MACDATE =
    CALCULATE (
        MAX ( 'Table'[date] ),
        FILTER (
            ALL ( 'Table' ),
            'Table'[subject] = SELECTEDVALUE ( 'Table'[subject] )
                && MONTH ( MAX ( 'Table'[date] ) ) = _MONTH
                && YEAR ( MAX ( 'Table'[date] ) ) = _YEAR
        )
    )
RETURN
    CALCULATE (
        SUM ( 'Table'[VALUE] ),
        FILTER ( ALL ( 'Table' ), 'Table'[date] = _MACDATE )
    )

vpollymsft_0-1652943432010.png

Si he entendido mal su significado, proporcione más detalles con la salida deseada y más datos de muestra.

Saludos

Equipo de apoyo a la comunidad _ Polly

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

Hola @v-polly-msft ,

Gracias por todo el apoyo. Pero el objetivo final parece ser más fácil de lo que esperaba antes. Cuando llega la lista de ingresos, sobrescribe la existente para ese mes. Así que solo necesito calcular los ingresos para el mes real basado en otros 2 filtros y mantener todo el contexto de filtro restante. Lo que realmente me está molestando ahora es cuando no tengo información de ingresos para el mes real, necesito usar los ingresos del mes anterior como el valor para el mes real, y estoy bastante confundido sobre cómo resolverlo.

¡Gracias!

@GabrielQM ,

No puedo obtener exactamente lo que quiere decir, proporcione una muestra simple de los datos y la salida deseada (preferiblemente en forma de imagen, como la muestra que le proporciono).

Saludos

Equipo de apoyo a la comunidad _ Polly

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

Syndicate_Admin
Administrator
Administrator

Hola

Al objeto visual, arrastre el nombre Año y Mes desde la tabla Calendario. En la segmentación de datos, seleccione un producto determinado. Escribe estas medidas

Ingresos totales = suma(Datos[Ingresos])

Última fecha hasta la cual los ingresos están disponibles = max(Data[Date])

Ingresos como en la última fecha = calcular([Ingresos],fechas entre(calendario[fecha],[Última fecha hasta la cual los ingresos están disponibles],[Última fecha hasta la cual los ingresos están disponibles]))

Espero que esto ayude.

Syndicate_Admin
Administrator
Administrator
Syndicate_Admin
Administrator
Administrator

@GabrielQM , lastnonblankvalue puede ayudar

lastnonblankvalue([Fecha de actualización], suma(Tabla[Ingresos]))

Puede usar allexcept para eliminar algún otro filtro en contexto

calculate(lastnonblankvalue([Refresh Date], sum(Table[Revenue])) , allexcept (Table, Table[Product], Table[Month Year]))

¡Hola!

¿Qué pasa si quiero aumentar al mes real el valor del mes anterior si los ingresos del mes real aún no se han actualizado?

Me gustaría obtener todo el mes anterior de la misma manera, pero si el mes real aún no se ha llenado con la información de los ingresos, me gustaría ingresar a la medida el último valor disponible.

Gracias

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors