Aagrupar y concatenar columna con un valor común

Un usuario Pregunto ✅

cramos

¡Hola!

Lo siento, probablemente esto se haya preguntado antes, pero no he podido encontrarlo.

Tengo columnas, la columna 1 tiene valores repetidos y la columna 2 valores únicos. Me gustaría agrupar los valores repetidos de la columna 1 y concatenar los valores en la columna 2.

tengo algo como:

a perros
a gato
a pájaro
B enero
B febrero
C 1
C 2
C 3
C 4

Y me gustaría obtener:

a perro, gato, pajaro
B enero febrero
C 1,2,3,4

¿Es posible?

¡Muchas gracias!

Marcel Beug

En el Editor de consultas, puede utilizar la opción Agrupar por.

Primero, elija alguna agregación para la columna 2 para crear el código base, por ejemplo, Sum:

Agrupar por 4.png

(ignore cualquier error) y ajuste el código generado a:

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}, {"Column2", type text}}),
    #"Grouped Rows" = Table.Group(#"Changed Type", {"Column1"}, {{"Column2 Values", each Text.Combine([Column2],","), type text}})
in
    #"Grouped Rows"

Observe que Column2 se escribe como texto.

ChemEnger

@MarcelBeug,

Sé que este es un hilo antiguo, pero me ayudó muchísimo, ¡gracias! Para otros que tropiezan con esta respuesta, hay una Idea pero sin apenas votos: Idea de Microsoft · Incorporar el operador Concatenar a la función Agrupar por (powerbi.com)

Burak317

¿Hay alguna manera de lograr esto, sin tener en cuenta los espacios en blanco?

RavitPBI

Hola, parece que esta solución no funciona para el modo DirectQuery. ¿Hay alguna manera de que podamos implementar esta agrupación cuando usamos el modo DirectQuery?

RavitPBI

En respuesta a RavitPBI

No importa, ¡entendido!

Marcel Beug

En el Editor de consultas, puede utilizar la opción Agrupar por.

Primero, elija alguna agregación para la columna 2 para crear el código base, por ejemplo, Sum:

Agrupar por 4.png

(ignore cualquier error) y ajuste el código generado a:

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}, {"Column2", type text}}),
    #"Grouped Rows" = Table.Group(#"Changed Type", {"Column1"}, {{"Column2 Values", each Text.Combine([Column2],","), type text}})
in
    #"Grouped Rows"

Observe que Column2 se escribe como texto.

ngadiez

En respuesta a Marcel Beug

@MarcelBeug hola Marcel.

Si tengo esta tabla

IDENTIFICACIÓN Ciudad País
1 tokio Japón
1 Kioto Japón
2 Nueva York EE.UU
3 Beijing China
3 Jacarta Indonesia
4 Kuala Lumpur Malasia

puedo resumir esto

IDENTIFICACIÓN Ciudad País
1 Tokio, Kioto Japón
2 Nueva York EE.UU
3 Pekín, Yakarta China, Indonesia
4 Kuala Lumpur Malasia

La idea es eliminar la repetición, en lugar de Japón, Japón. Se convertirá en Japón.

jalozanocampo

En respuesta a ngadiez

Hola @ngadiez

Esto funcionó para mí, la clave era List.Distict:

Table.Group(#»Columnas quitadas», {«Ciudad»}, {{«País», each Text.Combine(List.Distinct([País)»»)typetext}})[Country)»»)typetext}})

mgiro

En respuesta a Marcel Beug

¿Hay alguna manera de lograr esto en DAX? tratando de hacer esto, pero en DAX porque es de una tabla calculada.

¡Gracias!

JoshInglés

En respuesta a mgiro

Esto no es posible en DAX, por lo que he intentado. Ni SUMMARIZE ni GROUP_BY ni SUMMARIZECOLUMNS hacen que esto esté disponible. Puede contar las filas, contar los valores únicos, incluso, pero no puede extraer el texto de las columnas y tratarlas como filas.

FrankAT

En respuesta a JoshInglés

Hola @Cramos

Esto no es correcto. tengo la siguiente tabla:

03-05-_2021_17-55-20.png

Con DAX puedo crear una tabla calculada como esta:

03-05-_2021_17-56-52.png

En una matriz visual puedo usar la siguiente medida:

03-05-_2021_17-58-02.png

Un cordial saludo desde el pueblo donde vive la leyenda del ‘Pied Piper of Hamelin’
FrankAT (Orgulloso de ser un Datanaut)

cramos

En respuesta a Marcel Beug

¡Funciona perfectamente! ¡Muchas gracias!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *