cancel
Showing results for 
Search instead for 
Did you mean: 
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
Carousel_PBI_Wave1

2023 Release Wave 1 Plans

Power BI release plans for 2023 release wave 1 describes all new features releasing from April 2023 through September 2023.

Power BI Summit Carousel 2

Global Power BI Training

Make sure you register today for the Power BI Summit 2023. Don't miss all of the great sessions and speakers!

Thank you 2022 Review

2022 Monthly Feature Releases

We had a great 2022 with a ton of feature releases to help you drive a data culture.