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.
¿Cómo puede filtrar una columna de un campo "Combinado" por otro campo de la consulta? Por ejemplo, filtre cada "SECOND"[DATES_SECOND] > [DATE_FIRST].
DATE_FIRST de identificación
1 | 20/08/2020 |
2 | 20/09/2020 |
3 | 12/09/2020 |
DATES_SECOND de identificación
1 | 19/08/2020 |
1 | 20/08/2020 |
1 | 21/08/2020 |
2 | 19/09/2020 |
2 | 20/09/2020 |
2 | 21/09/2020 |
3 | 11/09/2020 |
3 | 12/09/2020 |
3 | 13/09/2020 |
Solved! Go to Solution.
Hola @AlejandroG ,
por razones de rendimiento, recomendaría encarecidamente expandir, luego filtrar y volver a agrupar si es necesario.
Vea esta entrada de blog para más detalles: https://www.thebiccountant.com/2019/10/28/performance-tip-for-aggregations-after-joins-in-power-quer...
Imke Feldmann (The BIccountant)
If you liked my solution, please give it a thumbs up. And if I did answer your question, please mark this post as a solution. Thanks!
How to integrate M-code into your solution -- How to get your questions answered quickly -- How to provide sample data -- Check out more PBI- learning resources here -- Performance Tipps for M-queries
Hola @AlejandroG ,
ha habido un error de sintaxis en mi última respuesta. Esto funciona:
Table.SelectRows([SECOND], (row) => [DATE_FIRST] > row[DATES_SECOND] )
Pero también una variación en su enfoque de función también funcionaría:
let
Sort = Table.Sort([SECOND],{{"DATES_SECOND", Order.Descending}}),
Add = Table.AddColumn(Sort, "Custom", (row) => [DATE_FIRST] > row[DATES_SECOND] )
in
Add
Consulte el archivo adjunto.
Imke Feldmann (The BIccountant)
If you liked my solution, please give it a thumbs up. And if I did answer your question, please mark this post as a solution. Thanks!
How to integrate M-code into your solution -- How to get your questions answered quickly -- How to provide sample data -- Check out more PBI- learning resources here -- Performance Tipps for M-queries
Hola @AlejandroG ,
Puede seguir estos pasos:
1.Haga clic en el botón Expandir , seleccione DATES_SECOND (podría denominarlo)
2.Agregar una columna condicional
3.Eliminar cuando el valor de null
4.Elimine la columna Personalizado creada en el paso 2.
let
Source = Table.NestedJoin(FirstTable, {"ID"}, SecondTable, {"ID"}, "SecondTable", JoinKind.LeftOuter),
#"Expanded SecondTable" = Table.ExpandTableColumn(Source, "SecondTable", {"DATES_SECOND"}, {"SecondTable.DATES_SECOND"}),
#"Renamed Columns" = Table.RenameColumns(#"Expanded SecondTable",{{"SecondTable.DATES_SECOND", "DATES_SECOND"}}),
#"Added Conditional Column" = Table.AddColumn(#"Renamed Columns", "Custom", each if [DATE_FIRST] < [DATES_SECOND] then [ID] else null),
#"Filtered Rows" = Table.SelectRows(#"Added Conditional Column", each [Custom] <> null and [Custom] <> ""),
#"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"Custom"})
in
#"Removed Columns"
Mi mesa final se ve así:
¿He respondido a tu pregunta? Por favor, marque mi respuesta como solución. Muchas gracias.
Si no es así, cargue algunas muestras de datos insensibles y la salida esperada.
Saludos
Eyelyn Qin
Hola @Eyelyn9 ,
gracias por la respuesta. Sí, lo sé, eso es lo que @ImkeF sugirió en su primera respuesta,pero me gustaría aprender a operar dentro de la columna de fusión en caso de que necesite hacer algo más complejo.
Hola @AlejandroG ,
Cuando tiene una o más columnas que desea agregar a otra consulta, combina las consultas.
Usted podría echar un vistazo a estos documentos para obtener más información .
https://radacad.com/append-vs-merge-in-power-bi-and-power-query
https://www.powerbi-pro.com/en/power-bi-seven-types-of-table-joins/
Saludos
Eyelyn Qin
Hola @AlejandroG ,
ha habido un error de sintaxis en mi última respuesta. Esto funciona:
Table.SelectRows([SECOND], (row) => [DATE_FIRST] > row[DATES_SECOND] )
Pero también una variación en su enfoque de función también funcionaría:
let
Sort = Table.Sort([SECOND],{{"DATES_SECOND", Order.Descending}}),
Add = Table.AddColumn(Sort, "Custom", (row) => [DATE_FIRST] > row[DATES_SECOND] )
in
Add
Consulte el archivo adjunto.
Imke Feldmann (The BIccountant)
If you liked my solution, please give it a thumbs up. And if I did answer your question, please mark this post as a solution. Thanks!
How to integrate M-code into your solution -- How to get your questions answered quickly -- How to provide sample data -- Check out more PBI- learning resources here -- Performance Tipps for M-queries
@AlejandroG , creo que usted tiene que fusionar primero usando expandir. Cree una columna calculada y elimine las filas en función de esa
refere al tema antiguo:https://community.powerbi.com/t5/Desktop/M-Power-Query-Removing-entire-rows-based-on-condition/td-p/...
Hola @AlejandroG ,
por razones de rendimiento, recomendaría encarecidamente expandir, luego filtrar y volver a agrupar si es necesario.
Vea esta entrada de blog para más detalles: https://www.thebiccountant.com/2019/10/28/performance-tip-for-aggregations-after-joins-in-power-quer...
Imke Feldmann (The BIccountant)
If you liked my solution, please give it a thumbs up. And if I did answer your question, please mark this post as a solution. Thanks!
How to integrate M-code into your solution -- How to get your questions answered quickly -- How to provide sample data -- Check out more PBI- learning resources here -- Performance Tipps for M-queries
Hola @ImkeF , @amitchandak
Gracias por su respuesta. Tal vez no me estoy explicando correctamente, no creo que las agregaciones tienen nada que ver aquí?
Desafortunadamente, expandir, filtrar y la agrupación de nuevo sería un dolor, ya que hay un montón de columnas, pero voy a tratar de que y ver cómo va gracias. Lo que estoy luchando es cómo operar entre los valores de un colum después de una fusión, donde cada celda es de hecho una tabla, y el resto de la primera tabla. Tal vez quiero agregar una columna personalizada basada en los valores de "DATE_FIRST":
Tal vez quiera filtrar DATES_SECOND por el valor de DATE_FIRST como dije antes.
He estado tratando de hacer esto con una función como:
(MyTable) =>
let
Sort = Table.Sort(MyTable,{{"DATES_SECOND", Order.Descending}}),
Add = Table.AddColumn(Sort, "Custom", each if "DATES_SECOND" > "DATE_FIRST" then 1 else 0),
Keep = Table.SelectRows(Add, each ([Custom] = 1))
in
Keep
Pero el resultado está vacío, creo que no puede "encontrar" DATE_FIRST.
Hola @AlejandroG ,
era sólo un pensamiento que la expansión sería más rápida, ya que las operaciones son bastante similares.
Si desea utilizar una función, debe declarar al menos algunas de sus variables explitely y ahora utilizar el azúcar de sintaxis "cada uno" dos veces. Porque eso lo hace ambiguo:
Table.SelectColumns([SECOND], "Custom", (row) => if row([DATE_FIRST]) > [DATES_SECOND] )
por lo que aquí la "fila" es una variable de función explícita que le permite direccionar específicamente cada fila de la tabla combinada.
Imke Feldmann (The BIccountant)
If you liked my solution, please give it a thumbs up. And if I did answer your question, please mark this post as a solution. Thanks!
How to integrate M-code into your solution -- How to get your questions answered quickly -- How to provide sample data -- Check out more PBI- learning resources here -- Performance Tipps for M-queries
Lo siento @AlejandroG ,
el "si" no debería estar allí. La expresión tiene que devolver un valor booleano que determina si la fila iterada actualmente se mantendrá o no. Así que esto debería ponerte en marcha.
De lo contrario, pase el enlace al archivo con datos de muestra.
Table.SelectColumns([SECOND], "Custom", (row) => row([DATE_FIRST]) > [DATES_SECOND] )
Imke Feldmann (The BIccountant)
If you liked my solution, please give it a thumbs up. And if I did answer your question, please mark this post as a solution. Thanks!
How to integrate M-code into your solution -- How to get your questions answered quickly -- How to provide sample data -- Check out more PBI- learning resources here -- Performance Tipps for M-queries
Gracias por la ayuda @ImkeF,
aquí está el ejemplo .pbix que estoy usando: https://1drv.ms/u/s!AiWqeJuU1-S3akALKVh42fxmfkk?e=nirahP
El uso de Table.SelectRows sigue dándome el Expression.Error "no se puede convertir Record to Function".
Uso de esta función:
(MyTable) =>
let
Sort = Table.Sort(MyTable,{{"DATES_SECOND", Order.Descending}}),
Add = Table.AddColumn(Sort, "Custom", (row) => row([DATE_FIRST]) > [DATES_SECOND] )
in
Add
También da el Expression.Error "no se puede convertir Registro a función":
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |