sábado, 17 de septiembre de 2011

La función DESREF en Excel


Cuando queremos hacer referencia a una celda o rango de celdas, conocemos varias posibilidades de hacerlo pero, ¿qué ocurre si dicha celda o rango puede variar de posición o de tamaño?

En el siguiente enlace, se puede descargar un archivo de Excel donde podemos encontrar el ejercicio que seguiremos en este tutorial (Ejercicio 1) y otro ejercicio muy útil en la práctica (Ejercicio 2) donde se hace una lista desplegable, cuyo origen de datos es un rango variable generado por la función DESREF.


Por ejemplo, si un rango está compuesto por una lista de artículos de almacén, es normal que varíe su tamaño, pues los artículos del almacén de una empresa aumentan o disminuyen.

Por otro lado, un rango que varía de posición y tamaño, pudiera ser uno que se refiera a un período de fechas que varía a elección del usuario (por ejemplo, mediante unas Listas desplegables). Por ejemplo, seleccionar un período entre Enero y Marzo....

Rango 1


o entre Febrero y Junio:

Rango 2


En estos casos, si la celda o el rango puede tener posiciones y tamaños distintos (como los aludidos anteriormente con los ejemplos), hay una forma de hacer referencia a ellos mediante la función DESREF. Esta función no es del todo fácil de entender, precisamente por que alude a referencias que varían en el espacio y es necesario entender cómo se manejan "las coordenadas".

La función DESREF devuelve una selección de celda o rango, cuya situación se define con las coordenadas que se escriben en parámetros separados por el signo punto y coma. La sintaxis de la función es:


Por ejemplo, si quisieramos sumar los importes del Rango 2 de la imagen anterior, deberíamos escribir:

                                               =SUMA ( DESREF (A1;1;1;1;5) )

Donde... se suma un rango cuyo extremo superior izquierdo empieza a definirse 1 fila más hacia abajo y 1 columna más a la derecha comenzando a contar desde la celda A1 (celda de referencia). Por último, los últimos  parámetros significan que el rango tiene 1 fila de alto y 5 columnas de ancho.
(Es necesario saber que los parametros de "filas" y "columnas" pueden ser positivos o negativos (cuando son negativos, el nº de filas se cuenta hacia arriba y nº de columnas se cuenta hacia la izquierda).

Una vez entendido esto, nos damos cuenta de que, hasta ahora sólo hemos conseguido definir un rango según unas "coordenadas" fijas. Pero lo interesante es que algunas de las coordenadas varíe en función de alguna variable que podamos definir como usuario (en definitiva, que el rango sea dinámico). Por ejemplo, podemos cambiar en la fórmula anterior:

                                              =SUMA ( DESREF (A1;1;B4-1;1;B5) )

... con lo que conseguimos que el rango tenga su inicio en una celda que depende del valor de otra celda en la que nosotros podemos introducir un valor a nuestra elección:

Ejercicio 1


Vemos en el Ejercicio 1 que, poniendo el nº de mes en B4 y la cantidad de meses que deseamos en B5, obtenemos la suma del rango en B6. Este es un ejemplo muy simple y con fines didácticos, pero no demasiado aplicable en la práctica. 


  José Manuel Pomares Medrano


3 comentarios:

  1. El ejemplo que pones =SUMA ( DESREF (A1;1;1;1;5) ) no se refiere al Ejemplo 1 si no al 2.

    Un saludo

    ResponderEliminar
  2. MUY DIDACTICA LA EXPLICACION, AGRADECIDO

    ResponderEliminar