sábado, 12 de junio de 2010

Búsquedas de Derecha a Izquierda



"Tengo una tabla con diversas columnas, cuyo orden no puedo modificar, y necesito realizar una búsqueda en la segunda columna y que me devuelva lo que contiene la primera columna. No puedo utilizar BUSCARV porque esta función realiza la búsqueda de izquierda a derecha y yo necesito lo contrario".

Para solucionar este problema utilizaremos las funciones INDICE y COINCIDIR. Partimos del siguiente ejemplo:


En la tabla de la figura nos encontramos con que el código de empleado se encuentra en la columna C. Lo que queremos es introducir uno de estos códigos en la celda C2 y que en C4 nos aparezca el nombre del empleado en cuestión (búsqueda de derecha a izquierda). Para ello seguimos los siguientes pasos:

1. Nos situamos en C2 y vamos al menú Datos/Validación. Seleccionamos Permitir Lista y en Origen marcamos el rango C9:C16, que es donde tenemos los códigos que queremos que aparezcan en la lista. Pulsamos Aceptar.


2. Nos situamos en la celda C4 y escribimos la fórmula:

=INDICE(B9:B16;COINCIDIR(C2;C9:C16;0))


La parte de la fórmula COINCIDIR(C2;C9:C16;0) nos proporciona el número de fila en el que se encuentra el contenido de C2 dentro del rango C9:C16. Si seleccionamos el código G17 en la celda C2 y probamos a introducir este "trozo" de fórmula en una celda, por ejemplo en C6, veremos que nos proporcionará el resultado 7. Esto es debido a que el código G17 se encuentra en la fila 7 del rango C9:C16. Incorporando este resultado como segundo argumento de la función INDICE ya obtendremos la solución deseada (búsqueda de derecha a izquierda):


domingo, 6 de junio de 2010

Consolidar Informes


"Habitualmente recibo resúmenes de ventas trimestrales de más de 12 comerciales distintos ¿Existe alguna manera de que excel "junte" toda la información en una tabla sin que yo tenga que andar copiando/pegando?"

Sí, existe: la herramienta Consolidar. Partamos como siempre de un ejemplo. Supongamos que tenemos 4 comerciales, a saber, Carlos, Javier, José y Santiago, y que cada uno nos remite un archivo de excel donde indica su cifra de ventas por trimestres de los distintos productos que componen su cartera. En las siguientes imágenes vemos esta información:





Queremos consolidar toda esta información en un documento que denominaremos TOTALES. Para ello debemos seguir los siguientes pasos:

1. Desde el archivo TOTALES vamos al menú Datos/Consolidar. Aparecerá la siguiente ventana:


2. Elegimos la función que queremos utilizar en nuestra consolidación (Suma, Cuenta, Promedio, etc). En nuestro caso utilizaremos la SUMA.

3. En el apartado Referencia debemos seleccionar el primero de los rangos que nos interesa. Para ello pulsamos el icono con la flechita roja, nos vamos a la hoja llamada Ventas Carlos y seleccionamos el rango A6:E12 . En pantalla aparecerá la ruta completa:


4. Pulsamos Enter y veremos lo siguiente:


5. Pulsamos el botón Agregar. Una vez hecho esto la referencia aparecerá en el cuadro Todas las referencias.

6. Volvemos a pulsar el icono para seleccionar un nuevo rango en el campo Referencia. En esta ocasión nos dirigimos a la hoja llamada Ventas Javier y seleccionamos el rango A5:E8 . Al igual que en el caso anterior excel mostrará la ruta completa. Pulsamos Enter y después el botón Agregar. A estas alturas podremos ver en pantalla lo siguiente:


7. Repetimos los pasos anteriores para agregar las hojas de venta de José y de Santi:


8. Mantenemos marcadas las opciones de Usar rótulos en / Fila superior y Columna izquierda. Esto es debido a que tenemos rótulos en la fila superior (los trimestres) y rótulos en la columna izquierda (los productos). Finalmente decidimos si dejamos marcada la opción Crear vínculos con los datos de origen. Si quitamos la marca excel no guardará los vínculos y se limitará a realizar la consolidación "pegando valores". Por el contrario, si mantenemos marcada esta opción, excel generará un esquema con la información de dónde proviene cada dato y además mantendremos vinculada la hoja TOTALES con el resto de las hojas, de tal manera que si modificamos cualquier dato en dichas hojas (dentro de los rangos considerados para la consolidación) se actualizará automáticamente la hoja TOTALES. Pulse el botón Aceptar y el resultado obtenido será este:


Como puede comprobar excel ha generado un esquema con la información consolidada. Pulse el nivel 2 de información y obtendrá el máximo detalle:


miércoles, 2 de junio de 2010

Cálculo de la Edad en Años


"Partiendo de un listado con la fecha de nacimiento del personal necesito calcular su edad en años. Haciendo uso de la función AÑO no obtengo el resultado requerido ya que no tiene en cuenta fechas exactas".

Efectivamente, si necesitamos calcular la edad en años de un individuo, la función AÑO no nos proporcionará, por diferencia entre fecha de nacimiento y la fecha actual, el resultado deseado ya que no considera ni meses ni días. Por ejemplo, si tomamos como base el día de hoy, 2 de junio de 2010, y queremos saber cuántos años tiene alguien que nació el 28 de noviembre de 1969, la fórmula =AÑO(A1)-AÑO(A2) -suponiendo que en A1 tenemos la fecha actual y en A2 la fecha de nacimiento- nos devolverá un resultado de 41 años, que es la diferencia entre 2010 y1969. Es decir, que la operación que realiza la fórmula mostrada es 2010-1969=41. Pero evidentemente esta no es la edad del individuo en cuestión, ya que a 2 de junio todavía no habrá cumplido los 41.

Para realizar el cálculo correctamente utilizaremos la función FRAC.AÑO. Supongamos la siguiente lista:


Nos situamos en la celda D4 y escribimos la fórmula:

=FRAC.AÑO(C4;HOY();1)

La función FRAC.AÑO calcula la fracción de año que representa el número de días enteros entre una fecha inicial y una fecha final. Su sintaxis es FRAC.AÑO(Fecha_inicial;Fecha_final;Base). En nuestro ejemplo utilizamos como fecha inicial la fecha de nacimiento del empleado y como fecha final la generada por la función HOY(), es decir, el día actual. Una vez copiada la fórmula de D4 en el rango D5:D13 el resultado es el siguiente:


Para evitar los números decimales podemos utilizar la función TRUNCAR. En la celda E4 escribimos:

=TRUNCAR(D4) y copiamos hasta E13:


Evidentemente podemos resolver todo el problema con una sola fórmula. En F4 escribimos:

=TRUNCAR(FRAC.AÑO(C4;HOY();1))