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
adhumal2
Helper III
Helper III

Diferencia entre los valores de columna en Matrix Visual

Estimados expertos,

Tengo 2 archivos de datos para el mes Mar y Abr. Quiero crear una matriz visual en la que debería ser capaz de calcular la diferencia entre 2 columnas en la matriz visual

Así es como se ven los datos tanto para Meses como para la salida esperada:

Mar -20

Capture1.PNGMarzo

Abr -20

Capture2.PNGAbril

Producción esperada

Capture3.PNGProducción esperada

En PowerBI, añado datos de mar y abril y creé un objeto visual de matriz con 'Negocio' en filas y 'Meses' en columnas y 'Unidades de ventas' y 'Valor de ventas' en los valores. Ahora quiero calcular a continuación:

  • Diferencia entre 2 meses para las Unidades de Ventas
  • Diferencia entre 2 meses por valor de ventas

Además

¿Hay una mejor solución disponible para el problema anterior que Matrix Visual?

He adjuntado el archivo de ejemplo. https://drive.google.com/file/d/1PkgPWGSLuVS1eS0dXupZ8EmDh-lXJRW-/view?usp=sharing

Por favor, ayuda. ¡Muchas gracias!

1 ACCEPTED SOLUTION
Icey
Community Support
Community Support

Hola @adhumal2 ,

¿Qué te parece esto?

1. Introduzca los datos.

Tabla SalesColumn:

SalesColumn.PNG

DiffTable:

diff.PNG

2. Cree una tabla.

MonthTable = UNION ( VALUES ( 'Mar 20'[Month ] ), DiffTable )

monthtable.PNG

3. Crear medidas.

Diff_Sales_Units = 
VAR MaxDate =
    MAXX ( VALUES ( 'Mar 20'[Month ] ), [Month ] )
VAR MinDate =
    MINX ( VALUES ( 'Mar 20'[Month ] ), [Month ] )
RETURN
    CALCULATE (
        SUM ( 'Mar 20'[Sales Units] ),
        FILTER ( 'Mar 20', 'Mar 20'[Month ] = MaxDate )
    )
        - CALCULATE (
            SUM ( 'Mar 20'[Sales Units] ),
            FILTER ( 'Mar 20', 'Mar 20'[Month ] = MinDate )
        )
Diff_Sales_Value = 
VAR MaxDate =
    MAXX ( VALUES ( 'Mar 20'[Month ] ), [Month ] )
VAR MinDate =
    MINX ( VALUES ( 'Mar 20'[Month ] ), [Month ] )
RETURN
    CALCULATE (
        SUM ( 'Mar 20'[Sales Value] ),
        FILTER ( 'Mar 20', 'Mar 20'[Month ] = MaxDate )
    )
        - CALCULATE (
            SUM ( 'Mar 20'[Sales Value] ),
            FILTER ( 'Mar 20', 'Mar 20'[Month ] = MinDate )
        )
Measure = 
IF (
    MAX ( MonthTable[Month ] ) <> "Difference",
    SWITCH (
        MAX ( SalesColumn[SalesColumn] ),
        "Sales Units", CALCULATE (
            SUM ( 'Mar 20'[Sales Units] ),
            FILTER (
                'Mar 20',
                'Mar 20'[Month ] = CONVERT ( SELECTEDVALUE ( MonthTable[Month ] ), DATETIME )
            )
        ),
        "Sales Value", CALCULATE (
            SUM ( 'Mar 20'[Sales Value] ),
            FILTER (
                'Mar 20',
                'Mar 20'[Month ] = CONVERT ( SELECTEDVALUE ( MonthTable[Month ] ), DATETIME )
            )
        )
    ),
    IF (
        MAX ( MonthTable[Month ] ) = "Difference",
        SWITCH (
            MAX ( SalesColumn[SalesColumn] ),
            "Sales Units", [Diff_Sales_Units],
            "Sales Value", [Diff_Sales_Value]
        )
    )
)

4. Cree un objeto visual Matrix.

matrix.PNGstep.PNG

BTW, archivo .pbix adjunto.

Saludos

Icey

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

View solution in original post

7 REPLIES 7
Icey
Community Support
Community Support

Hola @adhumal2 ,

¿Qué te parece esto?

1. Introduzca los datos.

Tabla SalesColumn:

SalesColumn.PNG

DiffTable:

diff.PNG

2. Cree una tabla.

MonthTable = UNION ( VALUES ( 'Mar 20'[Month ] ), DiffTable )

monthtable.PNG

3. Crear medidas.

Diff_Sales_Units = 
VAR MaxDate =
    MAXX ( VALUES ( 'Mar 20'[Month ] ), [Month ] )
VAR MinDate =
    MINX ( VALUES ( 'Mar 20'[Month ] ), [Month ] )
