March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early bird discount ends December 31.
Register NowBe one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now
Tengo mis datos estructurados como se muestra a continuación en una tabla contractProducts, que proporciona cada combinación de contrato y producto, así como el producto anterior para cada contrato (cada contrato puede tener más de un producto).
contract_id | product_id | previous_product_id |
1 | 1 | 1 |
2 | 2 | 1 |
2 | 3 | 3 |
3 | 3 | 2 |
4 | 1 | 3 |
5 | 3 | 1 |
6 | 2 | 3 |
6 | 1 | 2 |
7 | 3 | 3 |
8 | 1 | 1 |
9 | 1 | 2 |
9 | 2 | 3 |
10 | 3 | 1 |
También tengo una tabla de beneficios del producto (abajo), que muestra todos los beneficios seleccionados para cada producto.
product_id | benefit_name |
1 | piernas |
1 | armas |
1 | cabeza |
1 | Atrás |
2 | piernas |
2 | armas |
2 | manos |
2 | pies |
3 | piernas |
3 | manos |
3 | ojos |
3 | riñón izquierdo |
Estos tienen una relación de muchos-muchos entre ellos en función del ID del producto en cada uno, me encantaría poder refactorizarlo o de alguna manera dividirlo todo en un modelo mucho más sensato, pero debido al sistema con el que estoy trabajando y cómo se estructuran y adjuntan los beneficios a la información del producto, eso no es factible (lo he intentado, pero esto es lo más cercano que hay, En pocas palabras, no es realmente posible hacer una lista única de beneficios y/o productos de una manera que mantenga la información correcta).
Lo que quiero en Power Bi es una matriz que muestre cada contrato, que pueda expandirse para mostrar todos los beneficios de su producto actual, y verificar si cada beneficio es nuevo (basado en el ID del producto anterior) (la imagen a continuación, como una imagen para que sea más fácil ver cómo funciona la matriz, no será completamente igual a los datos anteriores):
Esencialmente, quiero una medida que encuentre:
Para cada producto que tienen
Por cada beneficio de ese producto
Hola @ajc96 -Compare el beneficio actual con los beneficios del producto anterior utilizando CONTAINS o una función DAX similar.
Crear medida:
IsNewBenefit =
VAR currentProductID = SELECTEDVALUE(contractProducts[product_id])
VAR anteriorProductID = SELECTEDVALUE(contractProducts[previous_product_id])
VAR currentBenefit = SELECTEDVALUE(productBenefits[benefit_name])
-- Obtenga los beneficios del producto anterior
VAR anteriorProductoBeneficios =
CALCULATETABLE(
VALUES(productBenefits[benefit_name]),
productBenefits[product_id] = previousProductID
)
-- Comprobar si el beneficio actual existe en los beneficios del producto anterior
El VAR esNuevoBeneficio =
SI(
NO CONTIENE(anteriorProductoBeneficios, productoBeneficios[benefit_name], currentBenefici),
"Sí", -- El beneficio es nuevo
"No" -- El beneficio existe en el producto anterior
)
RETURN isNewBenefit
Hágamelo saber si esto funciona para su configuración, si corresponde, comparta más referencias y detalles.
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!
Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions.
Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.