jueves, 17 de mayo de 2012

Curiosidades y rarezas

Para escribir un número negativo hay que poner un signo menos delante del número o encerrarlo entre paréntesis.

En A1:
-50,25    [Resultado: -50,25]

En A3:
(50,25)    [Resultado: -50,25]

Un número seguido del símbolo del euro (€) adopta el formato Moneda.

En B1:
150€    [Resultado: 150 €]

En B3:
(150€)    [Resultado: -150 €]

Si nos ponemos en B1 (o en B3) y pulsamos Ctrl + 1 para ver el formato de la celda, observaremos que Excel ha aplicado el formato Moneda con los valores negativos en rojo y precedidos del signo menos:

Se puede sustituir el signo igual (=), con el que deben comenzar todas las fórmulas, por el signo más (+). Si después del igual (=) hay un signo menos (-) se puede prescindir del signo igual (=) o sustituirlo por el signo más (+).

En C1:
=HOY()      [Devuelve la fecha actual]

En C3:
+HOY()      [Devuelve la fecha actual]

En C5:
=-(3*COS(A1))      [Resultado: -2,99964045]

En C7:
-(3*COS(A1))      [Resultado: -2,99964045]

En C9:
+-(3*COS(A1))      [Resultado: -2,99964045]

Los valores lógicos son VERDADERO y FALSO. Ambos valores equivalen numéricamente a 1 y 0 respectivamente. Para transformar los valores lógicos en sus correspondientes valores numéricos basta multiplicarlos por uno.

En D1:
=5=6      [Resultado: FALSO]

En D3:
=6=6      [Resultado: VERDADERO]

En D5:
=1*(5=6)      [Resultado: 0]

En D7:
=1*(6=6)      [Resultado: 1]

Multiplicar dos veces por menos uno es equivalente a multiplicar por uno. Esto permite usar una forma muy comprimida en los ejemplos que hemos puesto en D5 y D6 ya que 1* se puede sustituir por (-1)*(-1)* y esta expresión, a su vez, por dos signos menos (--). De esta forma, las fórmulas de las dos celdas citadas quedarán así:

En E5:
=--(5=6)      [Resultado: 0]

En E7:
=--(6=6)      [Resultado: 1]

El exceso de signos más (+) no afecta al resultado de las fórmulas, aunque su comportamiento resulte extraño.

En A1:
+++++100    [Resultado: 100]

Hemos puesto cinco signos más (+) seguidos de un número. Si nos situamos en A1 y miramos lo que pone en la barra de fórmulas veremos: =++++100. Excel ha eliminado uno de los signos más y ha antepuesto el signo igual.

Si pulsamos la tecla F2 para editar la fórmula y, sin hacer ningún cambio, pulsamos Intro, se elimina otro signo más (+). Cada vez que editemos la fórmula, se eliminará un más hasta que desaparezcan todos.

En A2:
=+++++A1    [Resultado: 100]

En este caso, no se cumple la regla anterior. La fórmula funciona correctamente pero los signos más no desaparecen al editarla con F2.

En A3:
=+++++4*A1     [Resultado: 400]

Ahora, sí. Los signos más van desapareciendo con F2. Parece que si encuentra un número después del último (+), al editar la fórmula los va eliminando; si encuentra la referencia a una celda, no los elimina.

En A4:
=+++++COS(A1)    [Resultado: 0,86231887]

En este caso tampoco se quitan los signos (+). Quizás sea porque después del último (+) hay una función y no un número. Ignoro la razón del extraño y, en apariencia, irrelevante comportamiento de Excel y los signos más.

Cada vez que se abre un fichero de Excel 2003, el nombre del usuario queda incrustado en el libro. Basta abrirlo y cerrarlo inmediatamente sin hacer nigún cambio.

Debido a esto, se puede saber quién fue la ultima persona que utilizó un libro de Excel usando el Bloc de notas de Windows o cualquier otro editor o procesador de textos (Word, por ejemplo).

El siguiente ejemplo ha sido realizado usando el archivo "home-mortgage-calculator.xls" obtenido de la página de Vertex42.

