martes, 30 de noviembre de 2010

Destacar toda una Fila de una Tabla de Datos


"Tengo una tabla con datos históricos de ventas por meses. La utilizo habitualmente en presentaciones y me ayudaría mucho el poder seleccionar un año y que se destacara la información de dicho ejercicio".

No problema. La solución es muy sencilla (cosa que se agradece a estas alturas del año) haciendo uso del Formato Condicional. Partimos del siguiente ejemplo:


Introducimos la entrada de datos como sigue:


Nos situamos en la celda C2 y vamos al menú Datos/Validación y seleccionamos Permitir/Lista. En el apartado Origen seleccionamos el rango B11:B19 y pulsamos Aceptar. De esta manera ya tenemos nuestra lista desplegable con los años representados en la tabla:


A continuación seleccionamos todos los datos de la tabla, es decir, el rango C11:N19 (los rótulos no). Vamos al menú Formato/Formato condicional y lo configuramos de la siguiente manera:

En la Condición 1 seleccionamos la opción Fórmula y en el cuadro de la derecha escribimos la fórmula:

=$B11=$C$2

Pulsamos el botón Formato y seleccionamos el formato concreto que queremos que adopte toda la fila a destacar (por ejemplo trama amarilla y números en negrita) y pulsamos Aceptar:


¡Objetivo conseguido! Cuando seleccionemos un año en la celda C2 toda la fila de la tabla correspondiente a dicho año se formateará como le hayamos indicado:


domingo, 21 de noviembre de 2010

Búsqueda con Columna Variable (3 soluciones)


"Tengo una tabla con información de empleados y me gustaría tener como variable una celda donde indicarle la información requerida para que me devuelva la información existente en la intersección entre el empleado que aparece en la primera columna de la tabla y una columna variable".

Aunque una posible solución ya la tenéis en el post "Búsqueda con Tablas e Indicador de Columna variable", y dado que me han llegado varias consultas muy similares, vamos a ampliar dicho artículo planteando tres soluciones distintas con las siguientes funciones: doble BUSCARV, BUSCARV e INDIRECTO y, finalmente, INDICE y COINCIDIR. Partimos del siguiente ejemplo:


Planteamos la siguiente entrada de datos:


En la celda C2 seleccionaremos el empleado del que queremos la información y en la celda C3 la información concreta que necesitamos. Empezamos creando con la herramienta de Validación de Datos las listas de entrada de datos. Para ello nos situamos en la celda C2 y vamos a l menú Datos/Validación y lo formulamos como se muestra en la imagen:


Pulsamos Aceptar y ya tendremos nuestra lista desplegable en C2. Para hacer lo mismo en C3 debemos dar algún paso intermedio. El motivo es que el contenido de la lista de C3 serán los rótulos de los campos de la tabla. Dicho rótulos se encuentran en disposición horizontal y la herramienta de validación no nos permite que el origen de la lista tenga dicha disposición. Lo único que tenemos que hacer es seleccionar el rango B10:F10 y pulsar Copiar. A continuación nos situamos en la celda H3 y vamos a Edición/Pegado Especial y seleccionamos Transponer, y pulsamos Aceptar. En la columna I añadimos la numeración que se muestra en la imagen y que después veremos su uso:


Ahora sí podemos situarnos en C3 y proceder a genera la lista desplegable (Datos/Validación):



1. Solución con Doble BUSCARV
Seleccionamos el rango B11:F20 y vamos al cuadro de nombres (a la izquierda de la barra de fórmulas). Hacemos un clic y escribimos el nombre Datos y pulsamos Enter. A continuación hacemos lo mismo con el rango H3:I7 y le damos el nombre, por ejemplo, ncol. Esta tabla no es otra cosa que el nombre de los distintos campos de la tabla y el número de columna que representa dentro de dicha tabla (que hemos denominado Datos). Nos situamos en la celda B5 y escribimos la siguiente fórmula:

=BUSCARV(C2;datos;BUSCARV(C3;ncol;2;FALSO);FALSO)

Lo que estamos haciendo es anidar un BUSCARV en el argumento número de columna de dicha función. Como se puede ver en la siguiente imagen, seleccionamos en C2 el empleado que queremos consultar (empleado7) y después en C3 seleccionamos de la lista la información que necesitamos:



2. Solución con BUSCARV e INDIRECTO
Podemos obtener el mismo resultado anidando la función INDIRECTO en el argumento número de columna de la función BUSCARV. Para ello seleccionamos el rango H3:I7 y vamos al menú Insertar/Nombre/Crear. Aparecerá la ventana que se muestra en la siguiente imagen y en donde debemos seleccionar (ya aparece seleccionada por defecto) la opción columna izquierda:


Pulsamos Aceptar. A partir de este momento en el cuadro de nombres aparecerán todos los nombres de los rótulos de la tabla de datos. Al pulsar cualquiera de estos nombres nos llevará al número de columna que representan. Y esto es lo que precisamente nos ayudará con la función INDIRECTO. Nos situamos en la celda D5 y escribimos la siguiente fórmula:

=BUSCARV(C2;datos;INDIRECTO(C3);FALSO)



3. Solución con INDICE y COINCIDIR
La función INDICE nos devuelve la intersección de una fila y columna de una matriz. Nuestra matriz es la tabla que hemos denominado Datos. El número de fila que queremos dependerá del empleado que seleccionemos en C2. Para calcular a qué fila se refiere introducimos la función COINCIDIR. El número de columna dependerá de la información solicitada en C3. Utilizamos también la función COINCIDIR para obtener el número de columna. La fórmula que debemos escribir en F5 es:

=INDICE(datos;COINCIDIR(C2;B11:B20;0);COINCIDIR(C3;B10:F10;0))


miércoles, 27 de octubre de 2010

Problemas en el Cálculo del Valor Actual Neto


"Estoy intentando realizar el cálculo del Valor Actual Neto (VAN) de una inversión y obtengo un resultado incorrecto".

El ejemplo que nos envía es el siguiente:


La función VAN en excel presenta diversas peculiaridades:

a) El nombre de la función en excel es VNA, y no VAN.
b) El desembolso inicial o inversión no debe introducirse dentro de la función, sino fuera de ésta sumando.
c) El rango de flujos de caja considerado en la función no debe contener ninguna celda en blanco. Si, como es el caso, esperamos un flujo igual a cero en algún periodo del proyecto debemos escribir cero como valor en dicho periodo. Este es precisamente el error que nos encontramos en este caso.

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

=VNA(C3;C6:C11)+C5

El primer argumento hace referencia a la tasa de descuento. En nuestro ejemplo se trata del Tipo de Interés Nominal Anual (TIN) que se encuentra en la celda C3.
El segundo argumento es el rango donde se encuentran los flujos de caja (sin incluir el desembolso inicial, como ya he indicado). En nuestro caso el rango C6:C11.
Finalmente, fuera de la función VNA sumamos (ya que se encuentra con signo negativo) el desembolso inicial.

La fórmula está perfectamente planteada. El problema en este caso es que en los años 3 y 4, en los que esperamos un flujo de caja igual a cero, hemos dejado las celdas en blanco. Con este planteamiento excel interpreta que el flujo del año 3 (que se encuentra en blanco) es el de la siguiente celda del rango que contenga un valor, es decir, el del año 5 en nuestro ejemplo. En el año 4 interpreta que su valor es el del año 6. Evidentemente esto genera un error a la hora de actualizar los valores. La solución es tan sencilla como introducir los valores cero en las celdas que hemos dejado en blanco, tal y como se muestra a continuación:


sábado, 16 de octubre de 2010

Cálculo de la Frecuencia de la Moda


"En un post de tu blog , explicas cómo hallar el valor más repetido en un rango (la moda). Lo que yo necesito es, además de saber dicho valor, saber cuántas veces se repite".

El post al que te refieres es Cálculo del Valor más Frecuente (MODA) de un Rango. Para dar solución a tu pregunta utilizaremos las funciones CONTAR.SI y MODA. Partimos del siguiente ejemplo que muestra las valoraciones obtenidas en las encuestas realizadas a cuatro tiendas:


Nos situamos en la celda B17 y escribimos la siguiente fórmula:

=CONTAR.SI(B4:B15;MODA(B4:B15))

De esta manera lo que estamos haciendo es utilizar como criterio para contar el valor de la moda, es decir, que cuente cuántas veces se repite el valor de la moda en el rango B4:B15 . En nuestro ejemplo sólo nos quedaría copiar la fórmula introducida en B17 en el rango C17:E17 .

Si además queremos tener disponible el valor en si de la Moda podemos escribir en B19 la fórmula:

=MODA(B4:B15) y copiar esta fórmula en el rango C19:E19


Como se puede comprobar, el valor de la Moda de las encuestas de la Tienda 1 es 2 y dicho valor se repite 4 veces.

jueves, 9 de septiembre de 2010

Cálculo de Número de Días


"Necesito calcular, cada día, cuántos días llevan transcurridos desde el 1 de enero del año en curso y los días que faltan para concluir el año ¿hay alguna función que realice estos cálculos?"

No existe ninguna función directa que realice estos cálculos, pero la solución es bien sencilla utilizando las funciones FECHA y AÑO. Supongamos que deseamos contar con la siguiente información actualizada diariamente:


1. la fórmula de B2 es muy sencilla:

=HOY()

2. La fórmula de B3 es igualmente sencilla utilizando la función NUM.DE.SEMANA Esta función tiene tan sólo dos argumentos NUM.DE.SEMANA(Num_de_serie;Tipo). El primer argumento se refiere a la fecha de la que queremos saber el número de semana del año que le corresponde. El segundo argumento sirve para determinar el tipo de semana, esto es, si la semana comienza el domingo, en cuyo caso escribiremos el valor 1, o si queremos considerar semanas cuyo primer día sea el lunes, en cuyo caso el valor de este argumento será 2. Así las cosas, la fórmula resultante será:

=NUM.DE.SEMANA(B2;2)

3. Para calcular los días transcurridos desde el 1 de enero del año en curso hasta la fecha actual, utilizamos la siguiente fórmula:

=B2-FECHA(AÑO(B2);1;1) Si queremos añadir un texto descriptivo al resultado podemos utilizar el operador & (CONCATENAR):
=B2-FECHA(AÑO(B2);1;1)&" días desde principio del año"

4. Finalmente para saber cuántos días restan para concluir el año en curso:
=FECHA(AÑO(B2);12;31)-B2 Añadiendo un texto descriptivo sería:
=FECHA(AÑO(B2);12;31)-B2&" días para terminar el año"



Si queremos mantener esta información siempre visible en la hoja, podemos utilizar la opción de Inmovilizar Paneles. Para ello nos situamos en la celda A7 y vamos al menú Ventana/Inmovilizar Paneles. Aparecerá un borde superior en toda la fila 7 quedando inmovilizadas las celdas que se encuentren por encima de dicha linea.