Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

Reply
Syndicate_Admin
Administrator
Administrator

¿Cómo dividir columna con lista en columnas?

Hola, tengo una columna con valores de texto y otras son listas de tamaño variable para las que estoy tratando de dividir en columnas.

Esta es la entrada de ejemplo

image.png

Esta es la muestra que tengo.

let
    Source = Table.FromList(
    {
        [Col1 = 1, Data = "abc de"],
        [Col1 = 3, Data = {1,2,3}],
        [Col1 = 5, Data = "mhwu 5"],
        [Col1 = 2, Data = {"o","p","q","r","s"}]
    },
    Record.FieldValues,
    {"Col1","Data"}
),

#"Converted to Table" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error)
in
    #"Converted to Table"

Esta es la salida que estoy tratando de obtener, pero en el paso # "Convertido a tabla", obtengo este error

"No podemos convertir un valor de tipo Table en Type List"

Gracias por cualquier ayuda

image.png

3 REPLIES 3
Syndicate_Admin
Administrator
Administrator

Bastante simple

let
    Source = Table.FromRecords(
        {
            [Col1 = 1, Data = "abc de"],
            [Col1 = 3, Data = {1,2,3}],
            [Col1 = 5, Data = "mhwu 5"],
            [Col1 = 2, Data = {"o","p","q","r","s"}]
        }
    ),
    #"Added Column" = Table.AddColumn(Source, "tb", each Table.Transpose(Table.FromList(if Value.Is([Data], type text) then Text.Split([Data], " ") else [Data], Splitter.SplitByNothing()))),
    #"Expanded Data" = let cnt = List.Max(List.Transform(#"Added Column"[tb], Table.ColumnCount)) in Table.ExpandTableColumn(#"Added Column", "tb", List.Transform({1..cnt}, each "Column" & Text.From(_)))
in
    #"Expanded Data"

CNENFRNL_0-1672116548404.png

Hola @CNENFRNL. Gracias por la ayuda. Funciona, pero estoy un poco perdido con tu solución.

¿Qué significa {{[Datos]}} y {[Datos]}?

Además, veo que usaste un bloque "let - in" y definiste una variable dentro del paso #"Datos expandidos". Eso es nuevo para mí. ¿Cuáles son las reglas a usar o cuándo usar otro/anidado "dejar entrar"? Gracias

Syndicate_Admin
Administrator
Administrator

Hi cgkas,

Medidas adoptadas:

1. Se duplicó la consulta inicial.

2. Haber filtrado la Lista y los otros valores en una consulta.

3. En la otra consulta, extraiga las columnas con cualquier delimitador.

4. Divídalo en columnas por el delimitador en el paso 3.

5. Ordenado usando un orden de clasificación personalizado según la imagen.

CÓDIGO:

1) Consulta filtrada
dejar
Origen = Table.FromList(
{
[Col1 = 1, Data = "abc de"],
[col1 = 3, datos = {1,2,3}],
[Col1 = 5, Datos = "mhwu 5"],
[Col1 = 2, Datos = {"o","p","q","r","s"}]
},
Record.FieldValues,
{"col1","datos"}
),
#"Filas filtradas" = Table.SelectRows(Origen, cada uno ([Col1] = 1 o [Col1] = 5))
en
#"Filas filtradas"

2 ) Consulta anexada
dejar
Origen = Table.FromList(
{
[Col1 = 1, Data = "abc de"],
[col1 = 3, datos = {1,2,3}],
[Col1 = 5, Datos = "mhwu 5"],
[Col1 = 2, Datos = {"o","p","q","r","s"}]
},
Record.FieldValues,
{"col1","datos"}
),
#"Filas filtradas" = Table.SelectRows(Origen, cada uno ([Col1] = 2 o [Col1] = 3)),
#"Valores extraídos" = Table.TransformColumns(#"Filas filtradas", {"Data", each Text.Combine(List.Transform(_, Text.From), ","), escriba text}),
#"Dividir columna por delimitador" = Table.SplitColumn(#"Valores extraídos", "Data", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), {"Data.1", "Data.2", "Data.3", "Data.4", "Data.5"}),
#"Changed Type" = Table.TransformColumnTypes(#"Dividir columna por delimitador",{{"Data.1", type text}, {"Data.2", type text}}),
#"columnas renombradas" = Table.RenameColumns(#"Tipo cambiado",{{"Data.1", "Data"}}),
#"Consulta anexada" = Table.Combine({#"Columnas renombradas", Query1}),
#"Added Conditional Column" = Table.AddColumn(#"Appended Query", "colsort", each if [Col1] = 3 then 2 else if [Col1] = 2 then 4 else if [Col1] = 5 then 3 else [Col1], escriba any),
#"Sorted Rows" = Table.Sort(#"Added Conditional Column",{{"colsort", Order.Ascending}}),
#"Columnas eliminadas" = Table.RemoveColumns(#"Filas ordenadas",{"colsort"})
en
#"Columnas eliminadas"

Helpful resources

Announcements
July 2024 Power BI Update

Power BI Monthly Update - July 2024

Check out the July 2024 Power BI update to learn about new features.

July Newsletter

Fabric Community Update - July 2024

Find out what's new and trending in the Fabric Community.

Top Kudoed Authors