Contidos

Ás veces hai situacións nas que non se sabe de antemán exactamente cantas e que filas hai que importar dos datos de orixe. Supoñamos que temos que cargar datos dun ficheiro de texto en Power Query, o que, a primeira vista, non presenta un gran problema. A dificultade é que o ficheiro actualízase regularmente, e mañá pode ter un número diferente de liñas con datos, unha cabeceira de tres, non dúas liñas, etc.:

Importar un fragmento flotante en Power Query

É dicir, non podemos dicir de antemán con certeza, partindo de que liña e exactamente cantas liñas hai que importar. E este é un problema, porque estes parámetros están codificados no código M da solicitude. E se fai unha solicitude para o primeiro ficheiro (importando 5 liñas a partir do 4), entón xa non funcionará correctamente co segundo.

Sería xenial que a nosa consulta puidese determinar por si mesma o comezo e o final do bloque de texto "flotante" para importar.

A solución que quero propoñer baséase na idea de que os nosos datos conteñen algunhas palabras clave ou valores que se poden utilizar como marcadores (características) do inicio e do final do bloque de datos que necesitamos. No noso exemplo, o comezo será unha liña que comeza coa palabra SKU, e o final é unha liña coa palabra Total. Esta validación de filas é fácil de implementar en Power Query usando unha columna condicional, un análogo da función IF (SI) en Microsoft Excel.

A ver como facelo.

En primeiro lugar, carguemos o contido do noso ficheiro de texto en Power Query do xeito estándar: a través do comando Datos – Obter datos – Do ficheiro – Do ficheiro de texto/CSV (Datos - Obter datos - Do ficheiro - Do ficheiro de texto/CSV). Se tes Power Query instalado como complemento separado, os comandos correspondentes estarán na pestana Consulta de enerxía:

Importar un fragmento flotante en Power Query

Como sempre, ao importar, pode seleccionar o carácter separador de columnas (no noso caso, esta é unha pestana) e despois de importar, pode eliminar o paso engadido automaticamente tipo modificado (Tipo modificado), porque é demasiado pronto para asignar tipos de datos ás columnas:

Importar un fragmento flotante en Power Query

Agora co comando Engadir unha columna - Columna condicional (Engadir columna — Columna condicional)imos engadir unha columna coa comprobación de dúas condicións - ao principio e ao final do bloque - e mostrando calquera valor diferente en cada caso (por exemplo, números 1 и 2). Se non se cumpre ningunha das condicións, a saída nulo:

Importar un fragmento flotante en Power Query

Despois de premer OK obtemos a seguinte imaxe:

Importar un fragmento flotante en Power Query

Agora imos á pestana. Transformación e escolle un equipo Encher - Abaixo (Transformar - Encher - Abaixo) – os nosos e dous estenderanse pola columna:

Importar un fragmento flotante en Power Query

Ben, entón, como podes adiviñar, podes simplemente filtrar as unidades na columna condicional, e aquí tes o noso cobizado dato:

Importar un fragmento flotante en Power Query

Só queda subir a primeira liña á cabeceira co comando Use a primeira liña como cabeceiras aba casa (Inicio – Usa a primeira fila como cabeceiras) e elimina a columna máis condicional innecesaria facendo clic co botón dereito na súa cabeceira e seleccionando o comando Eliminar columna (Eliminar columna):

Problema resolto. Agora, ao cambiar os datos do ficheiro de texto de orixe, a consulta agora determinará de forma independente o comezo e o final do fragmento "flotante" dos datos que necesitamos e importará o número correcto de liñas cada vez. Por suposto, este enfoque tamén funciona no caso de importar ficheiros XLSX, non TXT, así como ao importar todos os ficheiros dun cartafol ao mesmo tempo co comando Datos – Obter datos – Do ficheiro – Do cartafol (Datos — Obter datos — Do ficheiro — Do cartafol).

  • Montaxe de táboas a partir de diferentes ficheiros mediante Power Query
  • Rediseñar unha táboa cruzada a plana con macros e Power Query
  • Construír un diagrama de Gantt do proxecto en Power Query

Deixe unha resposta