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

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
Adham
Helper III
Helper III

Power Query: obtenga datos de otra tabla si se cumple la condición

Hola a todos,

He estado trabajando en esto todo el día con poca suerte, realmente apreciaría un poco de apoyo en esto. Tengo dos tablas:

Tabla 1:

IdEstadoValor
1Cerrado33
2Abierto44
3Largo plazo55
4Abierto66
5Cerrado77
6Abierto88
7Largo plazo99

Tabla 2:

IdFechaValor
11/10/202012
22/10/202023
23/10/202034
24/10/202045
67/10/202078
68/10/202089
69/10/202090

Quiero crear una columna condicional en la tabla 1 y hacer lo siguiente:

si el estado de un id está cerrado o a largo plazo, utilice el valor de la tabla 1, de lo contrario, si el estado está abierto, tome el valor de la tabla 2 con la fecha más temprana en la que el identificador es el mismo que el de la tabla 1. Si no hay entradas en la tabla 2 con el mismo id entonces debe ser nulo

Así es como debe verse la tabla 1:

IdEstadoValorNueva columna
1Cerrado3333
2Abierto4412
3Largo plazo5555
4Abierto66Null
5Cerrado7777
6Abierto8878
7Largo plazo9999

Esto tiene que hacerse en la consulta de energía, ya que hay un script python muy importante que tengo que ejecutar en esa tabla una vez que realice este paso.

Gracias.

1 ACCEPTED SOLUTION

@Adham

Sólo tiene que añadir el "prueba... de lo contrario" para detectar el error y devolver null en su lugar:

= Table.AddColumn(#"Changed Type", "Custom", each if List.Contains({"Closed", "Long Term"}, [Status]) then [Value] else try Table.Sort(Table.SelectRows(Table2, (inner)=> inner[ID]=[ID]), {{"Date", Order.Ascending}})[Value]{0} otherwise null)

Por favor, marque la pregunta resuelta cuando haya terminado y considere dar felicitaciones si las publicaciones son útiles.

Póngase en contacto conmigo de forma privada para obtener asistencia con cualquier necesidad de BI a gran escala, tutoría, etc.

Salud

SU18_powerbi_badge

View solution in original post

4 REPLIES 4
AlB
Super User
Super User

Hola @Adham

Puede crear una columna personalizada con el código siguiente:

= if List.Contains({"Closed", "Long Term"}, [Status]) then [Value] else   Table.Sort(Table.SelectRows(Table2, (inner)=> inner[ID]=[ID]), {{"Date", Order.Ascending}})[Value]{0}

donde Table2 es el nombre de su segunda mesa

Por favor, marque la pregunta resuelta cuando haya terminado y considere dar felicitaciones si las publicaciones son útiles.

Póngase en contacto conmigo de forma privada para obtener asistencia con cualquier necesidad de BI a gran escala, tutoría, etc.

Salud

SU18_powerbi_badge

Hola @AlB,

¡Gracias por tu ayuda! He probado la fórmula y funciona bien, pero devuelve un error cuando intenta leer de la tabla 2 y no hay filas con el mismo identificador. El problema surge cuando intento extraer el valor de la primera fila usando esto:

[Valor] {0}

Creo que genera un error mientras intenta extraer el valor de la primera fila que no existe. ¿Cómo puedo hacer que la fórmula funcione pero devolver valores nulos cuando no hay filas con IDs coincidentes en la tabla 2?

@Adham

Sólo tiene que añadir el "prueba... de lo contrario" para detectar el error y devolver null en su lugar:

= Table.AddColumn(#"Changed Type", "Custom", each if List.Contains({"Closed", "Long Term"}, [Status]) then [Value] else try Table.Sort(Table.SelectRows(Table2, (inner)=> inner[ID]=[ID]), {{"Date", Order.Ascending}})[Value]{0} otherwise null)

Por favor, marque la pregunta resuelta cuando haya terminado y considere dar felicitaciones si las publicaciones son útiles.

Póngase en contacto conmigo de forma privada para obtener asistencia con cualquier necesidad de BI a gran escala, tutoría, etc.

Salud

SU18_powerbi_badge

¡Funciona perfectamente! Muchas gracias @AlB realmente lo apreciamos!

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

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

Top Solution Authors