Bug en Excel 2007

Microsoft se ha puesto en el ojo del huracán por culpa de un bug en Office 2007, concretamente en la hoja de cálculo de Excel, en el que algunos valores parecen calcularse incorrectamente. Podemos ver diversos ejemplos en la imagen superior.
En ciertas operaciones, en las que el resultado debería ser 65535 podemos ver como se muestra el número 100000 en lugar del valor correcto. Esto es un problema bastante serio pues podría afectar a todos los cálculos posteriores que se hagan con ese valor.
De todos modos, y dentro de la gravedad del asunto, hay que desdramatizarlo un poco y ponerlo en contexto, ya que el error no es tan grave como aparenta, aunque tampoco hay que desmerecerlo.
Vamos a estudiar un poco cual es el problema. Para ello, hay que conocer como se guardan los números en la memoria del ordenador. Existen diversos sistemas para almacenar números con decimales, pero Excel ha optado por usar el de coma flotante, concretamente el estándar definido por IEEE 754.
Por no hacer esta explicación larga y aburrida simplemente diremos que con esta implementación algunos números no se pueden representar exactamente, sino que lo hacen con un número con muchos decimales significativos que se le aproxima mucho y que, en la mayoría de los casos, nos sirve igual.
El problema de Excel no está en el cálculo de los resultados, el cual hace correctamente, sino a la hora de mostrar estos resultados en pantalla. Es decir, si hacemos la multiplicación 5.1 * 12850 nos dará un resultado que, representado en binario se aproxima mucho a 65535. Pero Excel tiene un bug que hace que ese valor se muestre como 100000.
Pero el resultado se sigue guardando correctamente y podemos comprobarlo si realizamos más operaciones con ese valor. Por ejemplo si en la hoja de cálculo de la imagen insertáramos en una celda el valor F2 * 2 se mostraría como resultado 131070 en lugar de 200000.
Ahora, el bug concreto por el que esto se produce solo lo saben en Microsoft, donde están trabajando en una solución al problema. Este bug, por cierto, solo se produce con 12 valores del total de los 9.214 * 10^18 que se pueden representar en coma flotante.
Más información | Excel Blog.
Comentarios
Deja tu comentarioTrackbacks
-
1
Aparentemente hay un error en el código que muestra el resultado y nadie en Microsoft se percató. Para información más detallada visita Genbeta.27 sep 2007 20:22
-
2
Vía: genbeta01 oct 2007 23:09
-
3
Via| genbeta.com14 nov 2007 20:40
-
4
Un bug es un error, un fallo de programación. Ocurre cuando un programa o aplicación responde con un comportamiento no esperado o erroneo. Muchos conoceréis el famoso bug de Excel ‘07 en el que si multiplicais 5,1 por 12850 os devolverá 1031 dic 2007 11:33
WSL Weblogs SL
Tecnología
Entretenimiento
Motor y deportes
Economía
WSL Empresas
Top 10
Lo+leído
- Talkster, llamadas internacionales gratis con Google Talk
- Microsoft ha dejado de vender Windows XP
- Tape.tv, horas y horas de clips musicales
- Mejorando el rendimiento de Windows Vista: Cuales trucos sirven y cuales no
- Windows Live Messenger: Plugins
- Especial Firefox 3: más velocidad al mismo precio
- Flash Drive Reminder, que no se te olvide el pendrive
- Ahorra dinero, tinta y papel al imprimir en Microsoft Word 2007
- Freetos especial Eurocopa: si querías fútbol, aquí tienes dos tazas
- Usplash: instalar temas y personalizar el arranque de Ubuntu
Lo+votado
Lo+leído
- Microsoft ha dejado de vender Windows XP
- Mejorando el rendimiento de Windows Vista: Cuales trucos sirven y cuales no
- Imagen de la semana: Microsoft felicita a Mozilla por el lanzamiento de Firefox 3
- Betabits a 25ºC, lo mejor para el verano digital
- Flash Drive Reminder, que no se te olvide el pendrive
- Los buscadores ahora podrán indexar contenidos Flash
- Recetae, directorio de recetas
- RSS Bandit ahora puede sincronizarse con Google Reader y NewsGator
- Restauralius, directorio de restaurantes de toda España
- Freetos especial Eurocopa: si querías fútbol, aquí tienes dos tazas
Lo+comentado
- Microsoft ha dejado de vender Windows XP
- Talkster, llamadas internacionales gratis con Google Talk
- Imagen de la semana: Microsoft felicita a Mozilla por el lanzamiento de Firefox 3
- La primera Alpha de Ubuntu 8.10 viene con un nuevo tema oscuro
- Tuenti domina el mundo... al menos en España
- Especial Firefox 3: más velocidad al mismo precio
- Blogger Draft incorpora nuevas características
- Windows Live Messenger: clientes compatibles desde GNU/Linux
- Mejorando el rendimiento de Windows Vista: Cuales trucos sirven y cuales no
- CookiePie, por fin puedes acceder a la misma web con diferentes usuarios
Autores / Comentaristas
Autores
Comentaristas
- Rafael Galindo

