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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Syndicate_Admin
Administrator
Administrator

Suma por selección individual y suma por grupo

Hola

Estoy tratando de mostrar un guión que se basa en la cortadora de alimentos. Una vez que se selecciona el alimento, me gustaría mostrar la cantidad de ese alimento específico y la cantidad en el grupo específico. Por ejemplo, si selecciono Apple, me gustaría que se mostraran los 3 para la cantidad de manzanas y 14 para la cantidad total de frutas. ¿Qué DAX tendría que usarse para actualizar el grupo en función de la selección de alimentos? Del mismo modo, si cambio la rebanadora a Chips, la cantidad de chips se actualiza correctamente a 2, pero ¿qué DAX usaría para que el grupo se actualice automáticamente a Snack y muestre el total de 3?

¡Gracias!

VíveresGrupoImporte
ManzanaFruta3
PlátanoFruta4
KiwiFruta7
Patatas fritasBocadillo2
ChocolateBocadillo1
PolloCarne9
1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

@kamil947,disculpas. Leí mal la parte que quería la "Suma del Grupo" en la otra Tarjeta.

Aunque @Kevin_Harper ha proporcionado una muy buena salida en términos de columnas calculadas, existe un desafío con el uso de esto para la salida, como se evidencia a continuación. El total de la columna calculada totaliza los importes a nivel de fila y, por lo tanto, puede sobreestimar el resultado real.

Recomiendo usar una Medida como la siguiente que proporciona la cantidad total de 26 cuando no se selecciona nada, pero también logra el subtotal de grupo en la propia imagen de la tarjeta.

TheoC_0-1634806133134.png

TheoC_1-1634806133135.png

La medida es la siguiente:

Medida = 

    SUMX ( 
        VALORES ( tableFood[Group] ) , 
        CALCULATE ( SUM ( tableFood[Amount] ) , ALLEXCEPT ( 'tableFood' , tableFood[Group] )
        ) )

Todo lo mejor.

View solution in original post

13 REPLIES 13
Syndicate_Admin
Administrator
Administrator

Creo que acabo de responder a esta pregunta yo mismo: agregaría una columna de fecha a la declaración ALLEXCEPT. Muchas gracias a todos. ¡Soporte brillante!

Syndicate_Admin
Administrator
Administrator

Este apoyo ha sido increíble, gracias a todos.

@TheoC Si quisiera agregar un aspecto de fecha a esto con una cortadora de dátiles y dátiles al lado de la comida, ¿cómo alteraría eso la medida que proporcionó?

@kamil947 Definitivamente recomiendo usar una tabla de fechas. Se pueden generar fácilmente utilizando DAX y el botón "Nueva tabla" en la cinta Modelo.

Aquí hay un enlace a una tabla DAX simple: https://www.sqlbi.com/articles/creating-a-simple-date-table-in-dax/

A partir de ahí, deberá agregar una columna adicional de datos a su tabla de hechos para permitir que la relevancia ocurra entre la tabla Fecha y la tabla Fact.

De lo contrario, puede agregar los datos de fecha a su tabla existente: simplemente no sería realmente una "práctica recomendada" y es posible que algunos enfoques estándar que usan DAX y fechas juntas no funcionen perfectamente (es decir, puede requerir soluciones alternativas y todo thT).

Syndicate_Admin
Administrator
Administrator

@kamil947,disculpas. Leí mal la parte que quería la "Suma del Grupo" en la otra Tarjeta.

Aunque @Kevin_Harper ha proporcionado una muy buena salida en términos de columnas calculadas, existe un desafío con el uso de esto para la salida, como se evidencia a continuación. El total de la columna calculada totaliza los importes a nivel de fila y, por lo tanto, puede sobreestimar el resultado real.

Recomiendo usar una Medida como la siguiente que proporciona la cantidad total de 26 cuando no se selecciona nada, pero también logra el subtotal de grupo en la propia imagen de la tarjeta.

TheoC_0-1634806133134.png

TheoC_1-1634806133135.png

La medida es la siguiente:

Medida = 

    SUMX ( 
        VALORES ( tableFood[Group] ) , 
        CALCULATE ( SUM ( tableFood[Amount] ) , ALLEXCEPT ( 'tableFood' , tableFood[Group] )
        ) )

Todo lo mejor.

Syndicate_Admin
Administrator
Administrator

Hay @kamil947 ,

Deberá crear una tabla de segmentación de datos independiente.

slicer = DISTINCT('Table'[Food])

Use esta tabla como rebanadora y luego cree dos medidas como las siguientes para el alimento y el grupo seleccionados.

food_amount = CALCULATE(SUM('Table'[Amount]),FILTER(ALL('Table'),'Table'[Food]=SELECTEDVALUE('slicer'[Food])))

