La función DESREF en Excel

La función DESREF en Excel nos devuelve una referencia a un rango de celdas que ha sido desplazado respecto a otra referencia que hemos especificado ¿Suena complicado? Vaya que es complicado explicar, pero la función DESREF es uno de esos tesoros escondidos de Excel.

La función DESREF y los Boy Scouts

Después de pensar cómo explicar mejor la función DESREF he recordado un juego que teníamos en los “Boy Scouts” cuando estábamos aprendiendo a utilizar la brújula.  El juego consistía en encontrar el tesoro escondido siguiendo las instrucciones dadas:

  1. Colocarse en el árbol marcado con la banda amarilla
  2. Caminar 50 pasos hacia en Norte
  3. Caminar 35 pasos al Oeste
  4. Encontrarás el tesoro debajo de una piedra.

Si seguíamos las instrucciones correctamente entonces encontrábamos el tesoro escondido justamente en la ubicación indicada. Pero ¿qué tienen que ver los Boy Scouts con la función DESREF en Excel? Imagina que podemos dar a Excel un conjunto de instrucciones para que “encuentre el tesoro” dentro de una hoja:

  1. Colocarse en la celda B5
  2. Moverse 50 filas hacia abajo
  3. Moverse 35 columnas a la derecha
  4. Devolver la referencia de la celda donde te encuentres

Podemos hacer que Excel siga estos pasos utilizando la función DESREF. Los pasos anteriores serán  seguidos al utilizar la siguiente fórmula:

=DESREF(B5, 50, 35)

Con esta fórmula Excel nos devolverá la referencia a la celda AK55 ya que a partir de la celda B5 se moverá 50 filas hacia abajo y 35 columnas a la derecha.

Sintaxis de la función DESREF

Con la analogía previamente hecha será más sencillo explicar el detalle de la función DESREF en Excel y su sintaxis.

Sintaxis de la función DESREF

  • Ref (obligatorio): La referencia a la celda o rango donde se iniciará el desplazamiento.
  • Filas (obligatorio): El número de filas a moverse. Si el valor es positivo se moverá hacia abajo y si es negativo se moverá hacia arriba.
  • Columnas (obligatorio): El número de columnas a moverse. Si el valor es positivo se moverá hacia la derecha y si es negativo se moverá a la izquierda.
  • Alto (opcional): El número de filas que deseamos que nos devuelva como resultado.
  • Ancho (opcional): El número de columnas que deseamos que nos devuelva como resultado.

De esta manera, para indicar a la función DESREF que necesitamos desplazarnos 5 filas hacia abajo y 3 columnas a la derecha a partir de la celda A1 utilizaremos la siguiente fórmula:

=DESREF(A1, 5, 3)

Notas importantes sobre la función DESREF

Algo muy importante que debo decir sobre la función DESREF en Excel es que si el primer argumento de la función es una referencia a una sola celda entonces la función nos devolverá de manera la referencia a una sola celda. Observa la siguiente imagen:

Ejemplo de la función DESREF en Excel

Ya que la función DESREF nos devuelve la referencia a la celda C4 es posible mostrar su valor en la celda C7. Ahora considera lo siguiente, si en lugar de especificar una sola celda como el primer argumento de la función proporcionamos un rango, entonces nos daremos cuenta que la función DESREF devuelve una referencia a un rango y no podremos mostrar su resultado sino que obtendremos un error:

Error al mostrar el valor devuelto por la función DESREF en Excel

El error no está en la función DESREF sino al intentar desplegar su resultado en la celda C7 cuando en realidad nos está devolviendo una referencia a un rango. Para este ejemplo específico la función DESREF devuelve la referencia C3:C4 y lo puedo demostrar utilizando la función SUMA sobre el resultado de la función DESREF:

Sumando el rango devuelto por la función DESREF

Observa que no he cambiado la función DESREF sino que solamente apliqué la función SUMA al rango de celdas devuelto por la función. En este ejemplo la función SUMA hace la operación SUMA(C3:C4) que es precisamente el resultado mostrado en la celda C7. Por esta razón es que frecuentemente observarás que la función DESREF es utilizada en junto con otras funciones.

Ya te has dado cuenta también que si el primer argumento es una referencia a una sola celda, la función DESREF devolverá también una sola celda. Pero si el primer argumento es un rango de celdas entonces obtendremos también una referencia a un rango de celdas.

Ejemplos de la función DESREF

Ya hemos visto varios ejemplos de la función DESREF en Excel, solo mostraré algunos ejemplos adicionales para dejar más claro el uso de la función. En el siguiente ejemplo coloco en el segundo argumento de la función un número negativo que hará un desplazamiento de filas hacia arriba:

Desplazamiento superior con la función DESREF

Ahora quiero mostrarte otro ejemplo pero utilizando el cuarto y quinto argumento de la función DESREF. Ya sabemos que al indicar una referencia a una sola celda en el primer argumento de la función DESREF obtendremos como resultado la referencia a una sola celda. Este comportamiento lo puedes modificar si utilizas el cuarto y quinto argumento de la función. En la siguiente fórmula estoy indicando a la función DESREF iniciar en la celda A4 y desplazarse hacia arriba y a la derecha.

=SUMA(DESREF(A4, -2, 2, 3, 2))

