sábado, 26 de marzo de 2016

Un Programa Llamado Excel

Podría dar inicio esta entrada como esos cuentos de cuando éramos niños, algo así como: Érase una vez, una joven que vivía en una tierra muy lejana, donde la vida era apacible y sin grandes alteraciones, de vez en cuando, sobre todo en verano, venía uno que otro helicóptero a perturbar la habitual calma de los habitantes de dicha comarca, dando aviso que algún osado se había estado bañando en las costas de la villa aledaña y por azares del destino, o por imprudencia propia más bien, iban a parar como primera instancia al hospital provincial de mi humilde comunidad, para después ser llevados a algún centro asistencial de renombre, nunca supimos en qué terminaban dichas historias, pero el tiempo pasó y con él llegaron nuevos caminos para recorrer, entre esos caminos está el que me llevó a mi actual lugar de residencia, aunque irónicamente escribo estas letras desde mi apacible comarca, cerca de las clínicas de renombre donde llevaban a esos osados nadadores de mi tierna infancia.
Y así con el tiempo pasando y aventuras viniendo a diestra y siniestra, llegamos al origen de todo, en la concepción misma de la vida de los indicadores (palabra sin ninguna relevancia para mi hasta ese momento): "Un programa llamado Excel". Se preguntarán por qué dedicarle el título a dicha herramienta de oficio, yo también me lo cuestiono a esta altura, pero aunque en estos momentos no lo tenga claro, hace algunas horas parecía ser un buen título para continuar, este programa ha marcado mi acotada vida laboral. Después de pasar años quebrándome la cabeza aprendiendo cómo funcionaban algunas estructuras de datos en programación y aprendiendo lenguaje tras lenguaje, nunca se me pasó por la mente que tiraría todo eso por la borda (junto con todas las horas de sueño perdidas programando o jugando en el computador, quizás eso último no debería haberlo mencionado). En fin, nada me prepararía para lo que el destino me tenía guardado, y es que después de la traición de la bestia de Windows (aún sigo creyendo que Microsoft es la bestia y Apple es el primo "estiloso"), tuve que tirarme a la piscina y sumergirme en fórmulas y funciones que ni idea tenía que existían. A mi jefe de ese entonces no le gustaba mucho trabajar fórmulas y cosas, decía que se marchitaba, pero su jefe era todo lo contrario, si alguien sabe usar excel en la empresa, él es la máxima eminencia (desde mi humilde perspectiva).
Así durante mis primeras dos semanas tuve que empaparme, por decirlo menos de, entre otras cosas, aprender a cambiar la forma en que hasta ese momento había pensado, en otras palabras, secuencialmente. A mi jefe lo mandaron a Perú, y me dejaron de "experta" del análisis de las mediciones que mandaban de tan remoto destino. Era tan grande mi recién ganada expertiz, que por suerte para la empresa para la que trabajo, el jefe del área vecina me ayudó a entender qué cosas querían saber y en qué "Columnas" y "Filas" debía buscar para llegar a la verdadera información, ya que por suerte para mi, personas muy inteligentes ya habían hecho el core o núcleo principal del procesamiento de los datos que se recibían. Ahí conocí a una de las personas con quién más he compartido en el diario vivir en la compañía y parte principal del equipo que creó el motor de procesamiento de los datos (y que secretamente me ha enseñado, aunque quizás pueda que no explícitamente). Ahora, volviendo a la historia que es mi intención contar, estaba yo con las columnas y filas indicadas del archivo Excel y una fórmula como de 10 líneas, que en ese momento sólo dios sabía qué hacía. Preguntarle al autor de tamaño programa no tenía sentido, considerando lo ocupado que siempre está, así que no me quedó de otra que "desarmarla". Con eso en mente no me quedó de otra que usar una de mis técnicas preferidas cuando programaba en la universidad, la indentación (bendito el ser vivo que se le ocurrió inventar tal cosa).
Buscarv, Si y Eserror
Como en las celdas del Excel queda todo muy comprimido (a menos que uno las extienda), se me ocurrió la genial idea de copiar el, como dirían en clase de matemática en mi universidad, "chorizo" de fórmula  en un humilde bloc de notas para proceder con la indentación (y con eso, adiós a remarcar en colores las funciones o celdas para que visualmente fuera más fácil entender lo que se estaba haciendo, ¿por qué Windows no hace más inteligente el bloc de notas?, debería ser más como gedit). Fue ahí cuando conocí las 3 funciones que más utilizo cuando trabajo en mis planillas: buscarvsi eserror
= si(
     eserror( 
             buscarv(valor_a_buscar; matriz_donde_buscar; columna_de_matriz_donde_buscar; 0)
            );
     "-"; 
     buscarv(valor_a_buscar; matriz_donde_buscar; columna_de_matriz_donde_buscar; 0)
  )
