viernes, 10 de diciembre de 2010

% sobre Totales en Tablas Dinámicas

"He leído tu post titulado Campos Calculados en Tablas Dinámicas y me gustaría saber que debo hacer para calcular el peso de cada columna sobre el total general"

El ejemplo de partida de dicho post es la siguiente tabla dinámica:


Como se puede ver se trata de una tabla dinámica con el detalle por zonas de los ingresos, los costes directos y el margen bruto. Lo que queremos conseguir es que esta información nos la muestre como porcentajes sobre los totales de cada columna para ver "el peso" de cada zona sobre el total.

Si lo que queremos es simplemente sustituir las cifras por porcentajes la operación es muy sencilla. A saber:

Nos situamos en la celda B4 y pulsamos el botón derecho del ratón. Aparecerá el siguiente menú emergente, en el que seleccionamos la opción Configuración de campo:


En la ventana que se abre pulsamos el botón Opciones:


Abrimos Mostrar datos como y seleccionamos la opción % del total:


Pulsamos Aceptar y objetivo conseguido (obviamente tendremos que repetir la misma operación para las otras dos columnas):



Si lo que queremos es que aparezcan ambos datos (la cifra y el porcentaje que representa sobre el total) sólo tendremos que duplicar las tres columnas que tenemos (arrastrando los campos a la zona de datos de la tabla dinámica) y posteriormente seguir los pasos que acabamos de explicar. Vamos a verlo con la columna de Ingresos Zona:

Tabla inicial:


Campos de la tabla dinámica:


"Arrastramos" el campo Ingresos dentro de la tabla dinámica en la zona de Datos y soltamos. Aparecerá, al final de la tabla, nuevamente la suma de ingresos por zona:


Aplicamos en esta columna los pasos explicados para calcular el porcentaje sobre el total (podemos aprovechar para cambiar el nombre de este campo dentro del menú Configuración de campo/Nombre) :


Ya sólo nos queda colocar esta columna a la derecha de Ingresos Zona. Para ello nos situamos dentro de la columna que hemos denominado % Ingr/Total y pulsamos el botón derecho del ratón. Utilizamos la opción Ordenar:


El resultado será el esperado:

jueves, 2 de diciembre de 2010

Mostrar/Ocultar Información con Formato Condicional


"Me gustaría tener una casilla de verificación que al marcarla apareciera una tabla con un análisis de sensibilidad de una cuenta de resultados y que al desactivar dicha casilla de verificación desapareciera la tabla (incluidos los bordes)".

Vamos a utilizar el siguiente ejemplo:


Tenemos una entrada de datos para el precio de un producto y otra entrada para la cantidad. Debajo hemos colocado una casilla de verificación con el texto "ver análisis de sensibilidad". Para crear esta casilla de verificación vamos al menú Ver/barras de herramientas/Formulario y, en la nueva barra que aparece, hacemos clic encima de la casilla de verificación:


La dibujamos en la hoja, nos ponemos encima de la casilla dibujada y hacemos clic en el botón derecho del ratón. Se abrirá un menú emergente del que seleccionamos la opción Formato de control. Se abrirá una ventana y en la pestaña Control en Valor seleccionamos Sin Activar y en Vincular con la celda hacemos clic en la celda G2. Pulsamos Aceptar. A partir de este momento cada clic en la casilla de verificación se convertirá en un VERDADERO o FALSO en la celda G2.

Lo que queremos conseguir es lo que se muestra en las dos siguientes imágenes:



1. Seleccionamos el rango E3:F11 y dibujamos los bordes de la tabla.
2. En el rango E3:E11 introducimos los precios que queremos evaluar en el análisis de sensibilidad.
3. En la celda F2 introducimos la fórmula =C3*C4
4. Seleccionamos el rango E2:F11 y vamos al menú Datos/Tabla.
5. En la ventana que se abre en Celda de entrada columna seleccionamos la celda C3 y pulsamos Aceptar.


El resultado obtenido será el siguiente:


6. Ocultamos la fila 2 para que no se vea la fórmula de enlace ni el resultado de la casilla de verificación (el verdadero o falso).
7. Seleccionamos el rango E3:F11 y vamos al menú Formato/Formato condicional.
8. En Condición 1 seleccionamos Fórmula y en el cuadro de la derecha escribimos lo siguiente =$G$2=FALSO
9. Pulsamos el botón Formato y en la pestaña Fuente optamos por el color de fuente blanco. En la pestaña Bordes pulsamos la opción Ninguno:


10. Pulsamos Aceptar y objetivo conseguido.

miércoles, 1 de diciembre de 2010

Resaltar un Dato Concreto de una Tabla

"Aprovechando el ejemplo utilizado en el anterior artículo ( Destacar Toda una Fila de una Tabla de Datos) me gustaría saber cómo destacar un dato concreto de dicha tabla, es decir, el cruce entre una fila y una columna (un año y un mes concreto en el ejemplo)".

La solución es muy parecida a la mostrada en el anterior post. Tendremos que incluir una nueva entrada de datos que haga referencia al mes y utilizar la función lógica Y dentro del Formato Condicional. La tabla de la que partimos es la misma que ya utilizamos en el anterior artículo, a saber:


Para destacar un sólo dato necesitamos incluir en el modelo una nueva entrada de datos que será el mes. Para ello introducimos el rótulo en E2 como se ve en la imagen y nos situamos en la celda F2 y vamos al menú Datos/Validación/Permitir/Lista y en Origen seleccionamos el rango C10:N10 y pulsamos Aceptar.


Ahora ya podemos indicar el año y el mes que queremos destacar. A continuación seleccionamos el rango C11:N19 y vamos al menú Formato/Formato condicional. En Condición 1seleccionamos Fórmula y en el cuadro de la derecha escribimos la siguiente:

=Y($B11=$C$2;C$10=$F$2)

Pulsamos el botón Formato y elegimos, por ejemplo, trama amarilla y número en negrita y pulsamos Aceptar. El resultado será el siguiente:


En realidad sólo se destacará el dato dentro de la tabla. Para que también destaque el año y el mes debemos hacer lo siguiente:

Para el mes:
1. Seleccionamos el rango C10:N10
2. Vamos al menú Formato/Formato condicional y seleccionamos Fórmula.
3. En el cuadro de la derecha escribimos la fórmula: =C$10=$F$2
4. Pulsamos el botón Formato y elegimos los colores de trama y de fuente
5. Pulsamos Aceptar.

Para el año:
1. Seleccionamos el rango B11:B19
2. Vamos al menú Formato/Formato condicional y seleccionamos Fórmula.
3. En el cuadro de la derecha escribimos la fórmula: =$B11=$C$2
4. Pulsamos el botón Formato y elegimos los colores de trama y de fuente
5. Pulsamos Aceptar.

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))