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
Trackbacks
-
1
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á 10031 dic 2007 10:33
-
2
Via| genbeta.com14 nov 2007 19:40
-
3
Vía: genbeta1 oct 2007 23:09
-
4
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
WSL Weblogs SL
Tecnología
Entretenimiento
Motor y deportes
Por temas
- Ahorro
- Apple
- Bebés
- Belleza
- Ciencia
- Cine
- Cocina
- Competición
- Consumo
- Cultura Alternativa
- Decoración
- Deportes
- Economía
- Empresas
- Empresas TIC
- Fútbol
- Famosos
- Fans
- Fotografía
- Gadgets
- Gays
- Golf
- Literatura
- Lujo
- Móviles
- Música
- Moda
- Moda hombres
- Motor
- Motos
- Niños
- Noche
- Software
- Televisión
- Viajes
- Vida Sana
- Videojuegos
Top 10
Lo+leido
- Google Chrome OS: torpedeando a Microsoft donde más le duele
- Google Chrome OS, sistema operativo para ultraportátiles
- Google Chrome OS: Lo siento chicos, pero no queda pastel para todos
- Oído cocina, otra ración de Freetos
- ViGlance: la superbarra de Windows 7, para Windows XP
- VLC Media Player 1.0 "Goldeneye"
- Quecocinohoy.com, las mejores recetas de cocina a elegir
- 10 alternativas a Pirate Bay
- El precio de Windows 7
- Microsoft te anima a usar Internet Explorer 8 en "modo porno"
Lo+votado
- Screenlets, los widgets del escritorio GNU/Linux (Screencast)
- Google Chrome OS: torpedeando a Microsoft donde más le duele
- Firefox 3.5 versión final ya disponible
- ¿Qué hay de nuevo en HTML5?
- Moovida, el nuevo nombre y diseño de Elisa Media Center (Screencast)
- 10 alternativas a Pirate Bay
- Gmail ahora permite adjuntar archivos de hasta 25 MB
- Microsoft Security Essentials (Morro) sale bien evaluado en los primeros tests
- Global Gaming Factory X AB compra The Pirate Bay
- Liberado VirtualBox 3.0 final
Lo+comentado
- El precio de Windows 7
- Google Chrome OS: Lo siento chicos, pero no queda pastel para todos
- Firefox 3.5 versión final ya disponible
- Google Chrome OS: torpedeando a Microsoft donde más le duele
- Vulnerabilidad crítica en ActiveX de Internet Explorer 8
- 10 alternativas a Pirate Bay
- Liberado VirtualBox 3.0 final
- ViGlance: la superbarra de Windows 7, para Windows XP
- Imagen de la semana: Clever Windows, una nueva idea para GNOME 3.0
- Microsoft Security Essentials (Morro) sale bien evaluado en los primeros tests




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:
http://www.joelonsoftware.com/items/2007/09/26b.ht...
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.