Usa Power Query para pasar PDFs a Excel

Importar PDFs a Excel no es algo nuevo, pues desde siempre se ha podido copiar y pegar directo del documento, o bien por medio de otras herramientas externas. Ahora tenemos la opción de usar Power Query para extraer valores directo de un archivo PDF.

Cuando trabajamos con PDFs usualmente hablamos de que tenemos archivos que se ven así:

PDF importar datos ejemplo 1

Y en este caso nos interesa poder extraer los datos de la tabla de comisiones para pasarla a Excel, donde se vería así:

ejemplo tabla importar PDF 1

En vez de hacerlo manual, podemos hacer el proceso de forma automática si usamos Power Query. Para lograr esto, tendremos que seguir tres pasos clave:

(1) Conectar Power Query a nuestro PDF.
(2) Seleccionar la tabla o datos que deseemos extraer, y
(3) Cargarlos en Excel.

Para este ejemplo, vamos a usar un PDF famoso en el internet que puedes descargar aquí.

Y si no recuerdas cómo iniciar con Power Query, puedes revisar toda la información en este enlace.

Conectando Power Query al PDF

Empezaremos desde Power Query introduciendo el comando Data > Get Data > From File > From PDF, el cual encontraremos dentro del grupo de comandos «Obtener y transformar». Lo siguiente será buscar nuestro archivo PDF y lo importaremos, esto abrirá una ventana de Navegador.

PDF Power Query a Excel 1

Seleccionando la tabla deseada

En la ventana de diálogo que se abrió podremos ver una lista de objetos que son reconocidos automáticamente por Power Query y que podemos importar:

Ventana importar datos 1

Aquí podremos notar que aparecen Tablas y Páginas, las cuales podemos seleccionar para ver una vista previa de cómo serán importadas:

Ventana importar datos 2

De la primera tabla podemos notar que los valores de comisión de ventas no fueron guardados en una «tabla» formal, sino que fueron creadas con pestañas. En otras palabras, Power Query pudo detectar las tablas y las tradujo en el tipo de datos tabulados que buscábamos.

Ventana importar datos 3

Siendo ese un posible caso, también tenemos el caso de la segunda tabla en donde vemos esto:

Si miramos de vuelta el PDF, notaremos que esta sección no fue guardada en una «tabla» verdadera, y eso se debe a que la información estaba en una lista con viñetas, lo que causó que Power Query «tradujera» las viñetas como una tabla importable.

PDF ejemplo

Y si miramos la página entera, veremos esto:

ventana importar datos 4

Cabe destacar que si los datos tabulados que queremos importar abarcan varias páginas de PDF, podemos seleccionar la opción de «seleccionar múltiples objetos».

Ventana importar datos 5

Así seleccionaremos todos los objetos deseados y una vez en Power Query podremos anexar varias tablas en una sola para poder mandarlo a Excel.

Cargándolo a Excel

Como en este caso nos interesa la tabla de comisiones, será la que seleccionemos:

PDF Power Query a Excel 2

Como estos datos se encuentran limpios y listo, podemos simplemente darle al comando Load> Load To y así enviar los resultados en una tabla de Excel, donde solo quedará aplicarle un diseño y formato de nuestra preferencia:

PDF Power Query a Excel 3

Si necesitaramos limpiar los datos, como por ejemplo remover filas extra, columnas o añadir columnas calculadas podemos darle click al botón de «Transformar Datos». También podemos desde el editor de Power Query aplicar cualquier cambio que queramos antes de enviar los datos de vuelta a Excel.

PDF Power Query a Excel 4

Por fin podremos trabajar de manera uniforme los archivos PDF y generar análisis de reportes más avanzados en Excel.

Recuerda que también puedes hacer esto desde tu celular, y es aún más increíble que Power Query.

Cualquier duda nos leemos abajo.

Usa Power Query para pasar PDFs a Excel

2 comentarios en «Usa Power Query para pasar PDFs a Excel»

  1. Hola amigos existe la manera de crear una función que permita extraer las tablas de un pdf, sin necesidad de escoger alguna de ellas.

    1. Hola Ivan.
      En teoria, si solo seleccionas el Source como tal, tendras una tabla con todas las tablas y la data esperando a ser usada
      let
      Source = Pdf.Tables(File.Contents(«C:\test.pdf»), [Implementation=»1.3″,EnforceBorderLines=true])
      in
      Source

      Ya con esa tabla, puedes realizar un juego de combinaciones según la necesidad.
      Saludos!

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Scroll hacia arriba