viernes, 9 de diciembre de 2011

Funciones volátiles

En Excel las funciones pueden ser "volátiles" o "no volátiles". Las volátiles se recalculan cuando se abre el libro o cuando se modifica cualquier celda. Las no volátiles se recalculan, únicamente, cuando se modifica alguna celda que interviene en la fórmula donde se ha empleado la función. Veamos un ejemplo.

En A1 ponemos el formato "dd/mm/aaaa hh:mm:ss" y escribimos la fórmula: =AHORA()

Se mostrará la fecha y hora actuales; por ejemplo, 08/12/2011 17:03:41

Esperamos un rato y comprobamos que, a pesar de haber transcurrido un tiempo, la celda muestra el mismo valor. A continuación, escribimos algo en otra celda; la fecha y la hora se actualizan automáticamente. AHORA es una función volátil. Para asegurarnos, estando en A1, hacemos clic en el icono fx de la barra de fórmulas.

Excel muestra la siguiente ventana:

Veamos otro ejemplo basado en esta tabla:

En la celda A12 escribimos: =DESREF(A3;3;4;1;1)

Excel devolverá el valor que hay en la celda E6.

DESREF también es una función volátil y lo comprobaremos colocándonos en A12 y haciendo clic en fx. En este caso, la función tiene 5 argumentos y la ventana que muestra Excel es distinta:

Hagamos otra prueba. Guardamos el libro y cerramos Excel. A continuación, abrimos el mismo libro y volvemos a cerrarlo si hacer ninguna modificación. Excel preguntará si queremos guardar los cambios efectuados. La pregunta sorprenderá a los usuarios que ignoren que AHORA y DESREF son funciones volátiles. Al abrir el libro, Excel recalcula, sin consultar al usuario, las fórmulas en las que aparecen estas funciones, sustituyendo los valores antiguos por otros (que pueden coincidir); esto implica una modificación del libro, y de ahí que, al cerrarlo, Excel nos pregunte si queremos guardar los cambios efectuados.

Son volátiles las siguientes funciones:

ALEATORIO
AHORA
HOY
DESREF
INDIRECTO
INFO
CELDA("nombrearchivo")

Algunas funciones han dejado de ser volátiles al cambiar de versión.Por ejemplo, la función INDICE dejó de ser volátil a partir de Excel 97.

Según cómo se usen, algunas funciones pasan de ser volátiles a no serlo. Esto le ocurre, por ejemplo, a la función SUMAR.SI. En la hoja,

siempre que los valores de la columna A sean mayores o iguales a 15, sumaremos en D2 los correspondientes valores de la columna B. Si utilizamos la fórmula: =SUMAR.SI(A2:A5;">=15";B2:B5), Excel considerará que la función SUMAR.SI no es volátil. Por el contrario, si usamos la fórmula =SUMAR.SI(A2:A5;">=15";B2), que devuelve el mismo resultado, la función será considerada volátil.

En el último caso, Excel nos engaña, porque, al hacer clic en fx, muestra la ventana

en la que no se indica que la función sea volátil. Sin embargo, si guardamos el libro, salimos de Excel y, posteriormente, abrimos el libro y lo cerramos sin hacer cambios, Excel nos preguntará si queremos guardar los cambios efectuados, señal inequívoca de que ha recalculado la fórmula y, por consiguiente, ha considerado que SUMAR.SI es volátil.

1 comentario: