jueves, 7 de enero de 2021

Power Query: Recuperando filas o columnas de una tabla

Muy frecuentemente se hace necesario tener que trabajar con elementos concretos de una tabla:
- una columna concreta
- una fila en particular
- o un dato (celda) única

Esto es posible conociendo dos sencillos caracteres:
- corchetes [ ]
- llaves { }

Debememos saber que en general los corchetes [ ] sirven para identificar columnas de una tabla (o Lista), y el resultado se recuperará en modo Lista!!.
Deberemos referirnos en modo: Nombre_Tabla[Nombre_columna]
De forma similar respecto a la forma de recuperar una fila de una tabla, que usaremos las llaves { }, retornándonos un 'Record' (registro!).
Sabiendo que la numeración u ordenación en Powew Query se basa en un sistema de base 0, esto es, el primer elemento será siempre el cero, podemos obtener una fila en modo: Nombre_Tabla{número índice de la fila}.
Igualmente, empleando los dos conceptos anteriores, podemos recuperar un dato (una celda concreta) de una tabla, en modo: Nombre_Tabla[Nombre_columna]{número índice de la fila}

Veamos los siguientes ejemplos...
Para obtener los valores de una columna:
let
    Origen = Table.FromRecords({[País="ES",Importe=1],
                    [País="ES",Importe=20],
                    [País="PT",Importe=300],
                    [País="PT",Importe=4],
                    [País="FR",Importe=50]},
                    type table[País = Text.Type, Importe = Currency.Type]),
    //obtenemos una Lista de los elementos de la columna País
    Personalizado1 = Origen[País]
in
    Personalizado1

recuperamos una 'Lista' de los elementos de la columna 'País'
Power Query: Recuperando filas o columnas de una tabla

Igualmente efectivo (y recomendado) y obvio con igual resultado podríamos haber escrito:
let
    Origen = Table.FromRecords({[País="ES",Importe=1],
        [País="ES",Importe=20],
        [País="PT",Importe=300],
        [País="PT",Importe=4],
        [País="FR",Importe=50]},
        type table[País = Text.Type, Importe = Currency.Type])[País] //obtenemos una Lista de los elementos de la columna País
in
    Origen


Para recuperar una fila (un Record de la tabla), podríamos escribir:
let
    Origen = Table.FromRecords({[País="ES",Importe=1],
        [País="ES",Importe=20],
        [País="PT",Importe=300],
        [País="PT",Importe=4],
        [País="FR",Importe=50]},
        type table[País = Text.Type, Importe = Currency.Type]){1} //obtenemos la segunda fila de la Tabla!
in
    Origen


Y finalmente para conseguir el dato concreto a una columna y una fila aplicaremos:
let
    Origen = Table.FromRecords({[País="ES",Importe=1],
        [País="ES",Importe=20],
        [País="PT",Importe=300],
        [País="PT",Importe=4],
        [País="FR",Importe=50]},
        type table[País = Text.Type, Importe = Currency.Type])[País]{1}
in
    Origen

Power Query: Recuperando filas o columnas de una tabla

En este caso, como curiosidad, comprobamos como la consulta cambia el icono de Tabla a 'Valor'.

Estos ejemplos nos sirven si queremos trabajar sobre una única columna o fila... en caso que queramos operar sobre distintas columnas o filas deberemos emplear funciones M ya vistas en el blog:
Table.SelectRows(table as table, condition as function) as table
devuelve una tabla con las filas que cumplan la condición marcada...
Table.SelectColumns(table as table, columns as any, optional missingField as nullable number) as table
con la que obtenemos una tabla solo con las columnas indicadas (en modo lista!)

No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.