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.
Tengo un ejemplo muy simple del "modelo de datos" y algunos datos muy básicos. Cada paquete contiene uno o más artículos. Cada elemento puede existir en paquetes mutliple para esto he creado una tabla de puente para manejar las relaciones de muchos a muchos.
Lo que tengo que hacer en un informe:
Necesito ser capaz de determinar dinámicamente qué elementos existen en un paquete y no otro.
En la lista de paquetes, el usuario elegirá un paquete de origen y, a continuación, el paquete de destino.
Si el Paquete "A" es la "fuente" y el Paquete "C" es el "Objetivo". Ser capaz de obtener una lista de todos los artículos en el paquete C que NO están en el paquete A. Por lo tanto, en el paquete C solo se muestran los elementos 4 y 5, ya que no existen en el paquete A.
Si el usuario selecciona el paquete B como origen y el paquete C como destino, se presentarían los elementos 2,3,4.
Buscando cómo implementar esto en un informe. suponiendo que esto debe hacerse en DAX... los usuarios del informe necesitan ver el delta entre las selecciones de origen y destino..
Gracias por cualquier ayuda de antemano
Solved! Go to Solution.
@RayBrosius Lo sentimos por los problemas de sintaxis. He corregido esos y he incluido un archivo PBIX a continuación con un par de variaciones. Esperemos que esto sea suficiente para bajar la técnica general.
Measure =
VAR __Source = SELECTEDVALUE('SourcePackages'[Packages])
VAR __Target = SELECTEDVALUE('TargetPackages'[Packages])
VAR __Table =
EXCEPT(
SELECTCOLUMNS(FILTER(ALL('PackageItems'),[Packages]=__Target),"Item",[Items]),
SELECTCOLUMNS(FILTER(ALL('PackageItems'),[Packages]=__Source),"Item",[Items])
)
RETURN
IF(MAX('PackageItems'[Items]) IN __Table,1,0)
Measure 2 =
VAR __Source = SELECTEDVALUE('SourcePackages'[Packages])
VAR __Target = SELECTEDVALUE('TargetPackages'[Packages])
VAR __Table =
EXCEPT(
SELECTCOLUMNS(FILTER(ALL('PackageItems'),[Packages]=__Target),"Item",[Items]),
SELECTCOLUMNS(FILTER(ALL('PackageItems'),[Packages]=__Source),"Item",[Items])
)
RETURN
CONCATENATEX(__Table,[Item],",")
@RayBrosius - Tal vez crear una medida como esta:
Measure =
VAR __Source = SELECTEDVALUE('Packages'[Package])
VAR __Target = SELECTEDVALUE('Packages2'[Package])
VAR __Table =
EXCEPT(
SELECTCOLUMNS(FILTER('Package_Items',[Package]=__Target),"Package",[Package])
SELECTCOLUMNS(FILTER('Package_Items',[Package]=__Source),"Package",[Package])
)
RETURN
IF(MAX('Package_Items') IN __Table,1,0)
Es básicamente un Selector Complejo: https://community.powerbi.com/t5/Quick-Measures-Gallery/The-Complex-Selector/m-p/1116633#M534
Gracias primero por su respuesta rápida
Así que no estoy seguro de que esto esté funcionando.. o no lo estoy usando correctamente..
1) supongamos que había un Typo en la medida en que debería haber un "," entre las dos funciones selectcolumn?
2) supongamos que tuve que crear una segunda / copia de la tabla Packages para crear el Packages2 refreencd en el __Target var?
Así que en mi informe me gustaría tener DOS segmentaciones para que el usuario elija la "Fuente" y "Objetivo" individualmente.
A continuación, en una tabla mostrar el nombre del paquete de destino y cada elemento que se encuentra en el paquete de destino, pero NO en el paquete de origen.
Si deselecciono el paquete de origen, la tabla mostrará TODOS los elementos para el paquete de destino.
¿Cómo determina esta medida qué Elementos mostrar?
Miré los enlaces que incluyó para los selectores complejos, así, gracias por las referencias..
@RayBrosius Lo sentimos por los problemas de sintaxis. He corregido esos y he incluido un archivo PBIX a continuación con un par de variaciones. Esperemos que esto sea suficiente para bajar la técnica general.
Measure =
VAR __Source = SELECTEDVALUE('SourcePackages'[Packages])
VAR __Target = SELECTEDVALUE('TargetPackages'[Packages])
VAR __Table =
EXCEPT(
SELECTCOLUMNS(FILTER(ALL('PackageItems'),[Packages]=__Target),"Item",[Items]),
SELECTCOLUMNS(FILTER(ALL('PackageItems'),[Packages]=__Source),"Item",[Items])
)
RETURN
IF(MAX('PackageItems'[Items]) IN __Table,1,0)
Measure 2 =
VAR __Source = SELECTEDVALUE('SourcePackages'[Packages])
VAR __Target = SELECTEDVALUE('TargetPackages'[Packages])
VAR __Table =
EXCEPT(
SELECTCOLUMNS(FILTER(ALL('PackageItems'),[Packages]=__Target),"Item",[Items]),
SELECTCOLUMNS(FILTER(ALL('PackageItems'),[Packages]=__Source),"Item",[Items])
)
RETURN
CONCATENATEX(__Table,[Item],",")
Sus medidas trabajaron grandes.. Muchas gracias.
Lo que es más importante, apuntarme a las publicaciones en selectores complejos realmente ayudó. Pude hacer que el ejemplo de Selector inverso funcionara también.
Gracias de nuevo por la ayuda..
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 |