Table.Unpivot

La función Table.Unpivot despivota un conjunto de columnas de una tabla convirtiéndolas en dos columnas de atributos y valores.

Sintaxis

Table.Unpivot(
    table as table,
    pivotColumns as list,
    attributeColumn as text,
    valueColumn as text
) as table

Parámetros
  • table: tabla a despivotar
  • pivotColumns: columnas a convertir en dos columnas de atributos y valores
  • attributeColumn: nombre de la columna de atributos a crear
  • valueColumn: nombre de la columna de valores a crear
Información adicional

Los valores nulos no son incluidos en el resultado de la función (véase ejemplo a continuación).

Ejemplos

En este ejemplo partimos de la siguiente tabla mostrando las ventas en varios países a lo largo de tres años:

let
    table = Table.FromRecords({
        [country = "Portugal", 2015 = 15, 2016 = null, 2017 = 23],
        [country = "Germany", 2015 = 12, 2016 = 31, 2017 = 19],
        [country = "UK", 2015 = 8, 2016 = 11, 2017 = 14]
    })
in
    table

Función M Table.Unpivot

Si quisiéramos convertir las tres columnas correspondientes a los años en dos columnas, una conteniendo el año (a la que podemos llamar "Year") y otra conteniendo la cifra de ventas (a la que podemos llamar "Sales"), podríamos conseguirlo con el siguiente código:

let
    table = Table.FromRecords({
        [country = "Portugal", 2015 = 15, 2016 = null, 2017 = 23],
        [country = "Germany", 2015 = 12, 2016 = 31, 2017 = 19],
        [country = "UK", 2015 = 8, 2016 = 11, 2017 = 14]
    })
in
    Table.Unpivot(
        table,
        {"2015", "2016", "2017"},
        "Year",
        "Sales"
    )

Función M Table.Unpivot

Obsérvese que el valor nulo correspondiente a Portugal, 2016 no se ha incluido.

En este segundo ejemplo nuestra tabla tiene un campo adicional correspondiente a la ciudad, campo que no incluimos en la despivotización:

let
    table = Table.FromRecords({
        [country = "Portugal", city = "Lisbon", 2015 = 15, 2016 = null, 2017 = 23],
        [country = "Germany", city = "Berlin", 2015 = 12, 2016 = 31, 2017 = 19],
        [country = "UK", city = "London", 2015 = 8, 2016 = 11, 2017 = 14]
    })
in
    Table.Unpivot(
        table,
        {"2015", "2016", "2017"},
        "Year",
        "Sales"
    )

Función M Table.Unpivot
Categoría
Funciones de tabla
Enviado por admin el Mar, 01/09/2020 - 16:40