martes, 27 de febrero de 2018

Power Query: Listar ficheros de una carpeta

Hace bastante tiempo publiqué una manera, mediante programación, de recuperar los ficheros existentes en una carpeta (ver macro Excel).
Hoy veremos cómo podemos conseguir lo mismo empleando la herramienta Power Query / Obtener y transformar.


Supongamos queremos recuperar los nombres de los ficheros contenidos en una carpeta, por ejemplo
E:\excelforo
pero solo los que tengan extensión .gif


Accedemos a la ficha Datos > grupo Obtener y transformar > desplegable Nueva consulta > opción Desde un archivo > Desde una carpeta

Power Query: Listar ficheros de una carpeta



Se abrirá una ventana donde elegir la ruta de nuestra carpeta... bien empleando el explorador (Examinar) o bien escribiéndola directamente.

Al aceptar veremos una ventana con un listado de los ficheros, con su Nombre, extensión, fechas de creación, modificación, último acceso y su ruta.

Power Query: Listar ficheros de una carpeta



En nuestro caso, al querer segmentar la información del listado, presionaremos el botón de Editar. Esto nos abrirá el Editor de consultas...

Con el editor abierto realizaremos algunas 'operaciones':
1- aplicar un filtro sobre el campo 'Extension' con el fin de visualizar solo aquellos registros con extensión .gif (tal como queríamos).
2- de forma similar, aplicaremos sobre el campo que muestra la ruta ('Folder path') un filtro para ver únicamente los ficheros .gif en la ruta raíz elegida (E:\excelforo).. y no ver los de las subcarpetas.
3- seleccionaremos dos campos: 'Name' y 'Folder path' y haciendo clic derecho con el ratón elegiremos la opción para eliminar el resto de campos: Quitar otras columnas
4- y por último, si así lo estimamos conveniente, agregaremos una nueva columna personalizada que una o concatene las dos anteriores:
'Folder path' y 'Name'
en ese orden para tener completa la ruta y nombre de los ficheros buscados...

Para ello lo más simple será seleccionar las columnas implicadas y haciendo clic derecho con el ratón sobre ellas elegir la opción de Combinar columnas
Tendremos cuidado de no añadir ningún separador, ya que en este caso no es necesario.
Además he renombrado el campo

Power Query: Listar ficheros de una carpeta



Este sería el aspecto final de la consulta:

Power Query: Listar ficheros de una carpeta



Ya podemos Cerrar y cargar en... para devolver el listado a nuestra hoja de cálculo.

Power Query: Listar ficheros de una carpeta

8 comentarios:

  1. Estoy tratando de buscar esta solución en Excel 2007. ¿Es posible o sólo vale para versiones posteriores?
    Muchas gracias por tu gran trabajo,
    JM

    ResponderEliminar
    Respuestas
    1. Hola JM,
      esta herramienta aparece como complemento en la versión Excel 2010, y ya integrada en Excel 2016
      Lo siento pero no esta disponible para 2007
      :'(
      Saludos

      Eliminar
    2. Muchas gracias! Tu blog es maravilloso, me sirve de gran ayuda.
      Un saludo,
      JM

      Eliminar
  2. Ismael, podrías explicar lo mismo pero para el caso de vincular tablas. Es decir, todos los meses me pasan una lista de precios actualizada en Excel. Mí idea es dejar el archivo en una carpeta y con query vincularlo con los archivos de meses anteriores y crear una única base de datos.

    ResponderEliminar
    Respuestas
    1. Hola Max Calde
      echa un vistazo a esta herramienta complementaria de Power Pivot
      http://excelforo.blogspot.com.es/2015/04/consolidando-datos-de-origenes.html
      Espero te sirva
      Saludos

      Eliminar
  3. Cordial saludo. Mil gracias por compartir tu conocimiento, este foro me ha sido de grana ayuda.

    ResponderEliminar