Basándonos en el problema planteado por un lector de la revista, conoceremos un recurso de búsqueda muy efectivo. He aquí su relato: Tengo un libro con muchas hojas. Cada hoja corresponde a una ciudad y contiene una base de datos con varias columnas. Todas las hojas tienen la misma estructura: legajo y nombre. El nombre de la ciudad está en la solapa de su hoja. Quiero hacer una búsqueda indicando ciudad y legajo para encontrar el nombre correspondiente. ¿Cómo se indica el nombre de la hoja como argumento de la búsqueda?
Este problema puede resolverse con la función INDIRECTO. Veamos un ejemplo preliminar para entender la función. Supongamos que en [A1:A10] tenemos una serie de valores numéricos. En la celda [C1] tenemos escrito A1:A10, como un texto. La fórmula
=SUMA(INDIRECTO(C1)) nos da la suma de los diez valores del rango [A1:A10].
En pocas palabras la función INDIRECTO toma el contenido de una celda (en este caso, [C1]) y lo interpreta como una dirección o un rango (en este caso A1:A10) para ser usado dentro de otra fórmula. Veamos un ejemplo más interesante. Tenemos una serie de datos en la columna [A], a partir de [A1]. Si en la columna no hay blancos intermedios, la función =CONTARA(A:A) nos dice cuántos datos hay en la columna o, lo que es lo mismo, el número de fila del último dato. La fórmula =“A”&CONTARA(A:A) nos dice la dirección de ese último dato y la función =INDIRECTO(“A”&CONTARA(A:A)) nos da cuál es el dato. Pasemos ahora al problema que plantea el lector.
Tenemos un libro con cuatro hojas. Las tres primeras contienen tablas de legajo y nombre, en el rango [A1:B7] con títulos en la primera fila y los datos propiamente dichos a partir de la segunda. En la cuarta hoja queremos encontrar un nombre determinado conociendo la hoja donde se debe hacer la búsqueda y el legajo buscado. Si el legajo está en la celda [B2] y buscamos el nombre correspondiente de la hoja Rosario. Podemos usar la función BUSCARV: =BUSCARV(B2;Rosario!A2:B7;2;FAL SO)
El segundo argumento es el rango de la tabla, que incluye el nombre de la hoja, separado del rango propiamente dicho con un signo de exclamación. Si queremos que el nombre sea variable, tomado de otra celda, lo que debemos hacer es armar la dirección del rango y aplicar luego la función INDIRECTO. Supongamos que el nombre de la hoja está en [B1]. En una celda auxiliar, por ejemplo [D1], armamos el rango: =B1&”!A2:B7”. La función de búsqueda nos queda: =BUSCARV(B2;INDIRECTO(D1);2;FA LSO).
La función INDIRECTO hace que BUSCARV interprete correctamente el contenido de la celda [D1] como el rango de búsqueda.