Forum Discussion
Columna personalizada de Power Query
Estoy intentando agregar una columna personalizada en Power BI Power Query Editor, pero tengo algunas dificultades.
La siguiente tabla es un ejemplo de 2 columnas que tengo y 1 columna que requiero.
Necesito un Sí para estar en la columna Y/N siempre que un ID NO tenga asignado un DOI. ID puede tener duplicados, por lo que cuando cualquiera de los mismos ID tiene un DOI, entonces será NO, de lo contrario Sí.
Gracias
4 Replies
- Syndicate_Admin
Administrator
De acuerdo con su descripción, aquí está mi solución. Copie y pegue el código en una consulta en blanco para ver los pasos aplicados.
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjQyVNJRSlSK1YGxdbGwjYhgGxPBNkGyCxfbFEm9KZo4LjZMvRkOtjkRbAsktiWS+ZZo4kB2LAA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [ID = _t, DOI = _t]), #"Changed Type" = Table.TransformColumnTypes(Source,{{"ID", Int64.Type}, {"DOI", type text}}), #"Replaced Value" = Table.ReplaceValue(#"Changed Type","-","",Replacer.ReplaceText,{"DOI"}), #"Merged Queries" = Table.NestedJoin(#"Replaced Value", {"ID"}, Table.Group(#"Replaced Value", {"ID"}, {{"Max", each List.Max([DOI]), type nullable text}}), {"ID"}, "Max", JoinKind.LeftOuter), #"Expanded Max" = Table.ExpandTableColumn(#"Merged Queries", "Max", {"Max"}, {"Max"}), #"Added Custom" = Table.AddColumn(#"Expanded Max", "Custom", each if[#"Max"]=""then"Yes"else"No"), #"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Max"}) in #"Removed Columns"Obtén el resultado.
Adjunto mi muestra a continuación como referencia.
Saludos
Equipo de apoyo a la comunidad _ kalyjSi esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
- Syndicate_Admin
Administrator
Hola, gracias por tu respuesta. Funciona para el ejemplo que proporcioné, pero cuando intento usar el código en los datos reales con los que quiero ejecutar la consulta, vuelve a pasar por los datos de ejemplo.
¿Cómo conseguiría que esta consulta funcionara con otros datos similares con los mismos encabezados?
Gracias- Syndicate_Admin
Administrator
Siga los pasos detallados:
1.Seleccione la columna DOI, haga clic con el botón derecho y seleccione Reemplazar valor, reemplace - con "".
2.Haga clic con el botón derecho en la tabla y seleccione Duplicar.
3.In la nueva tabla, seleccione la columna ID y, a continuación, haga clic en Agrupar por.
Configúralo como se muestra a continuación.
Obtenga el valor máximo para cada ID. Si todas las filas DOI están en blanco del mismo ID, su valor máximo también está en blanco.
4.Seleccione la tabla original y, a continuación, haga clic en Combinar consultas.
Configúrelo así:
5.Ahora, en el código del paso Consultas combinadas de la tabla, reemplace el #"Tabla(2)" por el código del último paso de la tabla(2)
Obtenga esto, luego puede eliminar la Tabla(2).
6.Expanda la nueva columna con el campo Max.
7.Agregue una columna personalizada.
if[#"Table (2).Max"]=""then"Yes"else"No"A continuación, elimine la columna innecesaria, obtenga el resultado esperado.
Saludos
Equipo de apoyo a la comunidad _ kalyjSi esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.