jueves, 10 de diciembre de 2009

Función indirecto

Una de las funciones más útiles para generar reportes interactivos es =INDIRECTO(texto). Esta función permite vincularse a una celda según un texto que contiene una dirección de celda.

El vínculo normal, sin INDIRECTO, funciona así: si A1 contiene el número 5, en la celda B1 puedo escribir =A1 y como resultado obtengo 5.

Con INDIRECTO uso =INDIRECTO("A1") y obtengo 5.  Esto es trivial y a primera vista no muy interesante. Pero también puedo escribir en la celda C1 el texto A1 y luego referirme a esa celda =INDIRECTO(C1) y también obtengo 5. Esto ya es más interesante porque el vínculo se vuelve dinámico: dependiendo de qué texto haya en C1, la función indirecto se vincula con una celda distinta. A medida que complejizamos la función se va haciendo más útil.

Por ejemplo podemos referirnos a distintas hojas dentro de la planilla.
=INDIRECTO("Hoja1!A1")
=INDIRECTO(D1&E1) donde D1 contiene el texto Hoja1! y E1 contiene el texto A1 y el signo ampersand (&) concatena ambas cadenas de texto.

Si en vez de Hoja1 la hoja se llama Hoja 1 (con un espacio entre la palabra y el número) hay que tener cuidado ya que en un vínculo el nombre va a estar encerrado entre comillas simples, así 'Hoja 1'!A1, y por lo tanto nuestra referencia en la fórmula INDIRECTO debe seguir la misma convención =INDIRECTO("'Hoja 1'!A1"). En la primera parte después del paréntesis hay una comilla doble seguida de una comilla simple.

INDIRECTO sirve dentro de la misma planilla ya que si nos vinculamos a otra planilla y ésta se cierra, la función entrega un error #REF!  En cambio un vínculo directo a otra planilla no genera error y mantiene el último valor.

Veamos un ejemplo. Supongamos que hay una empresa de retail que tiene 25 tiendas o locales comerciales, cada uno con datos de superficie (m2), ventas, costos y margen por cada mes del año, incluso de varios años.  Estos datos están contenidos en varias hojas (LOC01... LOC25), una por cada local, de nuestra planilla Retail.xls.  Esta es mucha información difícil de visualizar de manera simple. Una solución es usar INDIRECTO para construir un reporte de resumen.

El truco es tener dos hojas adicionales, una se puede llamar Informe y la otra Control. En Informe mostraremos la información requerida de manera resumida y la hoja Control contiene los parámetros que, precisamente, controlan lo que se muestra en Informe.

Supongamos que cada hoja por local comercial contiene en las columnas los siguientes datos:
A: nombres de las variables
B a M: datos correspondientes a los meses de enero a diciembre
Y en las filas contiene lo siguiente:
Fila 1: meses (ene, feb,...)
Fila 2: superficie (en M2)
Fila 3: ventas ($)
Fila 4: costos variables ($)
Fila 5: costos fijos ($)
Fila 6: margen ($)
Por lo tanto, LOC12!M6 contiene el margen resultante en diciembre para el local comercial número 12.


Nuestro informe debería permitir que eligiéramos que local queremos visualizar, qué mes y qué variable. Para esto creamos la hoja Control con la siguiente estructura. continuará.

No hay comentarios:

Publicar un comentario