martes, 21 de abril de 2009

Búsqueda con tablas e Indicador de Columnas Variable

Ampliando el modelo del artículo ”búsqueda de elementos idénticos en distintas tablas” ¿Qué podemos hacer cuando tenemos que buscar un elemento en distintas tablas y que, además, me devuelva información de distintas columnas (tablas e indicadores de columna variables )?

En este ejemplo vamos a manejar las tablas dentro de una misma hoja. Supongamos que nuestra tabla de salarios ahora tiene dos campos: Sueldo Bruto y Bruto mes. Por otro lado supongamos que nuestra tabla de ventas no tiene una única columna sino cuatro, correspondientes al desglose por trimestres. 

 

Queremos realizar un cuadro resumen con la información de nuestros comerciales pero con la posibilidad de elegir entre los distintos campos disponibles para cada tabla, como se puede ver en la siguiente figura: 

Como se puede apreciar en la imagen, dentro de la opción de la tabla de salarios podremos elegir que información queremos por medio de una lista desplegable. Lo mismo ocurrirá para la tabla de ventas, donde podremos escoger el trimestre que nos interese. Hay varias formas de solucionar este problema. Nosotros lo resolveremos nuevamente con las funciones BUSCARV e INDIRECTO. 

1. Nos situamos en E17 y escribimos las siguientes tablas: 

 Lo que estamos haciendo es establecer la relación entre cada campo de cada tabla y el número de columna que dentro de estas tablas ocupa cada campo. Por ejemplo, el campo Sueldo_Bruto ocupa la segunda columna dentro de la tabla Salarios. El trim3, dentro de la tabla ventas, ocupa la cuarta columna, etcétera.

2. Seleccionamos el rango E17:F18 y vamos al menú Insertar/Nombre/Crear. Por defecto nos propone nombres en columna izquierda: aceptamos.

3. Seleccionamos el rango E21:F24 y seguimos el paso anterior. Con estos dos pasos ya hemos conseguido que el nombre de campo de cada tabla se corresponda con el número de columna que ocupa dentro de dicha tabla.

4. Nos situamos en B3 y vamos al menú Datos/Validación de datos y marcamos Permitir/Lista y en el recuadro origen seleccionamos E17:E18. Aceptamos.

5. Nos situamos en C3 y vamos al menú Datos/Validación de datos y marcamos Permitir/Lista y en el recuadro origen seleccionamos E21:E24. Aceptamos.

Con los pasos 4 y 5 hemos generado las listas desplegables con las opciones para cada tabla.

6. Nos ponemos en B4 y escribimos la siguiente fórmula:

=BUSCARV($A4;INDIRECTO(B$2);INDIRECTO(B$3);FALSO) 

La primera parte de la fórmula  =BUSCARV($A4;INDIRECTO(B$2);  ya ha sido explicada en el artículo “búsqueda de elementos idénticos en tablas variables”. La segunda parte de la fórmula   INDIRECTO(B$3);FALSO)   significa lo siguiente. INDIRECTO B$3 leerá el contenido de B3 y lo transformará en referencia válida. En B3 tendremos, por ejemplo, el nombre Bruto_mes. Como hemos creado previamente estos nombres (ver pasos 2 y 3) INDIRECTO “cambia” B$3 por Bruto_mes y, por lo tanto, nos devolverá el valor que tiene asignado dicho nombre, que es dos. Y dos es precisamente el número de columna que ocupa Bruto_mes en la tabla Salarios.

7. Sólo nos queda copiar esta fórmula en el rango B4:C13 y trabajo terminado. 

 

No hay comentarios:

Publicar un comentario