group_amount = 
var _group = CALCULATE(MAX('Table'[Group]),FILTER(ALL('Table'),'Table'[Food]=SELECTEDVALUE(slicer[Food])))
return
CALCULATE(SUM('Table'[Amount]),FILTER(ALL('Table'),'Table'[Group]=_group))

El resultado se mostraría como se muestra a continuación.

Capture.PNG

Saludos

Arrendajo

@kamil947 solución mucho más fácil aquí:

La medida es la siguiente:

Medida = 

    SUMX ( 
        VALORES ( tableFood[Group] ) , 
        CALCULATE ( SUM ( tableFood[Amount] ) , ALLEXCEPT ( 'tableFood' , tableFood[Group] )
        ) )

Syndicate_Admin
Administrator
Administrator

Puede crear una columna en la tabla mediante la función ALLEXCEPT.

Intente crear esta columna en su tabla:

subtotales de grupo = CALCULATE(SUMA('Tabla'[Importe]), ALLEXCEPT('Tabla', 'Tabla'[Grupo]))

Aquí está el resultado:

Kevin_Harper_0-1634686409249.png

Syndicate_Admin
Administrator
Administrator

Este código DAX funciona teóricamente, pero parece que una tabla calculada no puede tomar valores dinámicos, por lo que no creo que esto sea posible en DAX. Si hay una solución para esto, ¡me gustaría saberlo!

Cantidad agrupada =
DÓNDE __GroupOnTheSameRow =
SELECTEDVALUE ( 'Tabla'[Grupo] ) <- esto no funcionará
"Fruta" // funciona con un valor fijo
DÓNDE __FilteredTable =
CALCULABLE ( 'Tabla', «Tabla» [Grupo] = __GroupOnTheSameRow )
DÓNDE __Amount =
SUMX (
RESUMIRCOLUMNAS ( __FilteredTable, "Cantidad", SUMA ( «Cuadro»[Importe] ) ),
[Cantidad]
)
DEVOLUCIÓN
__Amount
Si encuentras útil esta publicación, ¡por favor dale un thums!

@YukiK No estoy seguro de lo que su código pretende lograr. La cantidad se captura en la columna Cantidad y es tan simple como usar un objeto visual de segmentación de datos.

Syndicate_Admin
Administrator
Administrator

Hola @TheoC y gracias.

¿Hay de todos modos para tener la 'Comida' en la rebanadora sin tener que expandirse dentro del grupo y luego seleccionar la comida? Pregunto porque estoy buscando construir sobre esto y eventualmente expandir las agrupaciones.

Cuando selecciono Kiwi usando la configuración que me recomendaste, todavía tengo mis dos tarjetas mostrando el mismo conteo cuando me gustaría mostrar una como el recuento de alimentos para Kiwi (7) y la otra el recuento de frutas (14).

Capture33.JPG

Hay @kamil947

Simplemente elimine el "Grupo" de la rebanadora y podrá filtrar usando nombres de alimentos.

Además, en términos de las imágenes de su tarjeta, no estoy seguro de cómo está obteniendo esos números. ¿Arrastraste la "Cantidad" a un visual de la Tarjeta o intentaste crear medidas? Con lo que estás tratando de lograr, no necesitas medidas. Todo lo que necesita hacer es arrastrar el campo Cantidad a un visual de Tarjeta y asegurarse de tener el campo Cantidad como un tipo de datos "Número entero".

TheoC_0-1634602222974.png

@kamil947,disculpas. Leí mal la parte que quería la "Suma del Grupo" en la otra Tarjeta.

Aunque @Kevin_Harper ha proporcionado una muy buena salida en términos de columnas calculadas, existe un desafío con el uso de esto para la salida, como se evidencia a continuación. El total de la columna calculada totaliza los importes a nivel de fila y, por lo tanto, puede sobreestimar el resultado real.

Recomiendo usar una Medida como la siguiente que proporciona la cantidad total de 26 cuando no se selecciona nada, pero también logra el subtotal de grupo en la propia imagen de la tarjeta.

TheoC_1-1634693810217.png

TheoC_2-1634693982362.png

La medida es la siguiente:

Measure = 

    SUMX ( 
        VALUES ( tableFood[Group] ) , 
        CALCULATE ( SUM ( tableFood[Amount] ) , ALLEXCEPT ( 'tableFood' , tableFood[Group] ) )
        )

Todo lo mejor.

Seguir

Syndicate_Admin
Administrator
Administrator

Hay @kamil947

Si su tabla ya está estructurada de la manera en que la ha presentado, entonces no se necesita DAX.

Vaya al panel de elementos visuales y seleccione el objeto visual Slicer como se muestra a continuación y arrastre el campo Alimentos y grupos.

TheoC_2-1634599689215.png

Esto te permitirá seleccionar el Grupo y la Fruta, devolviendo la Cantidad que estás después de 🙂

Espero que esto ayude.

Según 🙂

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

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