Microsoft Fabric Community Conference 2025, March 31 - April 2, Las Vegas, Nevada. Use code FABINSIDER for a $400 discount.
Register nowThe 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.
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:
Id | Estado | Valor |
1 | Cerrado | 33 |
2 | Abierto | 44 |
3 | Largo plazo | 55 |
4 | Abierto | 66 |
5 | Cerrado | 77 |
6 | Abierto | 88 |
7 | Largo plazo | 99 |
Tabla 2:
Id | Fecha | Valor |
1 | 1/10/2020 | 12 |
2 | 2/10/2020 | 23 |
2 | 3/10/2020 | 34 |
2 | 4/10/2020 | 45 |
6 | 7/10/2020 | 78 |
6 | 8/10/2020 | 89 |
6 | 9/10/2020 | 90 |
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:
Id | Estado | Valor | Nueva columna |
1 | Cerrado | 33 | 33 |
2 | Abierto | 44 | 12 |
3 | Largo plazo | 55 | 55 |
4 | Abierto | 66 | Null |
5 | Cerrado | 77 | 77 |
6 | Abierto | 88 | 78 |
7 | Largo plazo | 99 | 99 |
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.
Solved! Go to Solution.
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
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
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?
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
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!
Check out the February 2025 Power BI update to learn about new features.