jueves, 14 de mayo de 2009

Importar Rangos Completos con INDIRECTO y Fórmula Matricial



Hoy, jueves 14 de mayo, comienzo este artículo felicitando a mi queridísimo amigo, y también uno de mis "mentores" -junto a mi también queridísimo amigo Julián de Cabo-, Enrique Dans que está de cumpleañitos. Sí, Enrique Dans el del Blog de Enrique Dans... Enriquiño mi más cariñosa felicitación.

Dicho lo cuál nos ponemos manos a la obra para dar respuesta a una pequeña consulta que me habéis realizado y que paso a describir. La empresa X maneja un pequeño cuadro de mando, de periodicidad mensual, donde se recogen distintos datos relativos a distintas sucursales de dicha empresa. En concreto el cuadro original contempla 56 sucursales y 18 medidores. En nuestro ejemplo trabajaremos con 12 sucursales y 4 medidores pero, como ya se imagina, la solución es exactamente la misma. El cuadro de mando, que se puede descargar en el vínculo del comienzo del artículo, es el siguiente:

Este cuadro se encuentra en una hoja denominada DATOS. Tenemos tres hojas más denominadas Enero, Febrero y Marzo con la información relativa a dichos meses:

Hoja denominada Enero:
Hoja denominada Febrero:
Hoja denominada Marzo:

Lo que queremos conseguir es que seleccionado un mes en de la lista desplegable que montaremos en la celda B1 de la hoja DATOS, automáticamente "me traiga" a esta hoja y dentro de esta tabla toda la información del mes solicitado. Los pasos a seguir son los siguientes:
1. Escribimos los nombres de los meses que queremos que aparezcan en nuestra lista desplegable. Dentro de la hoja DATOS nos situamos, por ejemplo, en la celda A21 y escribimos Enero; en A22 Febrero; y en A23 Marzo. Evidentemente, lo normal será que tenga 12 hojas con los 12 meses y que, en consecuencia, tenga que escribir la lista completa con los 12 meses. En nuestro ejemplo utilizaremos sólo 3.
2. Una vez introducidos los nombres de los 3 meses nos situamos en la celda B1. Abrimos el menú Datos/Validación y seleccionamos Permitir/Lista.
En el cuadro Origen escribimos =A21:A23 y,  finalmente, pulsamos Aceptar. Con esto ya tendremos nuestra lista desplegable con los meses en B1.
3. Vamos a la hoja denominada Enero, seleccionamos el rango B3:E14 y hacemos clic en el Cuadro de nombres (el que se encuentra a la izquierda de la barra de fórmulas y que puede ver en la siguiente imagen). Escribimos el nombre enero y pulsamos Enter.
4. Repetimos el paso 3 con las hojas denominadas Febrero y Marzo (seleccionando sus correspondientes tablas y dándoles el correspondiente nombre del mes).
5. Nos situamos en la hoja DATOS y seleccionamos el rango B5:E16 y escribimos la siguiente y única fórmula:
=INDIRECTO(B1) pero NO PULSAMOS ENTER. Pulsamos la combinación de teclasCtrl+Shift+Enter  para que, como ya hemos visto en diversos artículos, Excel lo trate como una entrada matricial. La fórmula resultante será:
{=INDIRECTO(B1)}

Fíjese que en B1 tendremos el nombre del mes que hemos asociado a su correspondiente tabla. Con la función INDIRECTO conseguimos que el nombre del mes sea una referencia válida para Excel. Pero como dicho nombre hace referencia a una tabla (o matriz) necesitamos concluir nuestra fórmula convirtiéndola en una entrada matricial. De esta sencilla manera habrá conseguido "importar" toda la tabla correspondiente al mes seleccionado en la celda B1 de una sola "atacada".

2 comentarios: