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 a todos,
mis datos contienen una jerarquía desequilibrada o desequilibrada. Las tiendas de mi jerarquía contienen muchas entradas. Las relaciones matemáticas en esta jerarquía a veces son muy complejas. Por lo tanto, no quiero que Power BI agregue los valores automáticamente. En su lugar, mis datos contienen los valores correctos paracadar nodo. En consecuencia, mi tabla (simplificada) tiene este aspecto:
H_ID | Nivel 1 | Nivel2 | Nivel 3 | Nivel 4 | Nivel 5 | Valor | Lvl |
1 | Europa |
|
|
|
| 0 | 1 |
2 | Europa | Medio |
|
|
| 1 | 2 |
3 | Europa | Medio | Alemania |
|
| 1 | 3 |
4 | Europa | Medio | Alemania | Tienda1 |
| 2 | 4 |
5 | Europa | Medio | Alemania | Tienda2 |
| 3 | 4 |
6 | Europa | Medio | Alemania | Tienda2 | 1 | 5 | 5 |
7 | Europa | Medio | Alemania | Tienda2 | 2 | 8 | 5 |
8 | Asia |
|
|
|
| 13 | 1 |
9 | Asia | China |
|
|
| 21 | 2 |
10 | Asia | China | Tienda3 |
|
| 34 | 3 |
11 | Asia | China | Tienda3 | 3 |
| 55 | 4 |
12 | Asia | China | Tienda3 | 4 |
| 89 | 4 |
Ya he encontrado una solución de cómo mostrar la jerarquía con los valores correctos en un objeto visual de matriz aplicando dos DAX-measure:
Suma de valores : SUM('hierarchy_with_leafs (antiguo)'[Valor])
Valores de visualización a var level1 - CALCULATE([Suma de valores], 'hierarchy_with_leafs (antiguo)'[Lvl]-1)
var level2 - CALCULATE([Suma de valores], 'hierarchy_with_leafs (antiguo)'[Lvl]-2)
var level3 - CALCULATE([Suma de valores], 'hierarchy_with_leafs (antiguo)'[Lvl]-3)
var level4 - CALCULATE([Suma de valores], 'hierarchy_with_leafs (antiguo)'[Lvl]-4)
var level5 - CALCULATE([Suma de valores], 'hierarchy_with_leafs (antiguo)'[Lvl]-5)
var level1selected á ISINSCOPE('hierarchy_with_leafs (antiguo)'[Level1])
var level2selected á ISINSCOPE('hierarchy_with_leafs (antiguo)'[Level2])
var level3selected á ISINSCOPE('hierarchy_with_leafs (antiguo)'[Level3])
var level4selected á ISINSCOPE('hierarchy_with_leafs (antiguo)'[Level4])
var level5selected á ISINSCOPE('hierarchy_with_leafs (antiguo)'[Level5])
devolver SWITCH( TRUE(),
nivel5seleccionado, nivel5,
nivel4seleccionado, nivel4,
nivel3seleccionado, nivel 3,
nivel2seleccionado, nivel2,
nivel 1seleccionado, nivel1,
"")
Esto me lleva al siguiente resultado correcto:
Los números (1,2,3,4) en Store2 y Store3 representan algunas entradas. En mis datos reales pueden aparecer varias entradas de 1.000 por tienda. Además, hay muchos niveles (20 euros). Por lo tanto, esta mesa se vuelve muy grande. Para no tener que guardar la jerarquía completa para cada entrada (produce una gran cantidad de sobrecarga) he pensado en un esquema de datos más eficiente con tres tablas:
1. Una jerarquía-tabla que almacena la jerarquía hasta las entradas (tal vez no necesito estas "entradas"-filas con Hierarchy-ID 6 y 10 en absoluto, pero no estoy seguro):
Hierarchy_ID | Nivel 1 | Nivel2 | Nivel 3 | Nivel 4 | Nivel 5 |
1 | Europa |
|
|
|
|
2 | Europa | Medio |
|
|
|
3 | Europa | Medio | Alemania |
|
|
4 | Europa | Medio | Alemania | Tienda1 |
|
5 | Europa | Medio | Alemania | Tienda2 |
|
6 | Europa | Medio | Alemania | Tienda2 | Entradas |
7 | Asia |
|
|
|
|
8 | Asia | China |
|
|
|
9 | Asia | China | Tienda3 |
|
|
10 | Asia | China | Tienda3 | Entradas |
|
2. Una tabla de entrada de hojas que contiene mis entradas:
Leaf_ID | Descripción de la entrada |
1 | text1 |
2 | text2 |
3 | text3 |
4 | text4 |
3. Una tabla de hechos que contiene un mapeo:
Valor | Hierarchy_ID | Leaf_ID | Nivel |
0 | 1 | 0 | 1 |
1 | 2 | 0 | 2 |
1 | 3 | 0 | 3 |
2 | 4 | 0 | 4 |
3 | 5 | 0 | 4 |
5 | 6 | 1 | 5 |
8 | 6 | 2 | 5 |
13 | 7 | 0 | 1 |
21 | 8 | 0 | 2 |
34 | 9 | 0 | 3 |
55 | 10 | 3 | 4 |
89 | 10 | 4 | 4 |
Si aplico las medidas mostradas anteriormente: Obtengo el siguiente resultado incorrecto. Donde se muestran todas mis entradas agregadas:
Mi pregunta ahora es, ¿cómo puedo ajustar mi modelo de datos o fórmula DAX para obtener el resultado correcto de la primera captura de pantalla.
Aquí está un enlace a mi archivo Power Bi de ejemplo: https://www.dropbox.com/s/k90icsqa9i8hd0c/sample.pbix?dl=0
Gracias de antemano.
framas
Solved! Go to Solution.
@framas Sí, no es tan sencillo como simplemente agregar orden a las "filas", ya que como ha dicho que los niveles no siempre son los mismos y no hay nada en la medida o datos que indiquen a Power BI cómo conectar el pedido a la jerarquía.
Me has sorprendido en esto, sin conocer las complejas fórmulas que crean esta jerarquía compleja, no puedo pensar en una manera de simplificar el modelo de datos. Tampoco estoy seguro de que el método de tres tablas sea más simple dado que cada número de pedido es único en todas las tiendas. En un modelo de datos de ejemplo estándar, tendría una tabla para todas sus tiendas y otra para todos sus pedidos, y acumular/SUMAR la jerarquía para el país, la región, etc., pero ha dicho que esto no funcionará en su conjunto de datos?
Copying DAX from this post? Click here for a hack to quickly replace it with your own table names
Has this post solved your problem? Please Accept as Solution so that others can find it quickly and to let the community know your problem has been solved.
If you found this post helpful, please give Kudos C
I work as a Microsoft trainer and consultant, specialising in Power BI and Power Query.
www.excelwithallison.com
@framas Sí, no es tan sencillo como simplemente agregar orden a las "filas", ya que como ha dicho que los niveles no siempre son los mismos y no hay nada en la medida o datos que indiquen a Power BI cómo conectar el pedido a la jerarquía.
Me has sorprendido en esto, sin conocer las complejas fórmulas que crean esta jerarquía compleja, no puedo pensar en una manera de simplificar el modelo de datos. Tampoco estoy seguro de que el método de tres tablas sea más simple dado que cada número de pedido es único en todas las tiendas. En un modelo de datos de ejemplo estándar, tendría una tabla para todas sus tiendas y otra para todos sus pedidos, y acumular/SUMAR la jerarquía para el país, la región, etc., pero ha dicho que esto no funcionará en su conjunto de datos?
Copying DAX from this post? Click here for a hack to quickly replace it with your own table names
Has this post solved your problem? Please Accept as Solution so that others can find it quickly and to let the community know your problem has been solved.
If you found this post helpful, please give Kudos C
I work as a Microsoft trainer and consultant, specialising in Power BI and Power Query.
www.excelwithallison.com
@AllisonKennedy Sólo en el nivel más bajo de las órdenes se permitiría la agregación automática (la suma de los pedidos da el valor para la tienda). Pero por encima de ese nivel, el sistema no debe agregarse automáticamente.
Tal vez podría quitar los valores agregados para los almacenes del conjunto de datos y agregar una columna adicional "IS_Leaf" (Boolean). Entonces podría comprobar el valor del campo. Si el valor es AGREGADO TRUE, utilice de lo contrario mi expresión de fórmula anterior (DisplayOfValues).
Desafortunadamente no sé si y cómo traducir esto en una fórmula DAX o si es posible.
HOLA @framas,
¿Ha visto el siguiente blog sobre el identificador de jerarquía de elementos primarios y secundarios y los ha transformado en la estructura jerárquica general? Probablemente ayuda con su escenario.
Jerarquías padre-hijo
Después de reconstruir la estructura jerárquica, las funciones de agregado de matriz predeterminadas pueden trabajar con ellas.
saludos
Xiaoxin Sheng
@framas Usted necesita de alguna manera agregar la 'hoja' a las filas de la matriz, por lo que esto sería 'descripción de hoja' supongo en su escenario de muestra? para poder hacer esto, debe ser un esquema de copo de nieve, por lo que debe tener jerarquía conectada a la hoja conectada a hechos. Sus datos de ejemplo son demasiado abstractos para mí para conectar los puntos y proporcionar más ejemplos - ¿son las entradas de hoja las mismas para todas las jerarquías, o diferentes para cada una?
Copying DAX from this post? Click here for a hack to quickly replace it with your own table names
Has this post solved your problem? Please Accept as Solution so that others can find it quickly and to let the community know your problem has been solved.
If you found this post helpful, please give Kudos C
I work as a Microsoft trainer and consultant, specialising in Power BI and Power Query.
www.excelwithallison.com
Las hojas en mi jerarquía son las órdenes de una tienda. Los pedidos de una tienda pueden variar de una tienda a la tienda, por lo que no son idénticos para todas las tiendas. He adaptado el post y el powerbi-file en consecuencia, para que sea más claro.
Ya he intentado añadir el orden a las "filas" del objeto visual de matriz. Pero eso no funcionó. Otro problema es que la jerarquía está desequilibrada. Por ejemplo, las órdenes pueden aparecer en el nivel 5, así como en el nivel 4 de la jerarquía. Esto tiene la consecuencia de que tengo nodos mostrados sin texto.
Espero que esto te ayude y haga que mi ejemplo sea un poco más comprensible.
Gracias por la ayuda
Marcos
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 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |