Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.
Hola a todos,
(. Archivo PBIX incluido.)
Tengo una matriz con una medida SUMX dentro de que en un cierto nivel en la jerarquía (es decir: Año-Mes-Planta-Material-Ubicación) todo lo que está por debajo de cero se redondea a 0.
Esta medida muestra los valores correctos cuando la matriz se enrolla, sin embargo, cuando despliego la matriz a su nivel más bajo, veo que todos los registros negativos se redondean a 0. Solo deben redondear hasta 0 en un nivel superior.
A continuación muestro en verde muestro qué medida es la correcta:
La medida que utilizo actualmente para ignorar los valores negativos en el nivel de Año-Mes-Planta-Material-Ubicación
Closing Stock > 0 =
SUMX(
SUMMARIZE('Fact Inventory',
'DIM Calendar'[YearMonth]
,'Fact Inventory'[Plant]
,'Fact Inventory'[Material]
,'Fact Inventory'[Location]
)
,IF(
[Closing Stock] < 0
,0
,[Closing Stock]
)
)
La medida que muestra los valores que nos gustaría ver en el nivel de YearMonth-Plant-Material-Location-Batch (el nivel más profundo de la jerarquía)
Closing Stock =
SUM('Fact Inventory'[Stock])
El conjunto de datos en el que utilizamos estas medidas es la siguiente tabla:
AñoMenso | Budat_dtm | Planta | Material | Ubicación | Lote | Movement_Group | Acción |
2021-01 | 2021-01-04 | AUB1 | 11352 | NULO | R | -1150.750 | |
2021-01 | 2021-01-31 | AUB1 | 11352 | 1000 | R000022425 | C | -638.323 |
2021-01 | 2021-01-04 | AUB1 | 11352 | 1000 | R000022425 | C | -271.887 |
2021-01 | 2021-01-26 | AUB1 | 11352 | 1000 | R000022425 | C | -66.654 |
2021-01 | 2021-01-19 | AUB1 | 11352 | 1000 | R000022425 | R | 648.900 |
2021-01 | 2021-01-12 | AUB1 | 11352 | NULO | R | -525.550 | |
2021-01 | 2021-01-03 | AUB1 | 11352 | 1000 | R000022425 | C | -896.953 |
2021-01 | 2021-01-12 | AUB1 | 11352 | 1000 | R000022425 | R | 525.550 |
2021-01 | 2021-01-08 | AUB1 | 11352 | 1000 | R000022425 | R | 559.250 |
2021-01 | 2021-01-09 | AUB1 | 11352 | 1000 | R000022425 | C | -404.594 |
2021-01 | 2021-01-07 | AUB1 | 11352 | 1000 | R000022425 | C | -232.933 |
2021-01 | 2021-01-18 | AUB1 | 11352 | 1000 | R000022425 | C | -222.433 |
2021-01 | 2021-01-06 | AUB1 | 11352 | 1000 | R000022425 | C | -231.428 |
2021-01 | 2021-01-08 | AUB1 | 11352 | R000022425 | S | 525.550 | |
2021-01 | 2021-01-05 | AUB1 | 11352 | 1000 | R000022425 | C | -269.349 |
2021-01 | 2021-01-20 | AUB1 | 11352 | 1000 | R000022425 | C | -218.707 |
2021-01 | 2021-01-12 | AUB1 | 11352 | R000022425 | S | 724.250 | |
2021-01 | 2021-01-18 | AUB1 | 11352 | NULO | R | -724.250 | |
2021-01 | 2021-01-22 | AUB1 | 11352 | 1000 | R000022425 | R | 1001.100 |
2021-01 | 2021-01-24 | AUB1 | 11352 | 1000 | R000022425 | C | -724.731 |
2021-01 | 2021-01-21 | AUB1 | 11352 | 1000 | R000022425 | C | -146.519 |
2021-01 | 2021-01-03 | AUB1 | 11352 | 1000 | R000022425 | C | 60.000 |
2021-01 | 2021-01-08 | AUB1 | 11352 | NULO | R | -559.250 | |
2021-01 | 2021-01-18 | AUB1 | 11352 | R000022425 | S | 1001.100 | |
2021-01 | 2021-01-25 | AUB1 | 11352 | 1000 | R000022425 | C | -249.267 |
2021-01 | 2021-01-13 | AUB1 | 11352 | R000022425 | S | 648.900 | |
2021-01 | 2021-01-22 | AUB1 | 11352 | NULO | R | -1001.100 | |
2021-01 | 2021-01-04 | AUB1 | 11352 | 1000 | R000022425 | R | 1150.750 |
2021-01 | 2021-01-04 | AUB1 | 11352 | R000022425 | S | 559.250 | |
2021-01 | 2021-01-19 | AUB1 | 11352 | NULO | R | -648.900 | |
2021-01 | 2021-01-19 | AUB1 | 11352 | 1000 | R000022425 | C | -226.384 |
2021-01 | 2021-01-18 | AUB1 | 11352 | 1000 | R000022425 | R | 724.250 |
2021-01 | 2021-01-01 | AUB1 | 11352 | 1000 | R000022425 | OPENINGSTOCK | 1413.971 |
2021-01 | 2021-01-01 | AUB1 | 11352 | R000022425 | OPENINGSTOCK | 1150.750 | |
2021-01 | 2021-01-01 | AUB1 | 14001 | 9999 | R000033331 | R | 4000 |
2021-01 | 2021-01-01 | AUB1 | 14001 | 9999 | R000033332 | S | -5000 |
2021-01 | 2021-01-01 | AUB1 | 17005 | 5000 | R000066000 | R | 4000 |
2021-01 | 2021-01-01 | AUB1 | 17005 | 3000 | R000066000 | S | -5000 |
Estamos tratando con alrededor de 100 millones de discos, por lo que performance también es algo a tener en cuenta.
¿Hay alguna manera de revelar negativos en el nivel más profundo de una matriz, mientras se redondea hacia arriba en un nivel diferente?
Atentamente
Igor
Solved! Go to Solution.
@Titatovenaar2 debe la función ISINSCOPE para averiguar en qué nivel se encuentra y luego envolver su medida alrededor de él.
Closing Stock > 0 =
IF ( ISINSCOPE ( YourTable[Product] ), //you are at product level
[Closing Stock],
SUMX(
SUMMARIZE('Fact Inventory',
'DIM Calendar'[YearMonth]
,'Fact Inventory'[Plant]
,'Fact Inventory'[Material]
,'Fact Inventory'[Location]
)
,IF(
[Closing Stock] < 0
,0
,[Closing Stock]
)
)
)
Puede cambiar arriba si la condición que mejor le parezca.
Más información sobre el formato condicional en Microsoft Reactor
Mi última entrada de blog El poder de usar grupos de cálculo con relaciones inactivas (Parte 1) (perytus.com) Yo lo haría ❤ Elogios si mi solución ayudó. 👉 Si puede dedicar tiempo a publicar la pregunta, también puede hacer esfuerzos para felicitar a quien ayudó a resolver su problema. ¡Es una muestra de agradecimiento!
⚡ Visítenos en https://perytus.com, su ventanilla única para proyectos/formación/consultoría relacionados con Power BI.⚡
@Titatovenaar2 Genial. Me alegro de que haya funcionado, suscríbete a mi canal de YouTube donde publicaré consejos y trucos poco comunes. ¡¡Bien!!
Más información sobre el formato condicional en Microsoft Reactor
Mi última entrada de blog El poder de usar grupos de cálculo con relaciones inactivas (Parte 1) (perytus.com) Yo lo haría ❤ Elogios si mi solución ayudó. 👉 Si puede dedicar tiempo a publicar la pregunta, también puede hacer esfuerzos para felicitar a quien ayudó a resolver su problema. ¡Es una muestra de agradecimiento!
⚡ Visítenos en https://perytus.com, su ventanilla única para proyectos/formación/consultoría relacionados con Power BI.⚡
Funciona a las mil maravillas. Funcionalidad épica que aún no conocía. ¡Gracias por la rápida respuesta también!
@Titatovenaar2 debe la función ISINSCOPE para averiguar en qué nivel se encuentra y luego envolver su medida alrededor de él.
Closing Stock > 0 =
IF ( ISINSCOPE ( YourTable[Product] ), //you are at product level
[Closing Stock],
SUMX(
SUMMARIZE('Fact Inventory',
'DIM Calendar'[YearMonth]
,'Fact Inventory'[Plant]
,'Fact Inventory'[Material]
,'Fact Inventory'[Location]
)
,IF(
[Closing Stock] < 0
,0
,[Closing Stock]
)
)
)
Puede cambiar arriba si la condición que mejor le parezca.
Más información sobre el formato condicional en Microsoft Reactor
Mi última entrada de blog El poder de usar grupos de cálculo con relaciones inactivas (Parte 1) (perytus.com) Yo lo haría ❤ Elogios si mi solución ayudó. 👉 Si puede dedicar tiempo a publicar la pregunta, también puede hacer esfuerzos para felicitar a quien ayudó a resolver su problema. ¡Es una muestra de agradecimiento!
⚡ Visítenos en https://perytus.com, su ventanilla única para proyectos/formación/consultoría relacionados con Power BI.⚡