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

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Syndicate_Admin
Administrator
Administrator

Cómo obtener la diferencia entre dos columnas en Matrix en función de la selección de segmentación de datos de Año en Power Bi

Difference.PNG

1 ACCEPTED SOLUTION

Hola @SivaSai333
Aquí tienes https://www.dropbox.com/t/sMyzwonHckNHvdKX
El código original de measure sigue siendo el mismo

Measure = COUNTROWS ( DISTINCT ('Table'[Value] ) )

El nuevo código de medida es

Measure1 = 
VAR MaxYear = MAX ( 'Table'[Year] )
VAR MinYear = MIN ( 'Table'[Year] )
VAR MaxYearValue =
    CALCULATE ( 
        [Measure],
        'Table'[Year] = MaxYear
    )
VAR MinYearValue =
    CALCULATE ( 
        [Measure],
        'Table'[Year] = MinYear
    )
VAR Difference = MaxYearValue - MinYearValue
VAR Result =
    SWITCH (
        TRUE,
        NOT HASONEVALUE ( 'Table'[Year] ), Difference,
        COUNTROWS ( ALLSELECTED ('Table'[Year] ) ) = 1, BLANK(),
        [Measure]
    )
RETURN
    Result 

View solution in original post

13 REPLIES 13
Syndicate_Admin
Administrator
Administrator

Hola @SivaSai333

Consulte este archivo de ejemplo https://www.dropbox.com/t/34kVadAA9Yb40CUO
En realidad, no se puede agregar una nueva medida al objeto visual de la matriz. Si lo hace, verá dos valores debajo de cada año. Por lo tanto, la única opción es crear una nueva medida que se construya sobre la original, jugando con el código para ver la diferencia en la columna Total como esta.
Untitled.png

Este es el código: Nota: [Medida] es su medida original

Measure1 = 
VAR MaxYear = MAX ( 'Table'[Year] )
VAR MinYear = MIN ( 'Table'[Year] )
VAR MaxYearValue =
    CALCULATE ( 
        [Measure],
        'Table'[Year] = MaxYear
    )
VAR MinYearValue =
    CALCULATE ( 
        [Measure],
        'Table'[Year] = MinYear
    )
VAR Difference = MaxYearValue - MinYearValue
VAR Result =
    SWITCH (
        TRUE,
        NOT HASONEVALUE ( 'Table'[Year] ), Difference,
        COUNTROWS ( ALLSELECTED ('Table'[Year] ) ) = 1, BLANK(),
        [Measure]
    )
RETURN
    Result 

Gracias por su solución.
Una cosa es que la columna de valores en su Pbix son números como 10, 20 26, pero mi requisito es, la columna de valores es códigos como b010, c350, d6f, ng6. Los clasifiqué como Conteo distinto. Así que parecen números en mi archivo adjunto. Creo que el DAX es casi correcto. ¿Puede modificar dax usando mi escenario ?
Gracias por tan buena ayuda.

Simplemente puede referir el nombre de su medida en lugar de [Medida] y debería funcionar. De lo contrario, puede enviar su archivo con un dato de muestra y lo haré por usted.
Si está satisfecho, marque mi respuesta como solución aceptada. Los kudos también son apreciados.

community.PNG
Reemplacé los valores con códigos. Mi requisito es verse así. Los clasifiqué como conteo distinto (de herramientas de columna). Lo que quiero es exactamente como su salida. La medida 1 es exactamente corect. Creo que necesitamos modificar la Medida, con códigos (Distinct Count). Por favor, modifique el dax .,Funcionaría bien. No puedo enviar el archivo .
¡Elogios!
Gracias por su rápida respuesta

Hola @SivaSai333
Aquí tienes https://www.dropbox.com/t/sMyzwonHckNHvdKX
El código original de measure sigue siendo el mismo

Measure = COUNTROWS ( DISTINCT ('Table'[Value] ) )

El nuevo código de medida es

Measure1 = 
VAR MaxYear = MAX ( 'Table'[Year] )
VAR MinYear = MIN ( 'Table'[Year] )
VAR MaxYearValue =
    CALCULATE ( 
        [Measure],
        'Table'[Year] = MaxYear
    )
VAR MinYearValue =
    CALCULATE ( 
        [Measure],
        'Table'[Year] = MinYear
    )
VAR Difference = MaxYearValue - MinYearValue
VAR Result =
    SWITCH (
        TRUE,
        NOT HASONEVALUE ( 'Table'[Year] ), Difference,
        COUNTROWS ( ALLSELECTED ('Table'[Year] ) ) = 1, BLANK(),
        [Measure]
    )
RETURN
    Result 

Muchas gracias Tamerj1 .
Te mereces ser un súper usuario.
¡Elogios! ¡Elogios!

Syndicate_Admin
Administrator
Administrator

Solución de muestra según sus requisitos.

Aditya_Meshram_1-1644422414529.pngAditya_Meshram_2-1644422436093.png

Aditya_Meshram_4-1644422507125.pngAditya_Meshram_5-1644422528153.png

Archivo .pbix adjunto.

https://nicesoftwaresolutions1-my.sharepoint.com/:u:/g/personal/ameshram_nicesoftwaresolutions_com/E...

Saludos

Aditya

Syndicate_Admin
Administrator
Administrator

Solución de muestra según sus requisitos.

Aditya_Meshram_1-1644422414529.pngAditya_Meshram_2-1644422436093.png

Aditya_Meshram_4-1644422507125.pngAditya_Meshram_5-1644422528153.png

Archivo .pbix adjunto.

https://nicesoftwaresolutions1-my.sharepoint.com/:u:/g/personal/ameshram_nicesoftwaresolutions_com/E...

Saludos

Aditya

Syndicate_Admin
Administrator
Administrator

@SivaSai333 @ibarrau subproceso movido al foro DAX

Syndicate_Admin
Administrator
Administrator

Hola. Creo que esta es una pregunta para el foro DAX. De todos modos. En este caso, tienes años. Eso podría ayudarlo a crear una selección matemática que incluya la selección actual y el año pasado. Puedes hacer una medida como esta:

Measure = 
_current = CALCULATE ( SUM(Table[Value]) )
_last_year = CALCULATE ( SUM(Table[Value]) , SAMEPERIODLASTYEAR(Calendar[Date]) )
RETURN
_current - _last_year

Para hacer ese cálculo, necesita un calendario o una tabla de fechas que lo ayude a obtener cálculos de inteligencia de tiempo. Esa sería la mejor práctica, pero si no le gusta la idea, puede usar SELECTEDVALUE para obtener el año actual y simplemente hacer -1 en el contexto del filtro _last_year en lugar de SAMEPERIODLASTYEAR. De esa manera, cuando filtras un año, puedes obtener la última diferencia. Si no filtras, intentará representar diferencias con el año pasado para cada año en la matriz. La medida no tendrá sentido si la agregas en un visual sin un período de tiempo.

Espero que eso ayude,

Gracias por su respuesta Ibbarau,
Mis valores son en realidad códigos (como m124, b016, cd56). Los clasifiqué como Conteo distinto. así que cuando uso SUM el DAX no funciona.
Si necesitas alguna información. Por favor, pregunte.
Gracias

De acuerdo. Si los números de los campos son distintos de las categorías, puede reemplazar la SUMA de la medida que he enviado con la función DISTINCTCOUNT en DAX.

Espero que funcione

Gracias por su solución
También escribí un dax que funcionó

Medida =
DÓNDE X = CALCULAR(DISTINCTCOUNT(tabla[ Código]),FILTRO(tablamesa[Año]=MIN(tabla[Año])))
Dónde y =CALCULAR(DISTINCTCOUNT(tabla[Código]),FILTRO(tabla mesa[Año]=MÁXIMO(tabla[Año])))
Devolución
y-X
pero el mismo dax no funciona para la columna calculada. Por qué. ¿Puedes explicarlo?
¿Puede escribir Dax adecuado para la columna calculada?

Muchas gracias.

Helpful resources

Announcements
RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

MayPowerBICarousel

Fabric Monthly Update - May 2024

Check out the May 2024 Fabric update to learn about new features.

LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.