Ander101
Perdón por el título extraño. Tengo un conjunto de datos formado por respuestas de personas en un formulario, y se ve así:
Conjunto de datos original
Entonces, quiero fusionar todas esas filas con el mismo número de semana y eliminar esas celdas vacías para que se vea así:
Conjunto de datos de objetivos
¿Hay alguna manera de hacer esto? Tenga en cuenta que cada semana agregamos más datos.
Lo que probé por ahora:
A estas alturas, ya he intentado transponer la matriz, fusionar las columnas y luego transponer nuevamente, pero luego tengo los números de semana sumados y no creo que la consulta pueda saber que quiero fusionar grupos de 5 columnas después.
También traté de crear nuevas tablas usando SELECTCOLUMNS, pero luego no podré agregar las tablas porque las tablas creadas a partir de fórmulas DAX no aparecen en Power Query.
jimmy801
Hola @Ander101
puede usar Table.Group y aplicar una función allí que haga el trabajo. Considere que este código combinaría el contenido de la celda si encontrara 2 celdas para una persona en una semana.
Text.Combine(List.Transform(_, each Text.From(_)),",")
en caso de que pueda adaptar el código anterior. Aquí un ejemplo practicable.
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMrFQ0lEyBGIQitWBCgCREboAEBlDBCyBTBNkLZYQjim6ABCZKcXGAgA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [week = _t, Tom = _t, Jelena = _t, Maria = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"week", Int64.Type}, {"Tom", Int64.Type}, {"Jelena", Int64.Type}, {"Maria", Int64.Type}}),
#"Grouped Rows" = Table.Group(#"Changed Type", {"week"}, {{"AllRows", each Table.FromColumns(List.Transform(Table.ToColumns(Table.RemoveColumns(_, {"week"})), each {Text.Combine(List.Transform(_, each Text.From(_)),",")}), Table.ColumnNames(Table.RemoveColumns(_, {"week"})) )}}),
#"Expanded AllRows" = Table.ExpandTableColumn(#"Grouped Rows", "AllRows", Table.ColumnNames(Table.Combine(#"Grouped Rows"[AllRows])))
in
#"Expanded AllRows"
Copie y pegue este código en el editor avanzado en una nueva consulta en blanco para ver cómo funciona la solución.
Si esta publicación ayuda o resuelve su problema, márquelo como solución (para ayudar a otros usuarios a encontrar contenido útil y reconocer el trabajo de los usuarios que lo ayudaron)
Los saludos también son buenos
Divertirse
Palanqueta
v-alq-msft
Hola, @Ander101
Según su descripción, creé datos para reproducir su escenario. El archivo pbix se adjunta al final.
Tabla:
Puede agregar un nuevo paso como se muestra a continuación.
= Table.Group(#"Changed Type", {"Week"}, {{"Tom", each List.Sum([Tom]), type nullable number}, {"Alice", each List.Sum([Alice]), type nullable number}, {"John", each List.Sum([John]), type nullable number}, {"Judd", each List.Sum([Judd]), type nullable number}, {"Thomas", each List.Sum([Thomas]), type nullable number}})
Resultado:
Atentamente
Alano
Si esta publicación le ayuda, considere aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
Ander101
Hola a todos,
Gracias por la ayuda. No he usado el código mencionado. Pude resolver el problema usando el comando SUMMARIZE en una nueva tabla y luego agregando los números, lo cual fue mucho más intuitivo para mí.
v-alq-msft
Hola, @Ander101
Según su descripción, creé datos para reproducir su escenario. El archivo pbix se adjunta al final.
Tabla:
Puede agregar un nuevo paso como se muestra a continuación.
= Table.Group(#"Changed Type", {"Week"}, {{"Tom", each List.Sum([Tom]), type nullable number}, {"Alice", each List.Sum([Alice]), type nullable number}, {"John", each List.Sum([John]), type nullable number}, {"Judd", each List.Sum([Judd]), type nullable number}, {"Thomas", each List.Sum([Thomas]), type nullable number}})
Resultado:
Atentamente
Alano
Si esta publicación le ayuda, considere aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
jimmy801
Hola @Ander101
puede usar Table.Group y aplicar una función allí que haga el trabajo. Considere que este código combinaría el contenido de la celda si encontrara 2 celdas para una persona en una semana.
Text.Combine(List.Transform(_, each Text.From(_)),",")
en caso de que pueda adaptar el código anterior. Aquí un ejemplo practicable.
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMrFQ0lEyBGIQitWBCgCREboAEBlDBCyBTBNkLZYQjim6ABCZKcXGAgA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [week = _t, Tom = _t, Jelena = _t, Maria = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"week", Int64.Type}, {"Tom", Int64.Type}, {"Jelena", Int64.Type}, {"Maria", Int64.Type}}),
#"Grouped Rows" = Table.Group(#"Changed Type", {"week"}, {{"AllRows", each Table.FromColumns(List.Transform(Table.ToColumns(Table.RemoveColumns(_, {"week"})), each {Text.Combine(List.Transform(_, each Text.From(_)),",")}), Table.ColumnNames(Table.RemoveColumns(_, {"week"})) )}}),
#"Expanded AllRows" = Table.ExpandTableColumn(#"Grouped Rows", "AllRows", Table.ColumnNames(Table.Combine(#"Grouped Rows"[AllRows])))
in
#"Expanded AllRows"
Copie y pegue este código en el editor avanzado en una nueva consulta en blanco para ver cómo funciona la solución.
Si esta publicación ayuda o resuelve su problema, márquelo como solución (para ayudar a otros usuarios a encontrar contenido útil y reconocer el trabajo de los usuarios que lo ayudaron)
Los saludos también son buenos
Divertirse
Palanqueta
Alba
@Ander101
Coloque el siguiente código M en una consulta en blanco para ver los pasos. #»Filas agrupadas» es crucial
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMrFQ0lHKK83JwU7F6kCVGBGQhwoaE5CHUoYE5OHKwPKWhJ1oicVudHl0u3HIQykjAvJwD4PkTQ0IOhGsBI8TkY1AD2wcVoCUEbAe6jx0P2Mx3hB/JCMbgS0EsVhhTEAe7ovYWAA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Week = _t, Alice = _t, John = _t, Judd = _t, Thomas = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Alice", Int64.Type}, {"John", Int64.Type}, {"Judd", Int64.Type}, {"Thomas", Int64.Type}, {"Week", Int64.Type}}),
colNames_ = Table.ColumnNames(#"Changed Type"),
tableType_ = Value.Type(#"Changed Type"),
#"Grouped Rows" = Table.Group(#"Changed Type", {"Week"}, {{"Res", each Table.FromColumns(List.Transform(Table.ToColumns(_), each {List.Max(_)}), colNames_) }}),
#"Expanded Res" = Table.ExpandTableColumn(#"Grouped Rows", "Res", {"Alice", "John", "Judd", "Thomas"}, {"Alice", "John", "Judd", "Thomas"}),
final_ = Value.ReplaceType(#"Expanded Res", tableType_)
in
final_
Por favor marque la pregunta resuelta cuando termine y considere dando un pulgar hacia arriba si las publicaciones son útiles.
Comuníquese conmigo en privado para obtener asistencia con cualquier necesidad de BI a gran escala, tutoría, etc.
Salud
Alba
@Ander101
¿Qué es esto? ¿Cómo meto eso en una tabla?
Yo estaba hablando de algo como:
Tomás | Alicia |
48 | 1 |
23 | 2 |
que es lo que obtiene simplemente pegando una tabla (copiada de Excel o PBI) aquí. De lo contrario comparte la tabla en un .xlsx o. pbix Tienes que compartir la URL del archivo alojado en otro lugar: Dropbox, Onedrive… o simplemente subir el archivo a un sitio como tinyupload.com (no es necesario registrarse).
Por favor marque la pregunta resuelta cuando termine y considere dando un pulgar hacia arriba si las publicaciones son útiles.
Comuníquese conmigo en privado para obtener asistencia con cualquier necesidad de BI a gran escala, tutoría, etc.
Salud
Ander101
En respuesta a Alba
@AlB Intenté pegar la tabla pero decía que no era compatible con HTML, así que intenté convertirla a HTML.
De todos modos, aquí hay un enlace al archivo de Excel con la tabla. ENLACE
Alba
H @Ander101
¿Puede mostrar las tablas (especialmente la inicial) en formato de texto-tabular para que se pueda copiar el contenido? En lugar de en una tapa de pantalla
Por favor marque la pregunta resuelta cuando termine y considere dando un pulgar hacia arriba si las publicaciones son útiles.
Comuníquese conmigo en privado para obtener asistencia con cualquier necesidad de BI a gran escala, tutoría, etc.
Salud
Ander101
En respuesta a Alba
@AlB Ahí tienes. Tomó un poco más de tiempo pero ya está listo:
[table]
[tr]
[th]Semana[/th]
[th]Tomás[/th]
[th]Alicia[/th]
[th]John[/th]
[th]Judd[/th]
[th]Tomás[/th]
[/tr]
[tr]
[td]48[/td]
[td]1[/td]
[td]nulo[/td]
[td]nulo[/td]
[td]nulo[/td]
[td]nulo[/td]
[/tr]
[tr]
[td]48[/td]
[td]nulo[/td]
[td]2[/td]
[td]nulo[/td]
[td]nulo[/td]
[td]nulo[/td]
[/tr]
[tr]
[td]48[/td]
[td]nulo[/td]
[td]nulo[/td]
[td]3[/td]
[td]nulo[/td]
[td]nulo[/td]
[/tr]
[tr]
[td]48[/td]
[td]nulo[/td]
[td]nulo[/td]
[td]nulo[/td]
[td]1[/td]
[td]nulo[/td]
[/tr]
[tr]
[td]48[/td]
[td]nulo[/td]
[td]nulo[/td]
[td]nulo[/td]
[td]nulo[/td]
[td]1[/td]
[/tr]
[tr]
[td]49[/td]
[td]3[/td]
[td]nulo[/td]
[td]nulo[/td]
[td]nulo[/td]
[td]nulo[/td]
[/tr]
[tr]
[td]49[/td]
[td]nulo[/td]
[td]3[/td]
[td]nulo[/td]
[td]nulo[/td]
[td]nulo[/td]
[/tr]
[tr]
[td]49[/td]
[td]nulo[/td]
[td]nulo[/td]
[td]1[/td]
[td]nulo[/td]
[td]nulo[/td]
[/tr]
[tr]
[td]49[/td]
[td]nulo[/td]
[td]nulo[/td]
[td]nulo[/td]
[td]2[/td]
[td]nulo[/td]
[/tr]
[tr]
[td]49[/td]
[td]nulo[/td]
[td]nulo[/td]
[td]nulo[/td]
[td]nulo[/td]
[td]3[/td]
[/tr]
[tr]
[td]50[/td]
[td]1[/td]
[td]nulo[/td]
[td]nulo[/td]
[td]nulo[/td]
[td]nulo[/td]
[/tr]
[tr]
[td]50[/td]
[td]nulo[/td]
[td]3[/td]
[td]nulo[/td]
[td]nulo[/td]
[td]nulo[/td]
[/tr]
[tr]
[td]50[/td]
[td]nulo[/td]
[td]nulo[/td]
[td]2[/td]
[td]nulo[/td]
[td]nulo[/td]
[/tr]
[tr]
[td]50[/td]
[td]nulo[/td]
[td]nulo[/td]
[td]nulo[/td]
[td]2[/td]
[td]nulo[/td]
[/tr]
[tr]
[td]50[/td]
[td]nulo[/td]
[td]nulo[/td]
[td]nulo[/td]
[td]nulo[/td]
[td]2[/td]
[/tr]
[tr]
[td]51[/td]
[td]3[/td]
[td]nulo[/td]
[td]nulo[/td]
[td]nulo[/td]
[td]nulo[/td]
[/tr]
[tr]
[td]51[/td]
[td]nulo[/td]
[td]2[/td]
[td]nulo[/td]
[td]nulo[/td]
[td]nulo[/td]
[/tr]
[tr]
[td]51[/td]
[td]nulo[/td]
[td]nulo[/td]
[td]1[/td]
[td]nulo[/td]
[td]nulo[/td]
[/tr]
[tr]
[td]51[/td]
[td]nulo[/td]
[td]nulo[/td]
[td]nulo[/td]
[td]3[/td]
[td]nulo[/td]
[/tr]
[tr]
[td]51[/td]
[td]nulo[/td]
[td]nulo[/td]
[td]nulo[/td]
[td]nulo[/td]
[td]2[/td]
[/tr]
[/table]
greg_deckler
@ Ander101: ¿Parece que en Power Query podría seleccionar sus columnas a su vez y filtrar los espacios en blanco?
Ander101
En respuesta a greg_deckler
@Greg_Deckler ¿Puedes desarrollar un poco más? Si filtro los espacios en blanco, termino eliminando datos de otras columnas.