Diccionario de funciones en inglés

Navegando por la red, me encontré con un Diccionario de funciones de Excel, propiedad del sr. Peter Noneley. Es una excelente compilación de funciones explicadas y ejemplos de fórmulas.

Las funciones son alrededor de 150.

También tiene numerosos ejemplos de uso.

Finalmente, agrupa las funciones en las categorías que maneja Excel.


Recomiendo ampliamente descargar el archivo y dedicarle unas cuantas horas. Aprenderán bastante. Es un archivo plano, sin macros ni VBA. El único detalle es que está en inglés. Es necesario conocer la traducción de las funciones al español.

Entrevista con Charley Kyd

En su excelente blog Pointy Hairy Dilbert, Chandoo publica la entrevista que sustuvo con Charley Kyd, quien es uno de los escasos 74 Excel MVP (Most Valuable Professional) reconocidos por Microsoft en todo el mundo. Aunque breve, es sumamente ilustrativa. Para ver la entrada original (en inglés) pueden dar clic aqui.

Para quienes no dominan el inglés, intentaré realizar una decente traducción al español, misma que publicaré lo antes posible.

Dividir en múltiplos de 10

Problema:

Dado cierto número, por ejemplo el 123456, obtener una fórmula que devuelva los resultados:

12345
1234
123
12
1

Es decir, dividirlo sucesivamente por 10, 100, 1000 etc.

Para lograrlo utilizamos la función MULTIPLO.INFERIOR. Esta, redondea un número hacia cero, al múltiplo especificado. La sintaxis:

MULTIPLO.INFERIOR(número, cifra_significativa)

Ejemplo:

=MULTIPLO.INFERIOR(2530,100) devuelve 25, ya que divide el número (2530) entre 100 (25.3) y lo redondea hacia abajo a cero.

De vuelta a nuestro caso, construyamos un tabla auxiliar que muestre los resultados (y algunos ejemplos más) como sigue:

Escribimos esta fórmula en la celda B3:

=MULTIPLO.INFERIOR($A3/10^B$2,1)

Copiamos y pegamos al resto del rango y listo.

Introducción a la programación VBA

En lo sucesivo comenzaré a publicar ejemplos y técnicas de programación útiles en el desarrollo de modelos Excel. Así que supondré que el lector tiene conocimientos intermedios en el lenguaje VBA (Visual Basic for Aplications). Si no es así y desean una introducción al tema, les recomiendo el siguiente vínculo del sitio Excel Worker, que además está en español:

http://www.excelworker.virtuabyte.cl/index.php?option=content&task=section&id=3&Itemid=27

En cambio, si tienen conocimientos intermedios - avanzados de inglés, entonces recomiendo Erlandsen Data Consulting o el sitio de Chip Pearson.

Todos contienen material suficiente para iniciarse por lo que no pretenderé reinventar la rueda.

Saludos.

Funciones personalizadas

Excel cuenta con un inmenso número de funciones integradas, de la más diversa índole. Asimismo, hay numerosos complementos (el más famoso es Herramientas para análisis) que agregan todavía más funciones a Excel. Por si fuera poco, podemos crear nuestras propias funciones, lo cual puede ser útil en el (improbable) caso de que no exista una función que haga lo que necesitemos; o bien, para simplificar nuestras fórmulas. Aunque para lograrlo es necesario tener conocimientos más o menos sólidos en programación de macros.

Programar una función es parecido a programar una macro. De hecho, algunos autores llaman también macros a las funciones personalizadas. No obstante, existe una diferencia fundamental entre ambas: una función solo puede devolver un resultado. No puede operar o cambiar el entorno de Excel. (OK, sí puede, pero son excepciones ya muy rebuscadas). Lo siguiente es una macro:

Sub insertahoja()
ActiveWorkbook.Worksheets(1).Copy Before:=ActiveWorkbook.Worksheets(4)
ActiveWorksheet.Name = "Hoja número 3"
End Sub

En cambio, esto es una función:

Private function micalculo(num_1 As Integer, num_2 As Integer) As Integer

Dim j As Integer

If num_1 <= num_2 Then
j = num_2 - num_1
Else
j = num_1 - num_2
End If

micalculo = j

End function

Como vemos, en el primer caso, alteramos el entorno Excel al copiar una hoja en el libro activo, mientras que en el segundo, solo obtuvimos el resultado j (que es la diferencia absoluta entre dos números). No hicimos nada más. Otra diferencia evidente es la forma de declarar y terminar una función con las cláusulas Private function y End function. Por lo demás el lenguaje utilizado es el mismo.

Por otra parte, el resultado que devuelve una función puede no ser (como pudiera pensarse) un número. Puede ser texto, un resultado lógico (FALSO o VERDADERO), un rango, un nombre, entre otros. Por ello, es necesario declarar el tipo de dato del resultado (el último "As Integer").

Una función puede ser utilizada o llamada por una macro, por otra función, o a través de la interfaz de Excel. Para el primer caso veamos este ejemplo:

Sub insertahoja()
ActiveWorkbook.Worksheets(1).Copy Before:=ActiveWorkbook.Worksheets(4)
ActiveWorksheet.Name = "Hoja número 3"

ActiveWorksheet.Range("A3") = micalculo(ActiveWorksheet.Range("A1").Value, ActiveWorksheet.Range("A2").Value)

End Sub

Con esta macro, modificación de la previa, escribiremos en la celda A3 el resultado de la fórmula =micalculo(A1, A2)

Para el segundo caso, veamos:

Private function otrocalculo(num_1 As Integer, num_2 As Integer) As Integer

j = micalculo(num_1 As Integer, num_2 As Integer)

j = j * -1

otrocalculo= j

End function

Esta función simplemente multiplica por - 1 el resultado de micalculo(num_1 As Integer, num_2 As Integer)

Como último caso, si queremos usar esta función desde la interfaz de Excel, simplemente escribimos en una celda:

=MICALCULO(A1, A2)

Si queremos utilizar el Asistente para funciones de Excel, necesitamos dar clic en la categoría Definidas por el usuario, al final de la lista de categorías. Un detalle importante a tener en cuenta es que Excel de alguna manera "recuerda" la forma en que escribimos el nombre de la función la primera vez, es decir, con mayúsculas o minúsculas. Si la primera vez que escribamos la función utilizamos minúsculas, Excel la mostrará siempre así en la barra de fórmulas.

Hemos visto un ejemplo sencillo, pero cuando tenemos necesidad de hacer cálculos complejos o grandes, podemos mejorar la legibilidad de la fórmula simplemente agregando argumentos a una sola función.

Excel on-line

Recientemente, Microsoft anunció el lanzamiento de Microsoft Office Live, una versión on-line de sus productos insignia Word, Power Point, One Note y por supuesto, Excel. MS promete que estas aplicaciones web permitirán crear, editar y compartir con el explorador nuestros documentos. Desde luego que no podrán igualar la funcionalidad de sus contrapartes de escritorio, pero hay que ver las ventajas: nada de actualizaciones periódicas, incompatibilidad de versiones, corre en Firefox, es gratis...

Finalmente, Microsoft ha decidido incursionar en el software de oficina on-line, mercado actualmente dominado por Google (¿alguna objeción?) y su suite Docs.


De acuerdo a Read Write Web, las aplicaciones tendrán los mismos nombres que sus contrapartes de escritorio. La versión Beta estará disponible este mismo año.

Lamentablemente, parece ser que la de Excel será una versión muy parecida a 2007. Como sea, démosle una oportunidad. Si llega a igualar la funcionalidad de una Google Spreadsheet,

bienvenido sea.

Feliz cumpleaños, Excel

El mes pasado, concretamente, el 17 de octubre, se cumplieron 29 años del lanzamiento de VisiCalc, la primera hoja de cálculo comercial y predecesor más antiguo de Excel.

Durante sus primeros cinco años de vida, VisiCorp. (compañía propietaria) fue la mayor vendedora de software, venciendo rotundamente a Microsoft.

El programa original aún corre en las PC's actuales (descargar). A pesar de la simpleza que le dan sus 27KB (es correcta la "K"),

el impacto que tuvo fue enorme. Fue el programa que realmente acercó los PC a la gente común. De no ser por VisiCalc no hubiera sido posible el sueño de Bill Gates de colocar una PC en cada hogar norteamericano. Antes de su lanzamiento, las computadoras solo podían ser utilizadas por programadores experimentados. El resto de la gente solo podía utilizar programas ya elaborados que resolvían problemas muy específicos. VisiCalc le dio a la gente el poder de resolver problemas "personales" sin la necesidad de tener formación como programador. El hecho de poder cambiar un número en cualquier parte de la pantalla, y ver inmediatamente los resultados, brindó formas de análisis nunca antes vistas, y de forma totalmente intuitiva.

Su manual constaba de ocho páginas.


Sus creadores, Dan Bricklin y Bob Frankston:

La competencia responde. El 26 de enero de 1983 Lotus Software presenta el software para computadoras personales Lotus 1-2-3, que llegó a convertirse en el estándar de las hojas de cálculo en los inicios de la computación personal. La primera versión para DOS, desplazó del mercado rápidamente a VisiCalc, que dominaba desde 1980. Su enorme popularidad afianzó el éxito de los PC en las empresas. Fiel al sistema operativo OS/2, fue lento en su migración al sistema Windows, lo que motivó de su debacle.

Desarrollado por estudiantes de doctorado de Harvard, sigue disponible como parte de la suite Lotus SmartSuite, después de mucho tiempo de reusarse a migrar a Windows.

En 1987, Lotus demandó legalmente por separado a Paperback Software y a Mosaic Software, alegando que eran copias de Lotus 1-2-3. Por su parte VisiCorp. demandó a Lotus, aduciendo que 1-2-3 era idéntico a VisiCalc. Lotus ganó todas estas batallas legales, pero perdió la guerra por el mercado con Microsoft.

Otros competidores con más pena que gloria fueron Quatro, Fortran y Multiplan.

Mientras tanto, Microsoft desarrollaba Excel. La primera versión de Excel, la 0.99, fue creada originalmente para Macintosh. Fue uno de los primeros programas en utilizar una interfaz gráfica con menús despleglables así como de un puntero manejado por mouse. Esta interfaz gráfica demostró ser mucho más fácil de usar que las líneas de comandos de DOS. Así, motivó que mucha gente se comprara una Mac con el único objetivo de conocer a Excel.

Apoyado por la gran popularidad que empezó a tener el sistema operativo Windows, ha sido el software de hoja de cálculo líder desde 1985, año en que vio la luz la versión 1.0 para Windows. Durante mucho tiempo, fue la única hoja de cálculo en correr bajo Windows. Fue solo hasta 1992 que otros competidores crearon hojas de cálculo para Windows.

A la fecha han sido lanzadas 11 versiones (Excel 2007 es oficialmente la versión 12, no obstante, no hubo Excel 6.0, ya que a partir de la versión 7 Microsoft decidió estandarizar las versiones de todos los productos de la suite Office).

Actualmente, Excel 2003 es la versión más popular en todo el mundo. La gran mayoría de las entradas de este blog tratan sobre la versión 2003. 2007 no fue bien aceptado debido a los muchos inconvenientes que presenta y a su interfaz muy diferente a la de sus predecesores, tema de una futura nota.