


Objetivo: "Acercar a los usuarios de Excel soluciones asequibles y prácticas para su trabajo diario".













Es muy habitual que la información con la que vamos a trabajar se encuentre dispersa en distintas hojas de un libro o incluso en distintos libros (archivos). Sin entrar en la discusión de cómo se debe plantear correctamente nuestro modelos en Excel para sacarle el mayor rendimiento posible con el mínimo esfuerzo (artículo/s que prometo abordar en este blog) me planteáis la siguiente consulta:
“Dentro de un archivo tengo los nombres de 32 comerciales y 10 hojas distintas con información relativa a sus salarios, ventas, comisiones, etcétera. Cuando deseo realizar un resumen que incluya toda esta información acabo copiando y pegando a mano ¿Hay alguna manera de que, por ejemplo, busquemos los nombres de los comerciales y nos devuelva toda la información relativa a éstos que se encuentre en las distintas hojas?”.
En este caso que me proponéis, la solución es bastante sencilla, ya que la información sigue un mismo patrón aunque se encuentre dispersa en distintas hojas. A saber: todas las tablas tienen dos columnas, siendo la primera el nombre de los comerciales y dónde la segunda contiene la información sobre ventas, comisiones, etcétera. En nuestro ejemplo vamos a plantear el caso para 10 comerciales y 3 tablas repartidas en 3 hojas distintas:

2. En la hoja Ventas tenemos nuestra tabla en el rango A2:B12 y hacemos lo mismo que en el caso anterior: seleccionamos A3:B12, hacemos clic en el cuadro de nombres y escribimos ventas.

=BUSCARV($A4;INDIRECTO(B$3);2;FALSO)
Fíjese que en el segundo argumento de la función BUSCARV (matriz_buscar_en) hemos anidado la función INDIRECTO. El objetivo es aprovechar el nombre del campo, por ejemplo salarios, para que BUSCARV localice en dicha tabla la información deseada. Cuando copiemos la fórmula de B4 hacia la derecha la matriz_buscar_en irá variando con el nombre del campo. Para ello hemos utilizado referencias mixtas fijando la columna para los nombres de los comerciales ($A4) y fijando la fila para los nombres de las tablas (B$3). De esta manera podremos copiar hacia la derecha y hacia abajo la fórmula de B4 y con una única fórmula habremos terminado nuestro resumen.
Buscamos que en B4 nos indique si existe o no el número de factura que escribamos en B2. Si existe pondrá VERDADERO y coloreará la celda dónde se encuentra. Si no existe pondrá FALSO y coloreará la celda B2 y tachará su contenido (para indicarnos que dicha referencia es incorrecta). Manos a la obra:
1. Seleccionamos el rango D3:D22 y hacemos clic en el cuadro de nombres (a la derecha de la barra de fórmulas) y escribimos el nombre facturas.
2. Nos situamos en B4 y escribimos: =O(B2=facturas) y NO PULSAMOS ENTER. Lo que vamos a hacer ahora es realizar una entrada matricial. Para ello debemos pulsar las teclas Ctrl+Shift+Enter. Al hacerlo observará que la fórmula aparece encerrada por unas llaves { } quedando de la siguiente manera:
{=O(B2=facturas)}
Estas llaves no puede introducirlas manualmente porque entonces excel no lo reconocerá como una entrada matricial y no funcionará. La entrada matricial nos permite, en este caso, comprobar un valor, B2, contra todo un rango, D3:D22, rango al que hemos llamado facturas. Esta fórmula nos devolverá dos valores posibles: VERDADERO ó FALSO. Ya hemos conseguido que nos indique la existencia o no del número de factura solicitado. Sigamos con nuestro modelo:
3. Seleccionamos el rango facturas y vamos al menú Formato/Formato condicional y ponemos valor de la celda igual a y en el recuadro de la derecha hacemos clic en B2, que aparecerá como $B$2 (y así debemos dejarlo, con los dólares).
4. Pulsamos el botón Formato y seleccionamos, por ejemplo, trama (sombreado) de color naranja y pulsamos Aceptar. De esta manera cuando escribamos un número de factura que exista en B2 la celda que contenga dicho número se coloreará de naranja, haciendo muy sencilla su localización.
5. Nos situamos en B2 y vamos al menú Formato/Formato condicional y donde pone valor de la celda lo cambiamos por fórmula. En el recuadro de la derecha escribimos:
=SI(B4=FALSO;1;0)
6. Pulsamos el botón Formato y en la pestaña Fuentes seleccionamos Tachado dentro del apartado Estilo. Además vamos a la pestaña Tramas y seleccionamos, por ejemplo, el color naranja "chillón". Pulsamos Aceptar. 
1. Seleccionamos el rango donde vayamos a introducir los datos, en nuestro caso A4:A20 y vamos al menú Datos/Validación de datos.
Por otro lado nos interesa que en C4 y siguientes filas nos indique automáticamente en qué delegación se ha realizado la venta (utilizaremos esta información más adelante para generar un informe resumen por delegación). Para ello elaboramos la tabla que se muestra en la figura en el rango E3:F9. 
4. Seleccionamos el rango E4:F9 y le damos el nombre de ciudades.
5. Para resolver este problema además de la función BUSCARV necesitaremos otra función que nos permita extraer del código los dos primeros dígitos. Dicha función será IZQUIERDA. Si escribiéramos =IZQUIERDA(A4;2) obtendríamos los dos primeros caracteres de la celda A4, que es precisamente lo que necesitamos para realizar después la búsqueda en nuestra tabla de ciudades. Así pues, nos situamos en la celda C4 y escribimos la siguiente fórmula:
=BUSCARV(IZQUIERDA(A4;2);Ciudades;2;Falso) De esta manera obtendremos la ciudad a la que hace referencia el código. Si queremos mejorar nuestra fórmula para que sólo aparezca la ciudad en caso de que introduzcamos un código en la columna A y un importe en la columna B deberemos añadir dos funciones lógicas, a saber, SI y O:
=SI(O(A4="";B4="");"";BUSCARV(IZQUIERDA(A4;2);Ciudades;2;Falso))

Por defecto nos muestra seleccionadas las casillas de verificación de Fila Superior y Columna izquierda. Esto es debido a que se ha encontrado nombres dentro del rango que hemos seleccionados tanto en la fila superior como en la columna izquierda de nuestra selección. Pulsamos aceptar. A partir de este momento podemos utilizar este tipo de entradas para encontrar la información requerida: =orense may_09 y nos devolverá el valor 10.300€ (fíjese que entre el nombre orense y may_09 debe dejar un espacio).
Esta es una manera sencilla pero requiere que escribamos cada vez el nombre de la delegación y el del mes para obtener la cifra de ventas deseada. A continuación veremos una forma más ágil de solucionar el problema:
1. En el rango G10:G14 escribimos la lista de delegaciones tal y como excel las ha nombrado. Dichos nombres los podemos consultar en el menú Insertar/Nombre/Definir. También podemos proceder directamente a pegar en un rango de excel los distintos nombres creados yendo a Insertar/Nombre/Pegar. En el rango I10:I22 escribimos los nombres referentes a los meses.
