A estas alturas todos conocemos diferentes alternativas para importar datos a nuestro editor de Power Query y crear las consultas oportunas:
- desde un libro
- desde unan carpeta
- desde un pdf
- desde un csv o txt
- desde una web
- ...
- desde una tabla o rango de nuestro libro de trabajo
Pero a veces no nos interesa o simplemente no podemos recuperar la información de ningún sitio y optaremos por crear una tabla dentro del editor de Power Query.
En otras ocasiones se hace necesario componer tablas o listas dentro de nuestro código M para facilitar el proceso de nuestra consulta... como veremos más adelante.
Hay muchas maneras de crear una Tabla desde la nada y poder disponer de ella posteriormete...
Una primera sería emplear el botón de Espeficicar datos dentro del menú Inicio > grupo Nueva consulta del editor de consultas.
Esto nos abrirá una ventana donde o bien escribir nuestros datos o bien pegar de algún otro lugar
Al finalizar nos genera una línea de código algo rara y difícil de leer :D
A partir de este punto podremos continuar y hacer exactamente lo mismo que con cualquier otra tabla cargada de la forma 'habitual'...
Una segunda manera sería recurrir al lenguaje M y emplear alguna de las funciones dentro de Power Query que permiten generar tablas:
- Table.FromColumns()
- Table.FromValue()
- Table.FromRows()
- Record.ToTable()
y sobre todo
- Table.FromList()
- Table.FromRecords()
En concreto la más usada:
Table.FromRecords(records as list, optional columns as any, optional missingField as nullable number) as table
nos permite completar una tabla con las columnas y filas que necesitemos, incluos definir el tipo de dato para cada columna...
Con esta función podemos incluir tantas filas y columnas como necesitemos con una estructura muy clara, entre corchetes cada fila nueva, y en cada fila identificando 'Nombre columna' y 'valor'.
Una tercera alternativa (y última de la que hablaremos hoy, es emplear la función #table(...), con la cual podemos generar tablas de una manera algo más rápida que en los casos anteriores...
Por ejemplo, podríamos escribir:
Con esta forma de trabajar podremos montar nuestra tabla con filas y columnas, e incluso poder definir el tipo de dato de esas columnas!!.
Una variante, sin necesidad de definir el tipo de dato (más sencilla):
Fíjate en las columnas y los tipos de datos generales asociados.
Una última variante de esta función M sería generar la tabla sin nombres de columnas, esto es, con nombres genéricos Column1, Column2, etc...
Con el primer argumento: 2 , indicamos el número de columnas a insertar.
Estas son mis tres formas de crear tablas de la nada... aunque insisto hay algunas más.
Pero no quiero cerrar este artículo sin mencionar un operador que me permite combinar tablas existentes, es el operador & (nuestro ampersand de siempre...el operador de unión).
Obviamente equivaldría a la función Table.Combine.
Veamos un ejemplo...
Igualmente podríamos haber escrito:
OJO con las llaves al inicio y final {} !!.
- desde un libro
- desde unan carpeta
- desde un pdf
- desde un csv o txt
- desde una web
- ...
- desde una tabla o rango de nuestro libro de trabajo
Pero a veces no nos interesa o simplemente no podemos recuperar la información de ningún sitio y optaremos por crear una tabla dentro del editor de Power Query.
En otras ocasiones se hace necesario componer tablas o listas dentro de nuestro código M para facilitar el proceso de nuestra consulta... como veremos más adelante.
Hay muchas maneras de crear una Tabla desde la nada y poder disponer de ella posteriormete...
Una primera sería emplear el botón de Espeficicar datos dentro del menú Inicio > grupo Nueva consulta del editor de consultas.
Esto nos abrirá una ventana donde o bien escribir nuestros datos o bien pegar de algún otro lugar
Al finalizar nos genera una línea de código algo rara y difícil de leer :D
A partir de este punto podremos continuar y hacer exactamente lo mismo que con cualquier otra tabla cargada de la forma 'habitual'...
Una segunda manera sería recurrir al lenguaje M y emplear alguna de las funciones dentro de Power Query que permiten generar tablas:
- Table.FromColumns()
- Table.FromValue()
- Table.FromRows()
- Record.ToTable()
y sobre todo
- Table.FromList()
- Table.FromRecords()
En concreto la más usada:
Table.FromRecords(records as list, optional columns as any, optional missingField as nullable number) as table
nos permite completar una tabla con las columnas y filas que necesitemos, incluos definir el tipo de dato para cada 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]) in Origen
Con esta función podemos incluir tantas filas y columnas como necesitemos con una estructura muy clara, entre corchetes cada fila nueva, y en cada fila identificando 'Nombre columna' y 'valor'.
Una tercera alternativa (y última de la que hablaremos hoy, es emplear la función #table(...), con la cual podemos generar tablas de una manera algo más rápida que en los casos anteriores...
Por ejemplo, podríamos escribir:
let Origen = #table(type table [País=text,Dato=number],{{"ES",2},{"PT",40},{"ES",100},{"ES",50},{"PT",20}}) in Origen
Con esta forma de trabajar podremos montar nuestra tabla con filas y columnas, e incluso poder definir el tipo de dato de esas columnas!!.
Una variante, sin necesidad de definir el tipo de dato (más sencilla):
let Origen = #table({"País","Dato"},{{"ES",2},{"PT",40},{"ES",100},{"ES",50},{"PT",20}}) in Origen
Fíjate en las columnas y los tipos de datos generales asociados.
Una última variante de esta función M sería generar la tabla sin nombres de columnas, esto es, con nombres genéricos Column1, Column2, etc...
let Origen = #table(2,{{"ES",2},{"PT",40},{"ES",100},{"ES",50},{"PT",20}}) in Origen
Con el primer argumento: 2 , indicamos el número de columnas a insertar.
Estas son mis tres formas de crear tablas de la nada... aunque insisto hay algunas más.
Pero no quiero cerrar este artículo sin mencionar un operador que me permite combinar tablas existentes, es el operador & (nuestro ampersand de siempre...el operador de unión).
Obviamente equivaldría a la función Table.Combine.
Veamos un ejemplo...
let Origen = #table({"País","Budget 2020"}, {{"ES",2},{"DE",3}}) & #table({"País","Actual 2020"}, {{"ES",4},{"DE",5}}) in Origen
Igualmente podríamos haber escrito:
let Origen = Table.Combine({#table({"País","Budget 2020"}, {{"ES",2},{"DE",3}}) , #table({"País","Actual 2020"}, {{"ES",4},{"DE",5}})}) in Origen
OJO con las llaves al inicio y final {} !!.
No hay comentarios:
Publicar un comentario
Nota: solo los miembros de este blog pueden publicar comentarios.