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
Syndicate_Admin
Administrator
Administrator

tabla calculada por un único argumento de filtro

Tengo una tabla con el registro de entrega, y me gustaría generar una tabla calculada con la mostrada, la lógica es que si el mismo ID tiene "Aire Regular" y "Camión de Reparto" solo filtro los registros de "Camión de Reparto" Sin embargo, para los registros que solo tiene "Camión de Reparto", deben mantenerse.
Gracias

https://1drv.ms/u/s!AoIRa67hIHkpgnhvrERbmQ1BBF_Q

result.png

1 ACCEPTED SOLUTION

@ybatistamayo Pude arreglar esto con los datos de muestra proporcionados, edición menor.

Table24a = 
  VAR __Table =
    ADDCOLUMNS(
      SUMMARIZE('Table24',[ID]),
      "HasAir",COUNTROWS(FILTER('Table24',[ID] = EARLIER([ID]) && [Delivery Truck]="Regular Air")),
      "HasTruck",COUNTROWS(FILTER('Table24',[ID] = EARLIER([ID]) && [Delivery Truck]="Delivery Truck"))
    )
  VAR __BadIDs = SELECTCOLUMNS(FILTER(__Table,[HasAir]>=1 && [HasTruck]>=1),"__ID",[ID])
  VAR __GoodTable = FILTER('Table24',[ID] IN __BadIDs && [Delivery Truck]="Regular Air")
  VAR __OtherGoodTable = FILTER('Table24',NOT([ID] IN __BadIDs))
RETURN
  UNION(__GoodTable, __OtherGoodTable)

PBIX se adjunta debajo de sig. Desea Table24 y Table24a.

View solution in original post

9 REPLIES 9
Syndicate_Admin
Administrator
Administrator

@ybatistamayo Probar:

Table =
  VAR __Table =
    ADDCOLUMNS(
      SUMMARIZE('Table',[ID]),
      "HasAir",COUNTROWS(FILTER('Table',[Deliver Truck]="Regular Air")),
      "HasTruck",COUNTROWS(FILTER('Table',[Deliver Truck]="Delivery Truck"))
    )
  VAR __BadIDs = SELECTCOLUMNS(FILTER(__Table,[HasAir]>=1 && [HasTruck]>=1),"__ID",[ID])
  VAR __GoodTable = FILTER('Table',[ID] IN __BadIDs && [Deliver Truck]="Delivery Truck")
  VAR __OtherGoodTable = FILTER('Table',NOT([ID] IN __BadIDs))
RETURN
  UNION(__GoodTable, __OtherGoodTable)

Hola Greg, no funciona

ybatistamayo_0-1632254000466.png

@ybatistamayo En realidad, me sorprende que incluso fuera sintácticamente correcto honestamente, lo escribí de improviso. Si puede publicar sus datos de muestra como texto para que pueda copiar y pegar, echaré un vistazo para ver si puedo corregirlos. @ yo

Hola, estos son los datos originales

Id Fecha Entrega Camión
25 21/02/2017 Aire Regular
25 8/9/2016 Aire Regular
52 20/03/2017 Aire Regular
53 20/03/2017 Aire Regular
62 9/21/2016 Camión de reparto
62 19/09/2016 Aire Regular
64 19/12/2016 Camión de reparto
64 26/01/2018 Aire Regular
67 26/01/2018 Aire Regular
68 18/12/2017 Aire Regular
78 28/12/2016 Aire Regular
87 21/09/2018 Camión de reparto
87 21/09/2018 Aire Regular
89 22/09/2018 Aire Regular
95 22/10/2017 Camión de reparto
96 22/10/2017 Camión de reparto
97 17/06/2018 Camión de reparto

El resultado esperado es una tabla como esta

result.png

Hola

¿Por qué el ID 62 no está disponible en la tabla final? Por favor, explique también la lógica de nuevo.

Tienes razón el ID 62 debe estar disponible

La lógica es que cuando hay dos métodos de entrega para el mismo ID, solo se mantiene el "Delivery Air", es decir, solo me interesa el "Delivery air para pedidos que han sido entregados por más de una ruta".
sin embargo, los pedidos que solo se han entregado a través de "Delivery Truck" entonces si los guardo

este es el resultado esperado:

result.new.png

Hola

¿Tu pregunta ya ha sido respondida por Greg? ¿Necesitas más ayuda?

Hola Ashish_Mathur la pregunta ha sido respondida, gracias por su contribución también

@ybatistamayo Pude arreglar esto con los datos de muestra proporcionados, edición menor.

Table24a = 
  VAR __Table =
    ADDCOLUMNS(
      SUMMARIZE('Table24',[ID]),
      "HasAir",COUNTROWS(FILTER('Table24',[ID] = EARLIER([ID]) && [Delivery Truck]="Regular Air")),
      "HasTruck",COUNTROWS(FILTER('Table24',[ID] = EARLIER([ID]) && [Delivery Truck]="Delivery Truck"))
    )
  VAR __BadIDs = SELECTCOLUMNS(FILTER(__Table,[HasAir]>=1 && [HasTruck]>=1),"__ID",[ID])
  VAR __GoodTable = FILTER('Table24',[ID] IN __BadIDs && [Delivery Truck]="Regular Air")
  VAR __OtherGoodTable = FILTER('Table24',NOT([ID] IN __BadIDs))
RETURN
  UNION(__GoodTable, __OtherGoodTable)

PBIX se adjunta debajo de sig. Desea Table24 y Table24a.

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.