Como expandir correctamente as táboas aniñadas en Power Query

Contidos

Digamos que temos un ficheiro de Excel con varias táboas intelixentes:

Como expandir correctamente as táboas aniñadas en Power Query

Se carga estas táboas en Power Query do xeito estándar usando o comando Datos – Obter datos – Do ficheiro – Do libro (Datos — Obter datos — Do ficheiro — Do libro de traballo), entón obtemos algo así:

Como expandir correctamente as táboas aniñadas en Power Query

A imaxe, creo, é familiar para moitos usuarios de Power Query. Pódense ver táboas aniñadas similares despois de combinar consultas (ao BUSCAR V), agrupar (comando Agrupar por aba Transformación), importando todos os ficheiros dun cartafol determinado, etc.

O seguinte paso lóxico nesta situación é xeralmente expandir todas as táboas aniñadas á vez, usando o botón con frechas dobres na cabeceira da columna. Data:

Como expandir correctamente as táboas aniñadas en Power Query

Como resultado, obtemos un conxunto de todas as filas de todas as táboas nun único todo. Todo é bo, sinxelo e claro. 

Agora imaxina que se engadiu unha nova columna (Desconto) nas táboas de orixe e/ou se eliminou unha das existentes (Cidade):

Como expandir correctamente as táboas aniñadas en Power Query

Entón, a nosa solicitude despois da actualización devolverá unha imaxe non tan fermosa: o desconto non apareceu e a columna da cidade quedou baleira, pero non desapareceu:

Como expandir correctamente as táboas aniñadas en Power Query

E é fácil ver por que: na barra de fórmulas podes ver claramente que os nomes das columnas expandidas están codificados nos argumentos da función Táboa.ExpandTableColumn como listas entre corchetes.

Evitar este problema é doado. Primeiro, imos obter os nomes das columnas da cabeceira de calquera táboa (por exemplo, a primeira) usando a función Táboa.Nomes de columnas. Será así:

Como expandir correctamente as táboas aniñadas en Power Query

Aquí:

  • #"Elimináronse outras columnas" – o nome do paso anterior, de onde tomamos os datos
  • 0 {} – o número da táboa da que extraemos a cabeceira (contando desde cero, é dicir, 0 é a primeira táboa)
  • [Datos] – o nome da columna no paso anterior, onde se atopan as táboas ampliadas

Queda por substituír a construción obtida na barra de fórmulas pola función Táboa.ExpandTableColumn no paso de expandir táboas en lugar de listas codificadas. Todo debería verse así ao final:

Como expandir correctamente as táboas aniñadas en Power Query

Iso é todo. E non haberá máis problemas coa expansión das táboas aniñadas cando cambien os datos de orixe.

  • Creación de táboas multiformato a partir dunha folla en Power Query
  • Crea táboas con diferentes cabeceiras a partir de varios ficheiros de Excel
  • Recopilación de datos de todas as follas do libro nunha soa táboa

 

Deixe unha resposta