Aunque he especificado una sola celda de inicio también estoy indicando a la función que a partir de la celda destino encontrada me devuelva en total 3 filas y dos columnas. En la siguiente imagen puedes observar el rango devuelto con un fondo de color rojo:

Ejemplo de la función DESREF

Usos prácticos de la función DESREF

A continuación mencionaré algunos usos prácticos de la función DESREF en Excel. Para cada uno de ellos podrás leer un artículo con información adicional sobre el uso de la función.

  • Crear un rango dinámico. Excel nos permite asignar un nombre a un rango de celdas para después hacer referencia a ellas. Sin embargo, si necesitamos aumentar o disminuir el tamaño de dicho rango necesitamos editar continuamente el nombre y su rango asociado. Este problema lo podemos solucionar utilizando la función DESREF. Consulta el artículo Nombres de rango dinámicos.
  • Actualizar una lista desplegable. Las listas desplegables, que forman parte de la validación de datos en Excel, se basan en un rango de datos. Si creamos un rango dinámico sobre el cual se base la lista desplegable, entonces lograremos que la lista se actualice automáticamente. Lee más al respecto en el artículo Cómo actualizar una lista desplegable en Excel.
  • Actualizar listas dependientes. Si tenemos dos listas y deseamos que las opciones de una dependan de la selección de otra entonces podemos utilizar la función DESREF para crear dicha dependencia. Lee más al respecto en el artículo Cambiar valores de una lista basados en la selección de otra lista.

Así como algunas otras funciones de Excel, la función DESREF no es de mucha utilidad si la usamos sola, pero si la combinamos con algunas otras funciones nos ayudará a implementar muy buenas soluciones en Excel.

12 pensamientos en “La función DESREF en Excel

  1. guillermo

    Excelente información y como siempre muy bien explicado y ejemplificado.
    Muy útil….lo que me costó cursos en comprender hoy lo entiendo claramente.

    Responder
  2. fredy

    muy bueno me ayudo a entender esta funcion

    Responder
  3. pepe lui

    gracias por esta info amigo

    Responder
  4. luis

    mostruo !!, muchas gracias por la paciencia para explicar esta función, me costó mucho entenderla en otras paginas…. te lo agradezco !!

    Responder
  5. Ricardo Rodríguez

    Hola Moises
    Hay un dicho que dice “que por más que se sepa, siempre falta algo”.
    Me pareció muy didactica la forma como explicastes la función, pasando de algo muy facil, como es el ejemplo de los “Boy Scouts”, a algo verdaderamente complejo en su interpretación como es la función DESREF.
    Muchas Gracias. Ricardo. Caracas. Venezuela.

    Responder
  6. Robert

    Gracias por el soporte y ayuda en la función DESREF, excelente.

    Responder
  7. CarlosG

    Que tal Moises:
    Gracias por tu explicación, quisiera aprovechar para saber como anidar la función DESREF con la función SUMAR.SI o bien con la función CONTAR.SI para hacer una rango dinámico. Por ejemplo tengo 3 columnas, una con fechas por trimestres otra con la palabra “NEGATIVO o POSITIVO” y otra con valores numéricos por lo que quiero que con la ayuda de DESREF y CONTAR.SI me indice cuantas palabras “NEGATIVO o POSITIVO” hay, de igual manera con la funcion DESREF y SUMAR.SI me sume los valores positivos y negativos , el uso de la funcion DESREF es para hacer un rango dinamico ya que las fechas aumentan todos los días, por tanto hay que actualizar las funciones CONTAR.SI y SUMAR.SI manualmente. Muchas gracias de antemano.

    Responder
    1. Moisés Ortíz Autor

      Hola CarlosG, te sugiero aprender primero el tema de rango dinámicos y para ello te dejo un vínculo a un artículo con más información:
      http://exceltotal.com/nombres-de-rango-dinamicos/

      Una vez que puedas crear tu rango dinámico podrás utilizarlo fácilmente con cualquier otra función.

      Responder
  8. Edgar Villegas

    WOW!!!! De verdad que te felicito por este Excel-ente trabajo y te agradezco infinitamente por hacerlo tan fácil… y más aún, por compartirlo. Dios te bendiga.

    Responder
  9. M. Beltran

    Saludos Moises:
    Andaba en la búsqueda de la función DESREF de Excel® y justo me encontré con tu excelente sitio.
    Allí encontré las explicaciones que necesitaba y sobra decir que me resultaron sencillas de aprender y muy útiles, por lo que no me pareció justo servirme de tu conocimiento y simplemente retirarme sin decir nada.
    Así que agradezco tus detalladas explicaciones, tu esfuerzo para plasmarlas aquí, y, en especial, tu interés por compartir (el compartir es de seres inteligentes), así como tu valioso tiempo dedicado a nuestro entero beneficio (el de nosotros, tus lectores).
    Por todo lo anterior, recibe mi sincero reconocimiento y mi gratitud, Moises!

    Responder
  10. Juan

    Te felicito, son pocos como usted que expone las cosas claras y precisas. No expone por exponer para que le digan sabe, sino antes de exponer sabe y conoce el tema

    Responder
  11. Manuel Isaías Peña

    Excelente aporte Moisés, felicidades al equipo de exceltotal por el maravilloso trabajo que hacen.
    Es posible también desplegar los resultados de un rango, si usamos la formula de manera matricial, creo que podría ser de utilidad añadirle eso a este articulo.
    Suerte.

    Responder

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>