Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

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.

Reply
Anonymous
Not applicable

Obtener los "desaparecidos" o nuevos elementos en un paquete.

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.

Packages_to_Items.jpg

data.jpg

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

1 ACCEPTED 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],",")

@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...

View solution in original post

4 REPLIES 4
Greg_Deckler
Super User
Super User

@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


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...
Anonymous
Not applicable

@Greg_Deckler ,

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],",")

@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...
Anonymous
Not applicable

@Greg_Deckler ,

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..

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.