Hoy veremos con Table.InsertRows la forma de insertar filas de manera controlada.
Además veremos cómo añadirla con valores vacíos (o ceros o cualquier otro valor deseado) y cómo cambiar algunos de esos datos.
Un año atrás vimos un ejercicio similar donde cambiabamos ciertos valores de algunas columnas de una fila existente.
En nuestro ejercicio la fila saldrá de la 'nada'.
Partiremos de dos tablas:
1-Tabla 'TblPPAL' sobre la cual añadiremos una fila nueva, para modificar después algunos de sus columnas
2-Tabla auxiliar 'TblCambios' que recogerá, de forma flexible, qué campos o columnas de la nueva fila vamos a cambiar y con qué valores...
Como siempre, cargaremos al editor de Power Query ambas tablas.
En un primer paso trabajaremos sobre la 'TblCambios' para generar/convertirlo en un Record, donde usaremos los datos de la columna 'Campos' como nombre de los campos del futuro registro, y por otra parte los datos de la columna 'Valor' como los valores asociados a cada campo del registro...
Así pues el código quedaría:
Ya tenemos una consulta capaz de generar un Record de tamaño variable, ajustado a lo dispuesto en la 'TblCambios'..
Vamos a trabajar ahora sobre la consulta de la 'TblPPAL' para añadir una nueva fila vacía, y posteriormente modificar los campos anteriores...
Usaremos Table.InsertRows
El código M sería el siguiente:
En definitiva, hemos conseguido crear una fila de la nada, controlando qué valores deseamos incorporar en ciertas columnas... :OO
Además veremos cómo añadirla con valores vacíos (o ceros o cualquier otro valor deseado) y cómo cambiar algunos de esos datos.
Un año atrás vimos un ejercicio similar donde cambiabamos ciertos valores de algunas columnas de una fila existente.
En nuestro ejercicio la fila saldrá de la 'nada'.
Partiremos de dos tablas:
1-Tabla 'TblPPAL' sobre la cual añadiremos una fila nueva, para modificar después algunos de sus columnas
2-Tabla auxiliar 'TblCambios' que recogerá, de forma flexible, qué campos o columnas de la nueva fila vamos a cambiar y con qué valores...
Como siempre, cargaremos al editor de Power Query ambas tablas.
En un primer paso trabajaremos sobre la 'TblCambios' para generar/convertirlo en un Record, donde usaremos los datos de la columna 'Campos' como nombre de los campos del futuro registro, y por otra parte los datos de la columna 'Valor' como los valores asociados a cada campo del registro...
Así pues el código quedaría:
let Origen = Excel.CurrentWorkbook(){[Name="TblCambios"]}[Content], TipoCambiado = Table.TransformColumnTypes(Origen,{{"Campos", type text}, {"Valor", type any}}), //generamos una lista de dos listas, // una con los nombres de los campos del futuro registro //y otra con los los valores del registro asociados... TablaaCols=Table.ToColumns(TipoCambiado), //creamos un registro a partir de los datos de las listas anteriores GeneraReg=Record.FromList(TablaaCols{1}, TablaaCols{0}) in GeneraReg
Ya tenemos una consulta capaz de generar un Record de tamaño variable, ajustado a lo dispuesto en la 'TblCambios'..
Vamos a trabajar ahora sobre la consulta de la 'TblPPAL' para añadir una nueva fila vacía, y posteriormente modificar los campos anteriores...
Usaremos Table.InsertRows
El código M sería el siguiente:
let Origen = Excel.CurrentWorkbook(){[Name="TblPPAL"]}[Content], TipoCambiado = Table.TransformColumnTypes(Origen,{{"Orden", Int64.Type}, {"Año", Int64.Type}, {"País", type text}, {"Unidades", Int64.Type}}), //añadimos una nueva fila // en la posición 0 de la tabla (la primera fila...) //Acabamos añadiendo en forma de registro elementos vacíos "" //para finalizar combinando y cambiando los elementos vacíos anteriores //con los cargados en el Registro creado desde la TblCambios AddFilaVacia= Table.InsertRows(TipoCambiado, 0, {Record.FromList(List.Repeat({""},Table.ColumnCount(TipoCambiado)), Table.ColumnNames(TipoCambiado)) & TblCambio} ) in AddFilaVacia
En definitiva, hemos conseguido crear una fila de la nada, controlando qué valores deseamos incorporar en ciertas columnas... :OO
No hay comentarios:
Publicar un comentario
Nota: solo los miembros de este blog pueden publicar comentarios.