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.
Ver 10 comentarios
10 comentarios
david
Recomiendo encarecidamente (para usuarios avanzados especialmente) Office 2007, es bueno tener una segunda alternativa open office esta bien para la mayoria de usuarios standar.
david
Solo afecta al office 2007, asalinasci tus sospechas no llevan a nada
José Cabo
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.
plunchete
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...
asalinasci
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.
fjcero
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.
dondado
Yo lo he probado con Office 2003 SP2 y hace la operación bien
franlade
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.
saurium2
¡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…
Sr. Robles
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.