El código descrito, es la forma básica de cómo uso dichas funciones en una pequeña celda. Para que quede más claro, la función buscarv se encarga de encontrar el valor que uno está buscando en la primera columna de una matriz de valores (correspondiente al segundo argumento de la función), y en caso de encontrarlo, devuelve el valor de la celda que se encuentra en la intersección de la fila del valor encontrado y la columna que uno le da a la función en el tercer argumento. El 0 (o cero), es para decirle a la función que busque la coincidencia exacta, lo cual es muy importante ya que normalmente cuando olvido ponerlo, siempre termino tirándome de las mechas buscando dónde diantres está el error en la fórmula. Ahora, si el valor que uno está buscando no fue encontrado, la función devolverá un error, algo como un texto horrible #VALOR, por ese motivo, para que quede bonito y no se vea ese código feo, es que uno se pone el parche antes de la herida y astutamente pregunta si la función buscarv retorna un objeto válido, para eso usamos la función eserror. Entonces uno le da el argumento a esta función y ella, después de evaluar el resultado nos dice si éste es errado o no existe (como es el caso cuando uno divide por cero) y retorna verdadero. Por el contrario, en el caso de que la fórmula evaluada sí tiene un resultado válido retornará falso .
Sin embargo, con la función es error no obtenemos el resultado que andamos buscando, así que por último utilizaremos la función si, que vendría siendo el análogo del if de cualquier lenguaje de programación (por suerte, no todos mis esfuerzos se fueron a la basura, aunque con ésto estaríamos constemplando sólo el primer año universitario....). Así a la función si le pedimos que evalúe la condición que retorna verdadero o falso del  eserror. En caso que eserror nos de verdadero (es decir que encontró un error), le decimos a la función si que retorne un valor elegante como "-" (un guión), y en el caso de que eserror nos diga que el buscarv sí tiene una solución válida (o que es falso), la función si nos va a retornar el valor de ese buscarv que nos interesa.
Y con eso termina la historia de hoy, con el primer aporte, espero que útil, para dominar a  ese programa malvado llamado Excel por la bestia. Espero que haya sido de vuestro agrado. 
Se despide una vez más
Javiera

jueves, 24 de marzo de 2016

Y la Aventura Inicia

La vez pasada comenté que estando en la universidad tenía un Blog en el cual publicaba problemas que se me iban presentando en el día a día. Para contextualizar la creación de esta bitácora online de mis aventuras laborales, debo especificar algunas cosas que viví previo a mi tiempo como parte de la actual empresa en la que trabajo (cuyo nombre no tiene caso mencionar). Por allá por el año 2012 estaba yo comenzando con mis primeros trabajos, que en mi caso iniciaron al alero de mi Alma mater, lugar donde aprendí varias cosas acerca de trabajo con equipos multidisciplinarios (aunque principalmente eran físicos, electrónicos, mecánicos, industriales y otras personas que sin ningún tipo de cargo o profesión específica son muy valiosas y las mejores en lo que hacen). Por aquel entonces me tocó coordinar ciertas mediciones de unos dispositivos electrónicos que se utilizarían en un calorímetro de física de altas energías (para los que no sepan qué es el calorímetro mencionado, les dejo el link de la wikipedia en inglés para que consulten); además de realizar algunas gestiones para que estos "chips" entraran y luego salieran del país, previa medición claro está.
Durante todo este tiempo que trabajé en el laboratorio de física, y desde tercer año en la universidad mi interacción con los computadores fue a través del sistema operativo conocido como Linux, con la correspondiente ideología opensource, razón por la cual ni por asomo alguno se me pasó alguna vez por la cabeza utilizar MSW o MSO (más conocidos como Microsoft Windows o Microsoft Office). El tema fue que cuando me fui del laboratorio y dejé de lado mi colaboración con la academia (aunque mi paso por ahí fue más de gestión y administración) y comencé a trabajar en el mundo empresarial, el primer pc que utilicé estaba en MS Windows XP, aunque al finalizar esa semana ya había recibido la herramienta de trabajo oficial que la empresa había previsto para mi con MS Windows 7 Edición de la empresa. Decir que el impacto inicial fue lo suficientemente grande como para sufrir culpa por la traición a mis ideales del opensource, es decir poco, pero con el tiempo he ido comulgando con esa idea y me he visto en la obligación de perdonarme, ya que busco de alguna manera seguir utilizando, a través de MSW7, la forma de utilizar algunas herramientas open source.
En resumen, pasé de programar en lenguajes como c, c++ o bash a programar (en mi última incursión) en VB para Excel. Así fue que pasé desde el paradigma de la programación secuencial a la programación matricial, por decir de forma elegante que he tenido que aprender a utilizar Excel al revés y al derecho. Demás está decir que maestros no me han faltado, muy buenos maestro a decir verdad y de quienes estoy muy agradecida por darse el tiempo de enseñarme (voluntaria o involuntariamente mientras veía que arreglaban mi código), considerando que en la universidad no vi nada parecido (salvo la funcionalidad del solver, creo que ese era el nombre, la que vi en el ramo de Gestión de Investigación de Operaciones) y que todo mi aprendizaje ha sido revisando el código que me han ido facilitando en el tiempo. Quizás mi principal aporte acá sea presentar las problemas que he tenido que resolver usando Excel, considerando que es una herramienta muy versátil, sobre todo como prototipo (y porque mucha gente la usa, debe ser el programa que más se utiliza en los computadores de la empresa, quizás solo superado por el navegador). Sé que no es openSource, pero todo lo que yo pueda desarrollar puede ser replicado en otras herramientas similares que sí lo son (como libreoffice, y es ahí donde el alma me vuelve al cuerpo).
Espero poder escribir pronto otra entrada, por si le es de utilidad a alguien (como dicen, la mayoría de los problemas de software, ya les pasó a alguien y ese alguien ya lo debe haber documentado), el mejor legado que uno puede dejar, es el conocimiento.
Estamos al habla.
Javiera

miércoles, 23 de marzo de 2016

Debut - El Mensaje del Agua

Cuando estaba en la universidad tenía un blog en el cual escribía muchas de las cosas que tenía que hacer a modo de documentación de las cosas que realizaba, esto incluía tareas de programación o cómo recuperar mi computador después de haber dejado la grande experimentando.
Comencé a trabajar y dejé de hacerlo, sin embargo, creo que es momento de documentar las cosas que he ido realizando con los años. Una bitácora de mi paso desde el mundo académico al mundo laboral (a pesar que hayan pasado varios años que dejé la universidad). Espero relatar mi aventura en el mundo empresarial o mejor dicho laboral e ir anotando de a poco lo que voy aprendiendo.
De acá en adelante mi pequeña contribución con el conocimiento.
Atentamente
Javiera