Una vez descargado el fichero (pero sin abrirlo con Excel) lo he abierto con el Bloc de notas de Windows y he obtenido algo prácticamente ilegible pero donde se puede leer claramente el nombre Vertex42.

Luego, lo he abierto con Excel y lo he vuelto a cerrar sin guardar los cambios. Parece que el fichero no debería haberse alterado... pero no es así. Utilizando de nuevo el Bloc de notas se observa que Vertex42 ha sido sustituido por mi nombre de usuario.

Delante de los números, los espacios son ignorados. Delante de las horas, los espacios provocan resultados inesperados.

En A1:
(espacio)(espacio)(espacio)47    [Resultado: 47]

Podemos operar con el dato de A1 sin ningún problema. Los espacios no son tenidos en cuenta.

Pero, ¿qué pasa si el dato representa una hora? La respuesta es distinta según sea el dato introducido y la versión de Excel que utilicemos.

Comencemos con lo que es común en todas las versiones:

En A2:
8:30    [Resultado justificado a la derecha: 8:30]

En A3:
(espacio)8:30    [Resultado justificado a la izquierda: 8:30]

En A2 la hora se ha introducido correctamente. Sin embargo, en A3 el dato se ha insertado como un texto y, en consecuencia, no se podrán realizar cálculos propios de los valores de fecha y hora. Lo comprobaremos con los siguientes ejemplos:

En B2:
=A2+"2:15"    [Resultado correcto: 10:45]

