martes, 11 de diciembre de 2018

Libro: El lado oscuro de Microsoft Excel

Archivos de ejemplo:


Funciones de Excel de las que no debes prescindir

Funciones de Excel Parte I.xlsx


Funciones de Excel Parte I Completo.xlsx


Portada


Contraportada


Administración de datos con Microsoft Excel

¿Por qué utilizar Microsoft Excel como SGBD?

Los sistemas de gestión de base de datos, también conocidos por sus siglas SGBD, son programas que principalmente permiten almacenar, modificar y extraer información de una base de datos, de manera que uno, o varios usuarios puedan acceder y manipular la información al mismo tiempo. Claro está, que este concepto puede ser mucho más amplio, pero para no enredar más el asunto lo dejaremos hasta aquí.

En la actualidad existe una gran variedad de Sistema de Gestión de Base de Datos, por nombrar algunos, tenemos:
  • Microsoft SQL Server.
  • MySQL.
  • Microsoft Access.
  • Oracle.
  • PostgreSQL.
  • SQLite.

Ya, en este punto, debo aclarar, antes de que te sientas engañados, que Excel no es un SGBD, pero podemos hacer que se asemeje un poco, por lo menos para los fines que nos atañen. Si bien, es cierto que es mucho más eficiente el uso de un programa diseñado para tal fin, también es cierto que no siempre dispondrás de un departamento de AIT (Automatización, Informática y Telecomunicaciones) esperando por ti para diseñarte bases de datos, que te automatice documentos a tu medida, también es cierto que el adquirir los conocimientos para implementar bases de datos no es una tarea que puedas lograr en poco tiempo, no es imposible, pero normalmente requiere algo de esfuerzo.

Además, para los efectos de este libro deseamos romper el siguiente paradigma: “¿es base de datos o es hoja de cálculo?”, y nosotros queremos ambas, queremos combinar las facilidades de administrar tablas de Excel como bases de datos y al mismo tiempo gozar de la potencia de una hoja de cálculo, y eso es precisamente lo que lograremos con este libro, y créame estimado lector, que es mucho, pero mucho más fácil usar Excel como una base de datos, que utilizar Access o cualquier otro gestor de base de datos como una hoja de cálculo.

Y aquí voy con otro cuento, en un momento de mi trayectoria profesional me planteé el tema de implementar definitivamente el uso de una base de datos, y luego de discernir seriamente el SGBD a utilizar, me decidí por Access, no por ser el mejor, o el más eficiente, sino por ser el que más se adaptaba a mis necesidades del momento, tomando en consideración:
  • La cantidad de información a procesar.
  • El tipo de datos a tratar.
  • La cantidad de usuarios que pueden acceder a la información.
  • Las restricciones de la intranet.
Con todo y que Access es uno de los SGBD más sencillos de utilizar y aprender, fue frustrante esperar que mi equipo de trabajo, tomaran un verdadero interés por él, y aprendieran a utilizar esta herramienta con una simple inducción, por lo que todo el esfuerzo invertido en este proyecto, moría conmigo al cambiar de cargo o al salir de vacaciones. Hasta que finalmente me plantee seriamente la pregunta: ¿Y por qué no utilizar Excel como SGBD? Te confieso que me pareció una completa locura, pero luego de meditarlo arduamente llegué a la conclusión que por tantos años me negué a aceptar, y que siempre estuve buscando, gozar de las prestaciones de una base de datos sin dejar sin perder la potencia de una hoja de cálculo, y por fin logré romper el paradigma, y comprendí que el utilizar Excel como SGBD me podría facilitar la vida enormemente, y no te imaginas cuánto.


El utilizar Excel como SGBD implicó que mis compañeros, supervisores y supervisados podrían manipular mis bases de datos en Excel sin un conocimiento previo en SGBD, solo con funciones de búsqueda aceptable para un usuario nivel básico - intermedio de Excel sería suficiente, y podrían manipular la información contenida en estas tablas sin mayor trauma, y esta flexibilidad no tiene precio. La forma en que se pueden diseñar las tablas permite que la información que se genere sea fácilmente manejable por cualquier otro miembro del equipo, y lo mejor de todo, tienes a mano, sin hacer conversiones previas, toda tu información, que con mucho esfuerzo haz recopilado y organizado para manipularlos a tu antojo en una verdadera hoja de cálculo.

Para resumir todo lo expuesto anteriormente podemos decir que Excel no es un SGBD, pero podemos asemejarlo a uno, con la intención de obtener una mayor flexibilidad, sencillez y facilidad en la manipulación de la información.

¿Por qué automatizar con VBA?

En una ocasión un compañero de estudios y excelente programador, me recomendó que instalara un complemento (plug-in[1]) para que realizará las automatizaciones en otro lenguaje distinto a VB, pero en realidad ni siquiera lo intenté, a pesar de que me puedo sentir más cómodo programando en Pascal o C/C++, la razón, a mi entender es simple, y es la misma razón por la cual no diseñé una base de datos en un verdadero gestor de base de datos como los mencionado en el punto anterior. En primer lugar, con solo adquirir la licencia de Microsoft Excel o la suite completa de Microsoft Office, el VBA ya viene integrado en dicho paquete, y no tienes por qué pagar una licencia adicional. En segundo lugar, para los que no poseemos grandes conocimientos de programación, el lenguaje Visual Basic (VB) es muy sencillo de usar si se les compara con otros, como Asembler, C/C++, Java, Pascal, entre muchos. En tercer lugar, y considerando que esta técnica de automatización normalmente conlleva a la creación de un complemento de Excel, se hace mucho más fácil su portabilidad y pueda ser usado por otros usuarios sin mayores contratiempos. Y por último, la ayuda disponible en internet es muchísimo mayor que para otros lenguajes.

A quién va dirigido este blog

Si por la naturaleza de tu trabajo u oficio, requieres con frecuencia vaciar información contenida en libros de Excel o bases de datos de Access a otros libros de Excel, o a otros archivos de la suite de Microsoft Office, principalmente Word y PowerPoint, este texto te ayudará a ser más llevadera esas tareas rutinarias. Créeme que de verdad te sorprenderás de todo el tiempo que ahorras al optimizar dichas tareas, pero eso sí, y no digas que no te lo advertí, la parte negativa, es que en mucho de los casos, el automatizar documentos se puede volver algo adictivo, por lo que no querrás parar de automatizar, y te sorprenderás pensando en la mejor forma de automatizar los reportes de tu trabajo cuando menos te los esperes.

Como amigo, te voy a decir un secreto: si quieres sacarle verdadero provecho a las técnicas de automatización expuestas en este libro, te recomiendo que no hagas alarde de lo aprendido aquí, una vez finalizada la implementación de la automatización de tus documentos, simula que inviertes el tiempo esperado por un trabajador común, y te quedará tiempo para otras actividades, de verdad te asombrarás, je, je, es broma, bueno, no tan en broma, pero cuando estas técnicas se usan en un equipo de trabajo, en donde todos tienen acceso a la misma base de datos, es impresionante la mejora que se produce, como para comerse el mundo entero.

El enfoque de este blog

En la escritura de este blog, he procurado mantener un enfoque práctico y sencillo, evitando utilizar palabras rebuscadas, pero tampoco es que se pueda hacer mucho al respecto.

Al inicio de este texto, decidí comenzar con algunas consideraciones previas a tener en cuenta, como ¿qué es una base de datos?, ¿qué es una hoja de cálculo?, las premisas que deberemos considerar al diseñar tablas en Excel, y algunos aspectos del entorno de Excel, como los tipos de referencias y nombres a rangos de celdas, entre otros. Seguidamente, repasaremos las principales funciones de Excel de las cuales considero que no debemos prescindir para la elaboración de nuestros reportes, y finalmente explicaremos la incorporación de controles de formularios a nuestros libros de Excel, y hasta aquí, considero culminada nuestra primera parte para establecer las bases de esta aventura.

Luego, la cosa se pondrá un poco más interesante, cuando incursionemos en el apasionante mundo de las macros y VBA, esta segunda parte de este libro no será el corazón de esta obra, pero sí muy necesario para continuar nuestro recorrido. Con lo aprendido en la primera parte ya tenemos la mesa, y con la segunda, la caja de herramientas que colocaremos sobre la mesa.

Ya con la mesa y la caja de herramientas sobre esta, la tercera parte de esta obra consistirá en hacer uso del Active Directory, que únicamente te será de utilidad en caso de que tu empresa les permita hacer uso de esta, no pasa nada si no podemos ejercitar esta parte. También aprenderemos a crear Complementos de Excel e incorporar cintas de opciones personalizables a tu entorno de Excel. Y con esta tercera, iremos colocando en nuestro estante los objetos para uso nuestro, que construiremos en la mesa con nuestra caja de herramientas.

Ya un poco más animados, porque ya le estamos viendo el queso a la tostada, comenzaremos con nuestra gran locura, la cuarta parte, guardar toda nuestra materia prima, es decir toda nuestra información de trabajo, cuidadosamente organizada en inmensos almacenes correctamente identificados, y ahí es cuando buscaremos asemejar Excel a un SGBD, veremos cómo podemos ejecutar consultas SQL a nuestra tablas de Excel y a otras bases de datos.

Y finalmente, la quinta parte, ya con la mesa, la caja de herramienta, el estante con nuestros propios objetos y los almacenes con nuestra materia prima, es cuando volvemos a utilizar nuestra caja de herramienta para crear la maquinaria que procesará nuestra materia prima para que el producto esté listo o casi listo para la entrega, y es cuando vemos como generar reportes automatizado.

Bueno, manos a la obra, no sé tú, pero yo estoy ansioso por comenzar, vamos a proceder a invertir nuestro tiempo en una actividad de la que jamás te arrepentirás.




[1] Un complemento o plug-in en inglés, es una aplicación que adiciona funcionalidad o una nueva característica a un determinado software.

lunes, 10 de diciembre de 2018

Automatización de documentos Office

¿Por qué automatizar documentos?

Estimado lector, primero que nada: gracias por visitar mi blog. Estoy seguro que durante la lectura de los próximos capítulos ampliarás notablemente tus conocimientos de Microsoft Excel y Visual Basic para Aplicaciones (VBA[1]), y además disfrutarás enormemente el recorrido por estas páginas. Permítame apreciado amigo que te cuente un poco sobre mi experiencia personal sobre el uso de esta herramienta.

Durante mi trayectoria profesional he ocupado diversos cargos, como ingeniero de proyectos, planificador de proyectos, supervisor de obras de construcción, analista de presupuesto, entre otros, y entre las variadas actividades que tienen estos cargos, he observado que siempre se presenta como factor común: “la manipulación de información para generar reportes”.

Y otra vez a lo mismo: “a trabajar duro”. La información normalmente está contenida en uno o varios libros de Excel, que luego tienes que plasmar en una presentación PowerPoint o un documento Word, y hay comienzas otra vez con el célebre Copy – Paste, de un archivo a otro, y a pegar tablas, y a pegar gráficos, un numerito aquí y otro allá, un texto aquí y otro más allá, y se te van las horas, y por fin, al cabo de media mañana de trabajo, revisando cuidadosamente que pasaste bien la información de un documento a otro, has finalizado tu informe o reporte, y terminas tu jornada muy cansado, con la sensación de haber trabajado mucho, muchísimo, pero en con el malestar de no haber invertido tu tiempo en otros asuntos de interés, bien sean de trabajo o personales. Y al día siguiente… “nuevamente a lo mismo”, el mismo documento Word, la misma presentación PowerPoint, el mismo libro de Excel, el mismo trabajo pero con otros numeritos, y… ¿qué te puedo decir?: “nuevamente a perder el tiempo”. Y así, día tras día.

Esta rutina del Copy – Paste o las técnicas simples de enlazar (linkear[2]) datos de un documento a otro, sin criterio alguno de selección por parte de esta poderosa herramienta que es el Excel, me obligaron a adentrarme más y más en el oscuro mundo de Microsoft Excel, luego en VBA y finalmente en algunas transacciones SQL[3] (Lenguaje Estructurado de Consultas), para ir perfeccionando poco a poco poderosas técnicas de elaboración de reportes.

Luego de evaluar las ventajas de tener la mayor parte de mis trabajos automatizados, y experimentar la felicidad que se tiene al disponer de más tiempo para dedicarlo a otros asuntos, como por ejemplo: “escribir este libro”, me  pidieron compartir estas técnicas de automatización con mis compañeros de trabajo, luego comencé a impartir cursos al personal de mi organización, seguidamente a brindar asesoría sin abandonar las actividades de mi puesto, y finalmente me decidí a escribir esta obra, que no son más que años de investigación, para lograr afinar cada vez más dichos procesos de automatización.

Estoy consciente de que el título de este blog suena a “Guerra de las Galaxias”, y te confieso que soy fanático de esta saga, a pesar de Disney, pero no por esto el título de la obra. Cuando hablo del lado oscuro, me refiero principalmente a las áreas poco transitadas, o poco exploradas, por los usuarios comunes de Excel. En mi experiencia profesional y personal me he topado con muchos tipos de usuarios y excelentes profesionales que trabajan a diario con esta herramienta, pero en muy raras ocasiones me consigo con usuarios que le saquen un verdadero provecho a las macros, y mucho menos a VBA (Visual Basic para Aplicaciones), y si mencionamos la palabra SQL (Lenguaje de Consulta Estructurada), entonces ya el asunto es de otro nivel. Bueno, en fin, y quizás no sea tu caso, pero a donde quiero llegar es que existen áreas de Excel a las cuales le sacamos muy poca ventaja, y en este sentido muchas veces despreciamos un poder, del cual no tenemos ni idea de lo que nos estamos perdiendo.

Aprender técnicas para automatizar documentos con Excel trae muchísimos beneficios, por solo mencionar algunos listaré los siguientes:

  • Integridad de la información: ya que se encontrará actualizada y optimizada al estar alojada en un medio controlado por los custodios de la misma. Garantizando que todos los integrantes del equipo siempre entreguen la última actualización con los últimos formatos.
  • Ahorro de tiempo en la entrega de la información: al disponer de un sistema automatizado, se podrá solicitar la información deseada solo en cuestión de segundos, en lugar de invertir una gran cantidad de tiempo en la elaboración de reportes.
  • Mayor eficiencia: al garantizar que la información es estregada muy por debajo de los lapsos esperados por el cliente, y con la certeza de que se está trabajando con la última actualización de la información.
  • Minimización de errores: al disponer de un sistema de automatización cuidadosamente elaborado, se minimizan los errores humanos productos del copiado y pegado de un documento a otro, además de garantizar de que se está trabajando con la información más actualizada.
  • Información centralizada: ya elaborada una base de datos para alimentar el sistema de automatización, esta será la principal fuente de información, garantizando que los documentos, informes y registros que se generen contengan información proveniente del mismo origen.
  • Coherencia en la entrega de reportes: al disponer de una misma fuente para la elaboración de reportes, es prácticamente imposible que existan contradicciones entre un documento y otro que hagan uso de un mismo origen.
  • Reducir costes de tiempo y dinero: mientras más reportes se encuentren automatizados, dispondremos de más horas hombres que podremos invertir en otras actividades que requieran de análisis que lamentablemente no se podrán automatizar.

Las técnicas de automatización tampoco es que hacen milagros, lamentablemente no todo se podrá automatizar, habrá reportes que solo se automaticen a medias y el trabajador tendrá que poner el resto, la idea es poder automatizar todo lo que sea automatizable y ya con esto es bastante.

¿Qué por qué automatizar documentos?, creo que con todo lo expuesto anteriormente queda respondida esta pregunta. Si bien es cierto que el proceso de automatización de documentos requiere de un pequeño esfuerzo inicial, en cuanto a los conocimientos y destrezas a requerir[4], a la compresión de la información de la que se dispone, a los informes y reportes que se requieren generar y finalmente al diseño y codificación para esta interesante tarea, es muy, pero muy gratificante entregar la información solicitada en tiempo record, y en muchas ocasiones solo al alcance de un clic, y lo mejor de todo: con una considerable reducción en los márgenes de error.

Por otra parte, es verdad que codificar, así sea en Visual Basic (VB), que es uno de los lenguajes de programación más accesible al “no programador” como la mayoría de los usuarios de Excel, en ocasiones requiere de un esfuerzo intelectual un poco exigente, pero recuerde que hay cosas mucho más complejas de entender y comprender, como puede ser la teoría de la relatividad de Albert Einstein, la física nuclear, la mecánica cuántica y ni hablar de las mujeres, que eso si es difícil, que te lo digo yo, que vivo con mi amada esposa y mis tres queridas hijas, y en este caso solo te diré que a las mujeres hay que quererlas, mas no entenderlas.




¿Qué por qué automatizar documentos?, creo que con todo lo expuesto anteriormente queda respondida esta pregunta. Si bien es cierto que el proceso de automatización de documentos requiere de un pequeño esfuerzo inicial, en cuanto a los conocimientos a requerir[4], a la compresión de la información de la que dispones, a los informes y reportes que se requieren generar y finalmente al diseño y codificación para esta interesante tarea, es muy, pero muy gratificante entregar la información solicitada en tiempo record, y en muchas ocasiones solo al alcance de un clic, y lo mejor de todo: con escasos márgenes de error.

Por otra parte, es verdad que codificar, así sea en Visual Basic (VB), que es uno de los lenguajes de programación más accesible al “no programador” como la mayoría de los usuarios de Excel, en ocasiones requiere de un esfuerzo intelectual un poco exigente, pero recuerde que hay cosas mucho más complejas de entender y comprender, como puede ser la teoría de la relatividad de Albert Einstein, la física nuclear, la mecánica cuántica y ni hablar de las mujeres, que eso si es difícil, que te lo digo yo, que vivo con mi amada esposa y mis tres queridas hijas, y en este caso solo te diré que a las mujeres hay que quererlas, mas no entenderlas.



[1] VBA es un elemento de programación diseñado por Microsoft para utilizarse con la mayoría de los paquetes de la suite de Office.
[2] El verbo linkear no existe en el castellano según la RAE, pero es usado por muchos usuarios de Excel.
[3] Por ahora diremos que SQL es un lenguaje de programación diseñado para administrar sistemas de gestión de bases de datos.
[4] Con la lectura de este blog, este requisito quedará cubierto.




BIENVENIDOS





Este blog  es una práctica y útil introducción al diseño de base de datos y automatización de reportes con Microsoft Excel y VBA.





Acerca del autor:


Pedro J. Bazó C. (pedro.j.bazo.c@gmail.com) es Ingeniero Químico egresado de la Universidad Central de Venezuela. En los años 90 trabajó como preparador de programación en el Departamento de Investigación de Operaciones y Computación, asistiendo a los profesores en las clases de programación en lenguaje Pascal, C/C++ y Bases de Datos en Access. Desarrolló su tesis de grado en Visual C++ y Visual Fortran, titulada “Desarrollo de un programa modular para el ajuste de datos experimentales con modelos no lineales”, con la finalidad de optimizar parámetros de modelos matemáticos lineales y no lineales de diversas complejidades. También trabajó por varios años como profesor de programación de Visual Basic en la Universidad Gran Mariscal de Ayacucho en la Ciudad de El Tigre. A lo largo de su trayectoria profesional, ha ocupado diversos cargos como Ingeniero de Proyectos, Supervisor de Obras de Construcción, Planificador de Proyectos, Analista de Presupuesto, en donde automatizó gran variedad de documentos durante su permanencia en el cargo. Eventualmente, sin abandonar las actividades de su cargo, brinda asesoramiento y dicta curso sobre técnicas de automatización de documento con Microsoft Excel y VBA.

El lado oscuro de Microsoft Excel

Entradas populares