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.
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íveres | Grupo | Importe |
Manzana | Fruta | 3 |
Plátano | Fruta | 4 |
Kiwi | Fruta | 7 |
Patatas fritas | Bocadillo | 2 |
Chocolate | Bocadillo | 1 |
Pollo | Carne | 9 |
Solved! Go to Solution.
@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.
La medida es la siguiente:
Medida = SUMX ( VALORES ( tableFood[Group] ) , CALCULATE ( SUM ( tableFood[Amount] ) , ALLEXCEPT ( 'tableFood' , tableFood[Group] ) ) )
Todo lo mejor.
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!
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).
@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.
La medida es la siguiente:
Medida = SUMX ( VALORES ( tableFood[Group] ) , CALCULATE ( SUM ( tableFood[Amount] ) , ALLEXCEPT ( 'tableFood' , tableFood[Group] ) ) )
Todo lo mejor.
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.
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] ) ) )
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:
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!
@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.
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).
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".
@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.
La medida es la siguiente:
Measure =
SUMX (
VALUES ( tableFood[Group] ) ,
CALCULATE ( SUM ( tableFood[Amount] ) , ALLEXCEPT ( 'tableFood' , tableFood[Group] ) )
)
Todo lo mejor.
Seguir
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.
Esto te permitirá seleccionar el Grupo y la Fruta, devolviendo la Cantidad que estás después de 🙂
Espero que esto ayude.
Según 🙂
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |