Table.ExpandTableColumn

Partiendo de una tabla con una columna que contiene tablas, la función Table.ExpandTableColumn expande dicha columna en nuevas columnas con las columnas de las tablas.

Sintaxis

Table.ExpandTableColumn(
    table as table,
    column as text,
    columnNames as list,
    optional newColumnNames as nullable list
) as table

Parámetros
  • table: tabla a evaluar
  • column: columna conteniendo las tablas a expandir
  • columnNames: nombres de las columnas a extraer de las tablas
  • newColumnNames: (opcional) nombres a asignar a las columnas creadas
Información adicional

El campo conteniendo las tablas desaparece cuando se expande, y esto con independencia de que se extraigan todas las columnas que contiene o no.

Las filas de la tabla original se replicarán tantas veces como filas contenga cada una de las tablas asociadas (véase ejemplo).

Si se añade el cuarto parámetro, newColumnNames, deberá contener un valor para cada una de las columnas extraídos.

Ejemplos

En este ejemplo partimos de una tabla con dos campos: el primero, "name", contiene el nombre de un vendedor, y el segundo, "sales", contiene una tabla con las ventas de dicho vendedor:

let
    Source = Table.FromRecords(
        {
            [name = "Jon", sales = Table.FromRecords({
                    [product = "A", price = 14],
                    [product = "B", price = 8]
                    })],
            [name = "Juan", sales = Table.FromRecords({
                    [product = "A", price = 20],
                    [product = "C", price = 12]
                    })]

        }
    )
in
    Source

Función M Table.ExpandTableColumn

Podemos visualizar la tabla de, por ejemplo, Juan, haciendo un clic en el enlace Table que se muestra a la derecha de su etiqueta en la imagen anterior:

Función M Table.ExpandTableColumn

Ahora podemos expandir la columna "sales" añadiendo a nuestra tabla las columnas extraídas. Por ejemplo, podríamos extraer las dos columnas, "product" y "price" con el siguiente código:

let
    Source = Table.FromRecords(
        {
            [name = "Jon", sales = Table.FromRecords({
                    [product = "A", price = 14],
                    [product = "B", price = 8]
                    })],
            [name = "Juan", sales = Table.FromRecords({
                    [product = "A", price = 20],
                    [product = "C", price = 12]
                    })]

        }
    ),
    sales = Source{1}[sales]
in
    Table.ExpandTableColumn(
        Source,
        "sales",
        {"product", "price"}
    )

Función M Table.ExpandTableColumn

Comprobamos que las filas de la tabla original se replican tantas veces como filas tenga cada una de las tablas expandidas.

Es posible aplicar a las columnas creadas nuevos nombres añadiendo el cuarto parámetro, newColumnNames:

let
    Source = Table.FromRecords(
        {
            [name = "Jon", sales = Table.FromRecords({
                    [product = "A", price = 14],
                    [product = "B", price = 8]
                    })],
            [name = "Juan", sales = Table.FromRecords({
                    [product = "A", price = 20],
                    [product = "C", price = 12]
                    })]

        }
    ),
    sales = Source{1}[sales]
in
    Table.ExpandTableColumn(
        Source,
        "sales",
        {"product", "price"},
        {"producto", "precio"}
    )

Función M Table.ExpandTableColumn
Categoría
Funciones de tabla
Enviado por admin el Sáb, 05/09/2020 - 11:58