- wfox

- Jarkendia

- ferru

- alexito4

- vaya torzon que llevo

- LepZ69

- Ishigami

- Kirtash

- ElHobbit






Aprobecho para recomendar OpenOffice.org, tanto en entornos Windows como en entornos Linux. Una maravilla por ambas partes y tan a la altura como lo es la supuesta de Office de Microsoft.
Recomiendo encarecidamente (para usuarios avanzados especialmente) Office 2007, es bueno tener una segunda alternativa open office esta bien para la mayoria de usuarios standar.
La explicación al bug la podéis leer en el blob de Joel on Software, la dirreción de la noticia en cuestión es esta:
[www.joelonsoftware.com]
La primera vez que di en una empresa, hace como 10 años, un curso de Excel, me reí mucho porque los contables comprobaban con la calculadora cada operación que hacíamos en Excel. Por lo que veo, el tiempo ha acabado dándoles la razón.
No uso ningún office 2007, pero si la cantidad de filas del excel es la misma, vaya casualidad, para que los errores se den tan cerca del número total de filas que posee una planilla de cálculo de este soft. Es más aclaran que el error se da en las proximidades de 65536. Curioso.
Yo lo he probado con Office 2003 SP2 y hace la operación bien
Solo afecta al office 2007, asalinasci tus sospechas no llevan a nada
En openoffice también hay errores. Si guardas datos en una tabla con fecha formato mes/año al hacer un piloto de datos (lo que en excel sería una tabla dinámica) y agrupas por fecha en algunas ocasiones te toma el mes por día y el día por año (presenta fechas de 2005 como de 2001).
Yo recomiendo usar los dos programas.
¡Alerta Roja!… hay un infiltrado de Microsoft en nuestra trincheras…
Darmfreak, lo que pasa es que por el Office 2007 pagas una pasta gansa para comprar un programa que falla (lo sé por qué infelizmente lo tengo que usar en el trabajo y no veas la cantidad de disgustos que me da el Office y el XP)… mientras que por el OpenOffice pagas… cero…
Acabo de hacer un exhaustivo estudio de casuística, y déjenme decirles que no hay razón para SATANIZAR el asunto. Y también aclarar que tampoco hay por qué hacer especulaciones al respecto, como el comentario del señor "asalinasci" es definitivamente incorrecto.
Explicar técnicamente el problema tomaría tiempo, y además parece que ya lo hicieron, sólo quería dar un alcance respecto a las operaciones.
Si bien el resultado mostrado de algunas de esas MULTIPLICACIONES(el bug sólo aplica para esta operación) cuyo resultado es "65535" se muestra como 100000, al efectuar operaciones sobre este resultado continúa usando el valor de 65535 salvo en el caso de sumarle uno. Lo que nos llevaría a la comclusión que tenemos un problema en la presentación de resultados mas no de operación.
Una "sugerencia" que propongo, a los usuarios de este software, mientras se corrige el error, es que verifiquen sus resultados obtenidos de multiplicaciones sumándole mas 2 y tener cuidado cuando se haga un PEGADO ESPECIAL DE VALORES en una tabla. Sólo eso, ya que salta a la vista un 100000 + 2 = 65535, un método simple pero eficaz. Ya usuarios más avanzados podrían usar las herramientas del formato condicional o alguna función matemática para la detección de errores. Amigos, sólo es cuestión de ingeniárselas. Con esto no pretendo justificar el error de nuestros amigos desarrolladores del excel 2007 y tampoco pondría mis manos al fuego por ellos, pues creo que por el precio que cobran por su producto los errores son inaceptables.Espero esto pueda servirle a alguien. Saludos.