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

The Power BI DataViz World Championships are on! With four chances to enter, you could win a spot in the LIVE Grand Finale in Las Vegas. Show off your skills.

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
AlB
Community Champion
Community Champion

@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
Community Champion
Community Champion

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?

AlB
Community Champion
Community Champion

@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
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

FebPBI_Carousel

Power BI Monthly Update - February 2025

Check out the February 2025 Power BI update to learn about new features.

Feb2025 NL Carousel

Fabric Community Update - February 2025

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

Top Solution Authors
Top Kudoed Authors