RETURN
    CALCULATE (
        SUM ( 'Mar 20'[Sales Units] ),
        FILTER ( 'Mar 20', 'Mar 20'[Month ] = MaxDate )
    )
        - CALCULATE (
            SUM ( 'Mar 20'[Sales Units] ),
            FILTER ( 'Mar 20', 'Mar 20'[Month ] = MinDate )
        )
Diff_Sales_Value = 
VAR MaxDate =
    MAXX ( VALUES ( 'Mar 20'[Month ] ), [Month ] )
VAR MinDate =
    MINX ( VALUES ( 'Mar 20'[Month ] ), [Month ] )
RETURN
    CALCULATE (
        SUM ( 'Mar 20'[Sales Value] ),
        FILTER ( 'Mar 20', 'Mar 20'[Month ] = MaxDate )
    )
        - CALCULATE (
            SUM ( 'Mar 20'[Sales Value] ),
            FILTER ( 'Mar 20', 'Mar 20'[Month ] = MinDate )
        )
Measure = 
IF (
    MAX ( MonthTable[Month ] ) <> "Difference",
    SWITCH (
        MAX ( SalesColumn[SalesColumn] ),
        "Sales Units", CALCULATE (
            SUM ( 'Mar 20'[Sales Units] ),
            FILTER (
                'Mar 20',
                'Mar 20'[Month ] = CONVERT ( SELECTEDVALUE ( MonthTable[Month ] ), DATETIME )
            )
        ),
        "Sales Value", CALCULATE (
            SUM ( 'Mar 20'[Sales Value] ),
            FILTER (
                'Mar 20',
                'Mar 20'[Month ] = CONVERT ( SELECTEDVALUE ( MonthTable[Month ] ), DATETIME )
            )
        )
    ),
    IF (
        MAX ( MonthTable[Month ] ) = "Difference",
        SWITCH (
            MAX ( SalesColumn[SalesColumn] ),
            "Sales Units", [Diff_Sales_Units],
            "Sales Value", [Diff_Sales_Value]
        )
    )
)

4. Cree un objeto visual Matrix.

matrix.PNGstep.PNG

BTW, archivo .pbix adjunto.

Saludos

Icey

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

amitchandak
Super User
Super User

@adhumal2 , no hay nada como diferencia entre dos columnas que tiene que crear diff entre mes como

MTD Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESMTD('Date'[Date]))
last MTD Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESMTD(dateadd('Date'[Date],-1,MONTH)))
last MTD (complete) Sales =  CALCULATE(SUM(Sales[Sales Amount]),DATESMTD(ENDOFMONTH(dateadd('Date'[Date],-1,MONTH))))
diff = [MTD Sales]-[last MTD Sales]

Puede utilizar esta medida como diferencia

Para obtener lo mejor de la función de inteligencia de tiempo. Asegúrese de que tiene un calendario de fechas y se ha marcado como la fecha en la vista de modelo. Además, únase a él con la columna de fecha de su hecho/s. Consulte:
https://radacad.com/creating-calendar-table-in-power-bi-using-dax-functions
https://www.archerpoint.com/blog/Posts/creating-date-table-power-bi
https://www.sqlbi.com/articles/creating-a-simple-date-table-in-dax/

Vea si mi seminario web sobre Time Intelligence puede ayudar: https://community.powerbi.com/t5/Webinars-and-Video-Gallery/PowerBI-Time-Intelligence-Calendar-WTD-Y...


Aprecia tus Felicitaciones.

@amitchandak - Gracias por su respuesta.

Usé la fórmula anterior MTD Sales, pero me devuelve una columna en blanco en el objeto visual. Además, puede explicarme también como por qué ha mencionado la fórmula para las últimas ventas de MTD (completa)

@adhumal2 , ¿Está la tabla de fechas y el año del mes en visual de esa tabla de fechas?

MTD completo para el caso en el que elija una fecha a mediados de mes y desee que el mes pasado esté completo

@amitchandak Sí, tengo una mesa de citas lista.

Además, en las columnas tengo - valores de mes actuales y valores de mes anterior basados en la medida creada. No tengo meses a partir de la tabla de citas en el visual.

Si creo una medida como -

Mes actual CALCULATE(SUM(Append1[Sales Value (CHF)]),FILTER(Append1,Append1[Month]-MAX(Append1[Month])))

Mes anterior• CALCULATE(SUM(Append1[Sales Value (CHF)]),FILTER(Append1,Append1[Month]-MIN(Append1[Month])))

Funciona, pero quiero seguir su solución para verificar estos detalles

@adhumal2 , ¿Puede compartir datos de muestra y salida de muestra en formato de tabla? O un pbix de muestra después de eliminar datos confidenciales.

@amitchandak- Claro, aquí entched es el ejemplo de datos y la salida esperada (en las hojas de Excel). Muchas gracias de antemano por sus amables esfuerzos.

https://drive.google.com/file/d/1PkgPWGSLuVS1eS0dXupZ8EmDh-lXJRW-/view?usp=sharing

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