Excel una herramienta para más cosas de las que crees

Puede que a algunos lectores les resulte extraño, pero lo cierto es que durante los años que llevo dedicado al mundo de la informática, no he encontrado ninguna herramienta más versátil y práctica para realizar multitud de tareas que nada tienen que ver con el cálculo o las finanzas.

Por supuesto, Excel proporciona excelentes prestaciones para el análisis de datos y de BI con herramientas como Solver o Power Pivot (y su hermano mayor Microsoft Power BI).

Pero yo quiero resaltar otras características de este programa que le ganó la partida al viejo Lotus 1-2-3. Utilizando la potencia de la programación de macros con VBA con Excel se puede construir casi cualquier herramienta, con la ventaja de que uno no tiene que realizar el esfuerzo de construir una interfaz de usuario, así fue como desarrollé mi primera herramienta con Excel:

El problema por resolver era que necesitábamos comprobar la métrica (caracteres y palabras) de muchos documentos (en Microsoft Word) que procedían de procesos de transcripción y de OCR, para pagar a los profesionales que los habían corregido. La solución trivial era utilizar la función de Word de contar palabras documento por documento, meter los resultados en un Excel y sumar, bueno no estaba mal, pero hablábamos de miles de documentos (cartas, páginas de revistas, manuscritos, etc.), y la solución manual era bastante costosa en tiempo. Así que después de darle algunas vueltas, me di cuenta de que con un poco de programación VBA podría automatizar el proceso y sin necesidad de construir una aplicación de escritorio. El procedimiento fue sencillo:

  • Cargar la lista de todos los documentos a una hoja Excel
  • Recorrer automáticamente uno por uno todos los documentos de la lista
  • Abrirlos de manera oculta llamando a Word desde dentro de Excel
  • Obtener de Word la cuenta de caracteres, palabra, etc. y anotarlo en la hoja.
  • Totalizar una vez recorridos todos.

El resultado fue esta pequeña herramienta, CountWord, a la que desde entonces le he sacado mucho partido en todos los proyectos en los que he necesitado esa funcionalidad. Desarrollar algo parecido con su propio interfaz (por ejemplo, en C# o Visual Basic) me hubiera costado, como mínimo, un trabajo cuatro veces mayor.

Otro ejemplo sencillo y que podéis descargar gratuitamente aquí es una herramienta para reunir archivos dispersos por vuestro disco y juntarlos en una sola carpeta, yo la desarrollé pensando en imágenes, pero puede usarse para todo tipo de documentos.

Otro uso bastante práctico, y bastante desconocido, de Excel son sus posibilidades de conectarse a fuentes de datos externas, esto se puede aprovechar para descargar información de sitios Web de manera muy simple, una modalidad básica de Web scraping. En este vídeo puedes ver como descargar una tabla de países desde un sitio Web directamente desde Excel:

 

Por último y para no cansaros más, os comento otra pequeña herramienta que también me ha ahorrado muchísimo trabajo. Tenía que manejar miles de documentos XML obtenidos a partir de datos de PDF y WORD, y en muchos de ellos se arrastraban caracteres especiales, lo que producía documentos XML no válidos. Podía usar herramientas como XMLSpy o similares, pero son un poco caras, así que mediante una sencilla macro en Excel de no más de 30 líneas de código y haciendo llamadas a la librería de Microsoft XML, tuve en un momento una aplicación que me ponía en una tabla de Excel todos los (miles) de documentos XML y me marcaba cuales estaban bien formados y cuales no, y además me indicaba el error y el sitio exacto donde estaba en cada archivo.

Así que si necesitáis algún tipo de ayuda o tenéis alguna necesidad de herramientas de este tipo con Excel, no dudéis en contactarme y os ayudaré encantado.

Un comentario en “Excel una herramienta para más cosas de las que crees
  1. Me ha gustado la explicación, simple y directa y muy ilustrativa.
    gracias Agustín

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*