En B3:
=A2+"2:15"    [Resultado incorrecto: #¡VALOR!]

Lo que viene a continuación funciona igual en Excel 2003 y 2007.

En A4: (espacio):0    [Resultado: La celda ha quedado cubierta de almohadillas (#). Aunque ensanchemos al máximo la columna A, las almohadillas no desaparecen. Sin embargo, si nos ponemos en A4, observaremos que en la barra de fórmulas aparece el valor: -0,000694444444444444]
En A5: (espacio):1    [Resultado en la barra de fórmulas: 0:59:00]
En A6: (espacio):2    [Resultado: 1:59:00]
En A7: (espacio):3    [Resultado: 2:59:00]
En A8: (espacio):25    [Resultado: 01/01/1900  0:59:00]
En A9: (espacio):26    [Resultado: 01/01/1900  1:59:00]
En A10: (espacio):49    [Resultado: 02/01/1900  0:59:00]
En A11: (espacio):0 AM    [Resultado rarísimo: 2982616,16248843]
En A12: (espacio):0 PM    [Resultado rarísimo: 2982616,16318287]
En A13: (espacio):7 PM    [Resultado rarísimo: 2982616,45484954]

En Excel 2010 los resultados son distintos:

En A4: (espacio):0    [Resultado en la barra de fórmulas: 0:00:00]
En A5: (espacio):1    [Resultado: 1:00:00]
En A6: (espacio):2    [Resultado: 2:00:00]
En A7: (espacio):3    [Resultado: 3:00:00]
En A8: (espacio):25    [Resultado tipo texto: :25]
En A9: (espacio):26    [Resultado tipo texto: :26]
En A10: (espacio):49    [Resultado tipo texto: :49]
En A11: (espacio):0 AM    [Resultado tipo texto: :0 AM]
En A12: (espacio):0 PM    [Resultado tipo texto: :0 PM]
En A13: (espacio):7 PM    [Resultado tipo texto: :7 PM]

La suma de valores lógicos puede devolver resultados inesperados.

Comencemos poniendo unos cuantos valores lógicos en una hoja:

En A1: VERDADERO
En A2: FALSO
En A3: VERDADERO

Ahora, vamos a sumar estos valores de dos formas distintas.

En A5:
=A1+A2+A3     [Resultado: 2]

En este caso, Excel ha asignado valores numéricos a VERDADERO y FALSO. Sin embargo, al utilizar la función SUMA, se obtiene un resultado inesperado.

En A6:
=SUMA(A1:A3)    [Resultado: 0]

La función SUMA no considera los valores lógicos como números y, por tanto, el resultado es cero. La operación se ejecuta correctamente si, previamente, transformamos los valores lógicos en números nultiplicándolos por uno. 

En A7:
=SUMA(--A1:A3)     [Terminar con Ctrl + Mayús + Intro. Resultado: 2]

Hemos obtenido el resultado correcto, pero ha sido necesario crear una fórmula matricial.

Si, en vez de usar referencias, ponemos dentro de la función SUMA los valores lógicos, Excel utilizará sus equivalencias numéricas:

En A8:
=SUMA(VERDADERO;FALSO;VERDADERO;VERDADERO)     [Resultado: 3]

Las funciones Y y O actúan de forma confusa cuando se aplican a valores no lógicos.

Pongamos unos cuantos valores en la columna C para ilustrar este caso:

En C1: 5
En C2: (dejamos la celda en blanco)
En C3: Mariposa
En C4: 4:20
En C5: 16/5/2012

Ahora, apliquemos las funciones Y y O a estas celdas:

En C6:
=Y(C1;C2;C3;C4;C5)    [Resultado: VERDADERO]

En C7::
=O(C1;C2;C3;C4;C5)    [Resultado: VERDADERO]

¿Por qué estos resultados? Para comprender lo que hace Excel, nos ponemos en C6 (o en C7) y accedemos a Fórmulas + Insertar función. Obtendremos la siguiente ventana:

A las celdas en las que hay un número, una fecha o una hora, las funciones Y y O les asignan el valor VERDADERO; a las celdas vacías les asignan FALSO; a las que contienen un texto, el error #¡VALOR! En buena lógica, la función Y debería devolver FALSO, ya que se supone que para devolver VERDADERO todos los argumentos deben ser VERDADERO (lo indica claramente el propio cuadro de diálogo). Sin embargo, y por alguna razón incomprensible para mí, devuelve VERDADERO. ¡Misterio!

En algunas ordenaciones ocurre un caso curioso. Si los datos que hay que ordenar se han obtenidos de otras celdas mediante referencias que incluye el nombre de la hoja, pueden obtenerse resultados erróneos.

Rellenemos unas cuantas celdas de la "Hoja1" con los valores y fórmulas siguientes:

El resultado será:

Es evidente que la referencia Hoja1! en la columna C es innecesaria. Sin embargo, la singularidad a la que hemos hecho referencia, y que ahora vamos a descubrir, se produce por esta circunstancia.

Seleccionamos A1:C5 y accedemos a Datos + Ordenar de A a Z. Obtendremos la ordenación siguiente:

Las columnas A y B están perfectamente ordenadas, pero la C, no. Para ver qué ha ocurrido debemos comprobar cómo han quedado las fórmulas de las columnas B y C. Pulsamos Ctrl + ` para visualizar las fórmulas; o bien, accedemos a Fórmulas + Mostrar fórmulas (Alt + º).

Nota: Aunque Excel indica que la combinación de teclas rápidas para mostrar las fórmulas es Alt + º, esta combinación sólo funciona en Excel 2003 y 2007. En Excel 2010 hay que pulsar  Ctrl + ` (acento grave).

Las fórmulas han quedado así:

Albacete, que antes de la ordenación estaba en A3, ahora está en A1. En la celda C1 la fórmula hace referencia al valor de A3, donde ya no está Albacete sino Murcia; de ese modo, en C1 aparece Murcia. Jaén, que estaba en A1 antes de la ordenación, pasa a A2, pero la fórmula de C2 indica que se debe mostrar el valor de A1, que como hemos indicado anteriormente ocupa Albacete. Lo mismo ocurre en las otras celdas. ¿No es un comportamiento rarísimo? Es como si hubiéramos puesto referencias absolutas en las fórmulas de la columna C...pero no lo hemos hecho.

La conclusión es evidente: si tenemos que ordenar una lista con Datos + Ordenar de A a Z, no conviene incluir el nombre de la hoja en la referencia a las celdas.


2 comentarios:

  1. Si alguien sabe como carajos se multiplica por -1 en esa pichera de Excel 2010 les agradecería de antemano me corrigieran:

    =celda*(-1)
    =-1*celda

    Gracias por su colaboración.

    ResponderEliminar
  2. Gracias, me ha venido muy bien el tema de ver fórmulas con Ctrl+` porque me he pasado al excel 2010 y con Alt+º no me funcionaba.

    Saludos

    Juan
    Bilbao

    ResponderEliminar