lunes, mayo 20, 2013

Evitar constantes en BUSCARV.

Si hay una línea en Excel que marca el paso de principiante a usuario intermedio, es el uso de BUSCARV. Esta función, como tantas otras funciones de búsqueda en Excel, extraer valores de una tabla de datos basándonos en un criterio de búsqueda.

Sin lugar a dudas, es una de las funciones más usadas en Excel. Sin embargo y desde el punto de vista de las buenas prácticas, tiene un problema al que pocos usuarios prestan atención: el tercer argumento de la función, el indicador_columna (la columna en la tabla de la cual se quiere extraer el dato). Veamos este ejemplo sencillo (que me vino a colación de una nota sobre normas de diseño en Excel que estoy escribiendo)



La fórmula en la celda F2 usa BUSCARV para extraer el número de teléfono de acuerdo al nombre que ponemos en E2.

Ahora, supongamos que insertamos en la tabla de datos una columna (Zona) entre los campos "Nombre" y "Teléfono"



Si bien los rangos de la función se han adaptado al cambio, el tercer argumento de la función es una constante. Y por lo tanto, ahora el resultado es la zona y no el teléfono.

En ciertos casos el error no es fácilmente identificable y puede ser crítico.

Las buenas prácticas en Excel nos indican que debemos evitar usar constantes en las fórmulas. En este caso podemos superar el problema usando la función COINCIDIR para crear una referencia dinámica.

Esto lo podemos hacer usando COINCIDIR junto con BUSCARV o, mejor en mi opinión, con INDICE.

Con BUSCARV usamos

=BUSCARV(F2;$A$2:$C$5;COINCIDIR(G$1;$A$1:$C$1;0);0)



con INDICE la fórmula es más corta

=INDICE($C$2:$C$5;COINCIDIR(F2;$A$2:$A$5;0))


Como Excel adapta los rangos dinámicamente al insertar, eliminar o mover filas y columnas, estas fórmulas mantienen siempre la referencia exacta y evitan errores inadvertidos.

Nótese que con la combinación de BUSCARV y COINCIDIR en nuestro ejemplo, podemos cambiar el data extraído con solo cambiar el texto en la celda G1.

6 comentarios:

  1. Tambien es muy util cuando lo que buscas esta en tablas dinámicas, que al actualizarlas modifican la ubicación de sus celdas. Muy útil este tip. Saludos.

    ResponderBorrar
  2. Interesante observación que tendré en cuenta para próximas búsquedas en tablas. (Entiendo que el primer parámetro de COINCIDIR en la fórmula con INDICE se refiere a F2 y no A2)

    ResponderBorrar
  3. Rubén, efectivamente. Gracias por la observación (será corregido).

    ResponderBorrar
  4. Miguel Raul Spindiak22 mayo, 2013 00:33

    Jorge: en el ejemplo que distes (y siguiendo tus observaciones sobre el uso de nombres en Excel), si le damos nombre a la tabla (ej. "Tabla") y si le asignamos en forma automática los nombres a las columnas de esta tabla, tendríamos la siguiente función:
    BUSCARV(F2;tabla;COLUMNA(Teléfono);0)que es clara y autodocumentativa, y se conserva aunque agreguemos o quitemos columnas.

    Es cierto que cada vez que haya una modificación de columnas, deberíamos repetir la operación de nombrar, pero es una tarea que es sencilla.

    Estoy esperando tu nota de Normas de Diseño en Excel. Creo que es fundamental para todos y que cambiaría radicalmente la forma de trabajar de muchos, ahorrándonos tiempo, esfuerzo y sobre todo tener espacios pulcros y ordenados, donde como en la arquitectura, cuando una casa está bien diseñada, los resultados de las modificaciones guardan armonía y belleza.

    Muchas gracias. Miguel.

    ResponderBorrar
  5. Muy buen tip, gracias a todos, a quien sostiene el blog y los que aportan con sus comentarios.

    Saludos,

    ResponderBorrar
  6. Muchas gracias, muy buena observación

    Desde

    México D.F.

    ResponderBorrar

Nota: sólo los miembros de este blog pueden publicar comentarios.