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.
Feliz cumpleaños, Excel
Sofía, asistente personal
Para aquellos usuarios de la versión 2007, Microsoft pone a su disposición a Sofía, la asistente robot. Aparece en la página principal del sitio oficial de MS Excel:
Como vemos, Sofía tiene un rostro y hasta una cuenta de Messenger. Solo hay que dar un par de clics para agregarla a nuestros contactos. O bien, darla de alta con el nombre offibot@hotmail.com.
Siempre he sido víctima de la curiosidad. No tuve más remedio que agregarla a mis contactos y ponerla a prueba. Esta fue la "conversación" que tuve con "ella" (curiosamente, MS envía un mensaje de alerta sobre riesgos de seguridad al dar clic en los enlaces. Enlaces de su propio sitio...):
-Hola
Sofia dice:
-La declaración de privacidad en línea de Microsoft (http://go.microsoft.com/fwlink/?LinkId=74170) se aplica a toda información que proporciones a este agente de Windows Live.
-Para poder darte respuestas más acertadas, ¿me podrías decir en qué país vives? Esto solo lo utilizaré para dirigirte a los sitios más adecuados de acuerdo a tu respuesta. En un futuro puedes cambiar tu selección con sólo poner el nombre del país en nuestra conversación.
Leonel dice:
-México
Sofia dice:
-Entendido, te mostraré las páginas que corresponden a tu nacionalidad
¡Hola! leonel. Me llamo Sofía, y soy un robot de Microsoft. Puedo resolver tus dudas sobre Word, Excel, PowerPoint y Outlook de Office 2007, y también sé algo sobre los problemas más frecuentes de instalación y soporte. Intentaré contestarte siempre con una URL en la que encontrarás la información que buscas. ¿En qué puedo ayudarte?
Leonel dice:
-¿Cómo hago un informe de tabla dinámica en Excel 2007?
Sofia dice:
-Buena pregunta. En el siguiente articulo puedes encontrar como crear una tabla dinámica o Pivote. Un Tip si quieres buscar más información. En el recuadro de busqueda de esa página escribe tabla dinamica, te sorprenderas. http://office.microsoft.com/es-mx/excel/HA010864773082.aspx
-Sofia te está invitando a iniciar Office Online. ¿Deseas Aceptar (Alt+W) o Rechazar (Alt+X) la invitación?
Has aceptado la invitación para iniciar Office Online
Leonel dice:
-Y estudias o trabajas?
Sofia dice:
-No muchas personas saben que al tener Office tienen acceso a usar más de 400,000 imágenes para usarlos en sus documentos. Si quieres ver algunas haz clic aquí: http://office.microsoft.com/es-es/clipart/FX101321033082.aspx
Conclusiones: Sofía no existe. No es real. (¿Por qué Sofía? ¿Por qué no Maricela, o Britney?) Solo es un agente con respuestas predefinidas que lo único que hace es enviarnos vínculos a páginas relacionadas en el sitio de MS. Cuando pasamos algún tiempo sin hablarle, nos comienza a enviar tips diversos. Igualmente, predefinidos. La única ventaja que le veo es que está disponible a través del Messenger.
Supongo que los robots japoneses deben comenzar a preocuparse.
Para los fanáticos de AC/DC
El equipo creativo del grupo de rock AC/DC, Phil Clandillon y Steve Milbourne, ha anunciado el lanzamiento del primer video musical en formato .xls. La canción, Rock N Roll Train. Su objetivo, dijeron, era que el video pudiera superar los firewalls más potentes. A nadie le prohiben recibir un archivo Excel ¿cierto?
El video, en realidad, es una macro (recordemos habilitar las macros antes de abrir el archivo) que copia las "imágenes" (texto en realidad) de la columna Q mientras reproduce un archivo WAV. No imagino la cantidad de trabajo que representó dibujar cada uno de los frames de este archivo.
El código del archivo no está protegido. Para ver las imagenes, primero hay que desactivar el evento Worsheet_SelectionChange de la hoja y mostrar la columna Q.
Descargar.
Descargar macros de la red
En la red hay una gran cantidad de sitios que ponen a nuestra disposición macros de la más diversa índole. Ejemplos de estos sitios son Daily Dose of Excel, Erlandsen Data, xltoday entre muchos otros (en la sección Recursos Excel, al margen, encontrarán los enlaces a estos sitios y varios más). Lo más valioso de estas macros es que son open source, es decir, públicas y gratuitas, ahorrándonos gran cantidad de trabajo y tiempo.
Un detalle común a casi todos estos sitios es que no explican al lector cómo descargar las macros a sus equipos (como dicen algunos, "a mi Excel"). ¿Cómo copiar una macro a "nuestro Excel" y ejecutarla? Seguimos los siguientes pasos:
Supongamos que queremos utilizar la siguiente macro de ejemplo (de Daily Dose of Excel):
Dim rCell As Range
Dim sFname As String
Dim lFnum As Long
Dim sInput As String
Dim sOutput As String
If TypeName(Selection) = "Range" Then
'Pick a name for the test file
sFname = Application.InputBox("Enter test file name to create.", "File Name")
If sFname <> "False" Then 'if inputbox not canceled
'Add file extension if not there
If Right$(sFname, 4) <> ".txt" Then
sFname = sFname & ".txt"
End If
sInput = "[Input]" & vbNewLine
sOutput = "[Output]" & vbNewLine
'Build input and output strings based on selection
For Each rCell In Selection.Cells
If rCell.HasFormula Then
sOutput = sOutput & ActiveSheet.Name & "|" & _
rCell.Address & "|" & rCell.Value2 & vbNewLine
Else
sInput = sInput & ActiveSheet.Name & "|" & _
rCell.Address & "|" & rCell.Value2 & vbNewLine
End If
Next rCell
sOutput = Left$(sOutput, Len(sOutput) - 2) 'delete new line
'Create the test file
lFnum = FreeFile
Open sFname For Output As lFnum
Print #lFnum, sInput
Print #lFnum, sOutput
Close lFnum
End If
Else
MsgBox "Please select one or more cells and try again"
End If
End Sub
Como leemos en Daily Dose... lo que hace esta macro es generar un archivo de texto que lista las referencias ingresadas como argumento, y su correspondiente valor, separadas en entradas de fórmula y fórmulas. Útil para auditar lás fórmulas de nuestros modelos.
El primer paso es seleccionar el texto de la macro y copiarlo.
A continuación, activamos Excel y vamos al editor de Visual Basic (Herramientas - Macro - Editor de Visual Basic, ó Alt + F11).
Una vez aquí, tenemos que determinar algo muy importante: el ámbito de aplicabilidad de la macro. Es decir, si la macro va a ser utilizada sólo en determinado libro o bién, en todos los libros. Esto dependerá del análisis general que hagamos de la situación. En este caso, supongamos que queremos que la macro esté disponible en todos los libros. Por lo tanto, la guardaremos en nuestro libro de macros personal.
En el editor de Visual Basic, en el Explorador de proyectos, damos doble clic en Personal y a continuación, pegamos el código que hemos copiado al final del código existente.

Si queremos pegar la macro en su propio módulo, lo insertamos con Insertar - Módulo.
Finalmente, salimos del editor, con Archivo - Salir y volver a Microsoft Excel (Alt + q). Podemos guardar previamente la macro aunque esto no es estrictamente indispensable.
Procedamos ahora a ejecutar la macro. De acuerdo a las instrucciones de la nota original, primero hay que seleccionar un grupo de celdas con o sin fórmulas. Después vamos a Herramientas - Macro - Macros... (ó Alt + F8). En este punto, podemos elegir asignar una tecla de método abreviado a la macro y/o agregar una descripción a la misma dando clic en el botón Opciones...
Finalmente, seleccionamos el nombre de la macro y hacemos clic en Ejecutar.
En caso de que queramos que la macro solo esté disponible en determinado libro, entonces, damos doble clic en el proyecto correspondiente en el Explorador de proyectos. Acto seguido, damos Insertar - Módulo, y pegamos aquí el código.
Functions list
Versión en Español.
Please read this post.
=CONVERT, 638844971
=WORKDAY, 1679294519
=YEARFRAC, 734789689
=WEEKNUM, -601489317
=AMORLINC, 2050949212
=AMORDEGRC, -760479651
=RECEIVED, 1825046605
=COUPDAYS, -1225457601
=COUPDAYBS, -1886650304
=COUPDAYSNC, 85852225
=COUPPCD, 1738735682
=COUPNCD, -2019426237
=COUPNUM, -1858994114
=DURATION, -2027749294
=MDURATION, -2114781101
=ACCRINT, -692060092
=EFFECT, 226623539
=TBILLEQ, -600899503
=TBILLPRICE, -2087911345
=TBILLPRICE, -2087911345
=TBILLYIELD, -2095251376
=DOLLARDE, -2108293060
=DOLLARFR, -2128216003
=CUMIPMT, 1933180986
=CUMPRINC, -1730019269
=PRICE, -1461321658
=PRICEDISC, 1303642186
=ODDFPRICE, -2005663660
=ODDLYIELD, 1307508823
=YIELDMAT, 526319689
=YIELD, 1736245319
=YIELDDISC, -2110848949
=ODDFYIELD, 1206845525
=ODDLYIELD, 1307508823
=YIELDMAT, 526319689
=DISC, -1081081780
=INTRATE, -1046478770
=NOMINAL, 1421541428
=XIRR, -1080295335
=FVSCHEDULE, 1605632050
=XNPV, -841220008
=RANDBETWEEN, 1788346458
=GCD, 1334050856
=LCM, -15466455
=MULTINOMIAL, -164822998
=SQRTPI, 406257673
=MROUND, 147456011
=SERIESSUM, 1365508135
=SERIESSUM, 1365508135
=BESSELI, 571539472
=BESSELJ, 572588046
=BESSELY, 588316687
=BIN2DEC, 908066819
=BIN2HEX, -141557713
=BIN2OCT, -2125463506
=COMPLEX, -1477705690
=CONVERT, 638844971
=DEC2BIN, 908066853
=DEC2HEX, -1690304477
=DEC2OCT, -310378460
=DELTA, -286195700
=FACTDOUBLE, 1382350854
=ERF, 2124677124
Partial list of ATP's functions and returned results when typed without arguments and parenthesis.
Unexpected result
Versión en español.
When you type an equal sign and a function name (for example "=SUM") and press Enter, you get the #NAME? error, because Excel "thinks" that you want to work with a name, wich is not defined.
Or not?
A few days ago, I was working on a model involving date calculations. Since I wanted to calculate the number of labor days between two dates, I used the NETWORKDAYS function.
However, while writing the formula, I (accidentally) hit Enter right after the function name (i. e. "=NETWORKDAYS", Enter). Unexpectedly Excel returned:
840368184
Where that number comes from, what does it refers to, or why I got preciselly that number and no other, is something that I completely ignore. Since this behavior was totally unexpected, I wanted to repeat it in other machines. Same result. I wondered if this would happen too with other functions, so I tried with =MAX, =MIN, =OFFSET, =RIGHT, =MID, and some others. In all this cases I got the expected #NAME? However, trying with =CONVERT gave me:
638844971
Other results were:
=WORKDAY, 1679294519
=CONVERT, 638844971
There's even negative results. =WEEKNUM returns -601489317.
I concluded that this is an exclusive behavior of the Analysis Toolpak add-in functions (for a complete list of functions and results, click here).
Continuing with these tests in my lab (sure...), I tested now with other add-ins functions I've downloaded from the web. For example, with =COUNTDIFF I got: 1769668796. With all the functions of my add-ins I watched the same behavior. After this, I tried with some UDF's. In all cases I got #NAME?, so I had to modify my original theory: This behavior ocurrs with any function that belongs to any add-in (ATP or any other), but it doesn't happen nor with built-in neither user defined functions.
Since all this was kind of an oddity to me, I sent an e-mail to John Walkenbach (brief Spanish biography). This was my original message:
Hi John:
I entered this “formula”:
=CONVERT
Notice that I didn’t put the parenthesis. Excel returned:
638844971
That happens only whit add-in’s functions. With any other built-in function Excel returns, as usual, #NAME?
Other examples:
=NETWORKDAYS produces 840368184
=WEEKNUM, -601489317
=UNIQUEVALUES, -1451032386
=WORKDAY, 1679294519
Always the syntax =[add-in function] (no parenthesis)
I think this is kind of an oddity. Or, if you may explain me where those numbers came from…
Thank you.
This was his reply:
That's pretty strange. It doesn't happen in Excel 2007 because the ATP functions are now built-in.
I have Excel 2003 installed, but I didn't install the ATP. I'll see if I can find the original CD and install the ATP to check it out.
Regards,
John
If any reader have some idea of why Excel returns this mysterious numbers, please post your comments.
Lista de funciones
English version.
Por favor lean esta nota.
=CONVERTIR, 638844971
=DIA.LAB, 1679294519
=FRAC.AÑO, 734789689
=NUM.DE.SEMANA, -601489317
=AMORTIZ.LIN, 2050949212
=AMORTIZ.PROGRE, -760479651
=CANTIDAD.RECIBIDA, 1825046605
=CUPON.DIAS, -1225457601
=CUPON.DIAS.L1, -1886650304
=CUPON.DIAS.L2, 85852225
=CUPON.FECHA.L1, 1738735682
=CUPON.FECHA.L2, -2019426237
=CUPON.NUM, -1858994114
=DURACION, -2027749294
=DURACION.MODIF, -2114781101
=INT.ACUM, -692060092
=INT.EFECTIVO, 226623539
=LETRA.DE.TES.EQV.A.BONO, -600899503
=LETRA.DE.TES.PRECIO, -2087911345
=LETRA.DE.TES.PRECIO, -2087911345
=LETRA.DE.TES.RENDTO, -2095251376
=MONEDA.DEC, -2108293060
=MONEDA.FRAC, -2128216003
=PAGO.INT.ENTRE, 1933180986
=PAGO.PRINC.ENTRE, -1730019269
=PRECIO, -1461321658
=PRECIO.DESCUENTO, 1303642186
=PRECIO.PER.IRREGULAR.1, -2005663660
=RENDTO.PER.IRREGULAR.2, 1307508823
=RENDTO.VENCTO, 526319689
=RENDTO, 1736245319
=RENDTO.DESC, -2110848949
=RENDTO.PER.IRREGULAR.1, 1206845525
=RENDTO.PER.IRREGULAR.2, 1307508823
=RENDTO.VENCTO, 526319689
=TASA.DESC, -1081081780
=TASA.INT, -1046478770
=TASA.NOMINAL, 1421541428
=TIR.NO.PER, -1080295335
=VF.PLAN, 1605632050
=VNA.NO.PER, -841220008
=ALEATORIO.ENTRE, 1788346458
=M.C.D, 1334050856
=M.C.M, -15466455
=MULTINOMIAL, -164822998
=RAIZ2PI, 406257673
=REDOND.MULT, 147456011
=SUMA.SERIES, 1365508135
=SUMA.SERIES, 1365508135
=BESSELI, 571539472
=BESSELJ, 572588046
=BESSELY, 588316687
=BIN.A.DEC, 908066819
=BIN.A.HEX, -141557713
=BIN.A.OCT, -2125463506
=COMPLEJO, -1477705690
=CONVERTIR, 638844971
=DEC.A.BIN, 908066853
=DEC.A.HEX, -1690304477
=DEC.A.OCT, -310378460
=DELTA, -286195700
=FACT.DOBLE, 1382350854
=FUN.ERROR, 2124677124
Parte de las funciones del complemento Herramientas para análisis y resultados obtenidos al tipearlas sin argumentos ni paréntesis.
