March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early bird discount ends December 31.
Register NowBe one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now
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
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
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"
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
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"
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!