Do not speak Spanish? Read this post in English.

Martes, 31 d enero d 2012.

Crear dashboards con Excel

Algo que me preguntan bastante ultimamente -no se por qué será :P- es cómo trabajar esos bonitos y complejos Dashboards en Excel de los que algunas empresas disponen -por qué será-. El problema está en que mucha gente piensa que hay algo de magia detrás de todo esto, una función secreta que usamos en analítica del estilo "crear Dashboard" y que solo hace falta descubrir ese botón para disfrutar de estos cuadros llenos de gráficos y colores.

Y es que más o menos, todos creemos que sabemos manejar Excel, pero son muy pocos los que han tenido que masticarlo lo suficiente como para sacar sus verdaderas posibilidades a la que es, sin duda, la mejor herramienta de la Suite Office de Microsoft. En este artículo veremos un pequeño tutorial sobre como empezar a dar tus primeros pasos en la creación de paneles de control serios a la par que atractivos con Excel.

Repasaremos la utilidad real de Excel, cómo importar datos, cómo usar las fórmulas de resumen más comunes, como aplicar tablas dinámicas y veremos pequeños trucos de diseño. Al final crearemos 2 Dashboards sencillos pero que deberían bastaros para poder fabricar vuestros propios informes de negocio:

Bueno, empezamos ya con la explicación tutorial. Aunque antes de que sigas, avisarte de que este documento es bastante largo y tiene muchos pasos y detalles como para sacarle partido si solo dispones de unos minutos. Quizás prefieras guardar este link para poder abordar el tutorial cuando realmente dispongas de tiempo. ¡es un aviso! También es posible que quieras saltarte algunos capítulos si ya tienes su contenido dominado...

Tabla de Contenidos

1. Cuando usar Excel
2. Definiendo el Entorno
3. Las fuentes de datos
4. Hoja de BBDD interna
5. Hojas Resumen
6. Hojas Informe
7. Las Bases de Excel
8. Fórmulas más comunes
9. Tablas dinámicas
10. Gráficos Dinámicos y Gráficos a Medida
11. Segmentos en Tablas dinámicas
12. Diseñando una página de Dashboard
13. Dashboards Estáticos

Cuando usar Excel

Para este tipo de soluciones, la verdad es que, sabiendo programar yo soy más amigo de soluciones estilo Zoho Reports o desarrollo propio, pero existen ventajas muy claras para trabajar con Excel en lugar de con programación:

  • La más obvia, no necesitas saber programar (sin duda ayuda, pero no es obligatorio)
  • Tu trabajo queda en un único archivo que fabricas en cualquier y se mueve con este, pudiendo ser enviado y trasladado con todo su potencial.
  • Otras personas, podrán trabajar con las fuentes de datos que se manejen ahí y realmente ir mejorando el Dashboard poco a poco con el tiempo.
  • De la parte gráfica se encarga Excel y no pierdes el tiempo con maquetación de gráficos.

En conclusión, son archivos muy útiles para manejar en el interior de un negocio, con personas involucradas en el mismo.

Como contras tendríamos:

  • Al dar acceso a tanta gente, estos archivos son inestables, si le sumamos el poco respeto que tiene la gente que no lo maneja bien por Excel, tenemos que cualquiera puede romperlos en su intento pormejorarlos
  • Necesitas Excel para poder verlos, incluso algunos lectores de Éxcel no tienen todas sus funcionalidades.
  • No se puede trabajar con grandisimas cantidades de datos, Excel es limitado en numero de filas y tu ordenador te limitará en la cantidad de proceso.
  • Sin duda, y aunque siempre podemos recurrir a progamar dentro de un Excel, la capacidad de proceso de las formulas de Excel no llega ni por asomo a lo que puede hacerse con programación. Sencillamente hay cosas que con Excel "a pelo", no pueden hacerse
  • Si te encuentras con gente desordenada, editar un Excel más o menos trabajado puede ser un autentico infierno (bueno, vale, esto también pasa con la programación)

Entendido todo esto, pongamos que si que vamos a realizar un panel de control mediante esta fantástica herramienta. Genial! Pues empecemos...

Nota:Lo que sigue es una forma muy personal de trabajar; si bien cada uno es libre de organizarse de la forma que quiera. Además de lo que es el propio "cómo se hace" voy a ir dando pautas que nos ayuden a ordenar el trabajo final que hacemos. Debemos entender que estas pautas concretas son lo de menos, lo que si que es importante es que cada uno, o cada empresa, escoja un patron por el que trabajar que le ayude a identificar rápidamente donde entrar a cambiar las cosas en un Excel complejo. De otra forma no aprovecharemos nunca un trabajo de hace varios meses...

Creación de Informes y Dashboards en Excel: Definiendo el entorno.

Norma: Usemos siempre 1 hoja de Excel para cada cosa.

Lo primero que tenemos que entender es cual es la mejor forma de organizar un Excel. Mucha gente cuando se lanza a esta aventura intenta, por los medios que sea, realizar todo su trabajo en la misma hoja de Excel y eso resulta a la larga muy incómodo de mantener. Excel nos brinda la posibilidad de crear varias hojas en un solo archivo (o incluso ligar datos entre varios archivos, pero eso no vamos a verlo aquí) lo que significa que podemos -o más bien debemos- separar nuestros contenidos en varias hojas para facilitar el trabajo:

Así que lo primero es diseñar para que vamos a usar las hojas de Excel, yo os propongo que en este ejercicio las usemos para 4 cosas distintas marcando en el nombre cada una de esas hojas cual es su función:

  • 1.- Hojas con tablas de fuentes de datos. Marcadas con el nombre "datos.Nombre de la hoja".
  • 2.- Hojas con referencia, equivalencias y traducciones de datos. Marcadas con el nombre "bbdd.Nombre de la hoja". En referencia a que actuan como base de datos interna del archivo
  • 3.- Hojas con resumenes o procesos de datos. Marcadas con el nombre "resumen.Nombre del resumen".
  • 4.- Hojas gráficas con informes creados a partir de las otras. Marcadas con el nombre "informe.Nombre del informe".

Así mismo, no está de más que nos acostumbremos a usar un orden en el tipo de hojas según la importancia que tengan: por ejemplo, que las primeras hojas sean siempre informes, luego vengan los resúmenes, luego los datos y por ultimo las bases de datos. De esta forma quien mire el éxcel irá profundizando en hojas solo a medida que lo necesite.

Otro tema es el nombre de las hojas en sí. No las dejemos como "hoja1", "hoja2" o tendremos que entrar en todas las hojas para saber lo que son. Usemos un nombre descriptivo. Además a ser posible evitemos nuestros espacios, así nuestras formulas serán mucho más legibles al no necesitar comillas al referenciar una hoja. Un truco sencillo es reemplazar espacios por guion bajo (_).

Es posible, que para algunos tipos de informes requieras otro tipo de hojas, o que prefieras diferenciar distintos tipos de datos, resumenes e informes. Lo mismo da, simplemente intenta ser ordenado y clasificar lo máximo posible tus nombres de hojas de Excel. Sino, a la larga te volverás loco para entender que es lo que hiciste hace un año.

Creación de Informes y Dashboards en Excel: Las fuentes de datos

Bien, empecemos a trabajar. Lo primero que necesitaremos para hacer un informe son los datos de los que surje este informe. Es obvio, pero no por ello menos importante. No podremos hacer ningún informe si nos faltan datos básicos de los que sacar conclusiones. Así pues necesitamos crear una Hoja de DATOS para cada fuente de datos que tenegamos.

Para ello, miramos lo que nos ofrece la herramienta y vemos que Excel nos brinda, en su sección de datos, 4 tipos de importaciones distintas:

Importando cualquier fuente de datos en nuestras hojas

Una vez hayamos escogido la fuente de datos -sea cual sea- Se nos solicitará a partir de que celda deseamos importarla. Lo suyo, como decíamos sería siempre crear una hoja completa para cada fuente de datos y escoger siempre la casilla A1 (por lo de ser ordenados y encontrar las cosas rápido).

Una vez importados no hemos terminado. Deberemos definirle la actualización de los datos, para que Excel los extraiga el solo cada cierto tiempo. Esto es una gran ventaja que no muchos usan, nos permite no solo trabajar con los datos en el momento sino reaprovechar ese mismo Excel en futuras ocasiones:

Clicamos con el botón derecho en la casilla A1 de esa hoja de datos -la casilla en la que hemos creado la importación- y en entramos en "Propiedades del Rango de Datos". Ahí declaramos como queremos que sea esta actualización. Si sabemos que los datos siempre tendrán el mismo formato, podemos establecer cada cuantos minutos queremos que se actualicen -cuidado ahí con no empezar a provocar procesos muy costosos a nuestro ordenador o al servidor del que sacamos los datos-. Si no nos fiamos de la fuente de datos y no queremos sorpresas nos interesará desmarcar la actualización en segundo plano e ir dandole cada vez que queramos a actualizar manualmente.

Importando "Desde Access"...

Nos permitirá sacar los datos de una BBDD en Access. Poco útil salvo que acostumbremos a trabajar realmente con esta herramienta -que yo personalmente no os aconsejaría nunca-. Si tenemos esa suerte -o mala suerte, según se mire- la importación de datos es sencilla y creándola podremos actualizar los datos directamente desde ese archivo, lo que siempre es una ventaja.

Los detalles de la importación son muy simples, creamos una consulta en Access y la importamos tal cual a Excel seleccionándola de un listado.

Importando "Desde Web"...

Nos permitirá importar tablas HTML desde una URL que le indiquemos. Sin duda se trata de un puente de conexión interesante cuando tenemos que ir sacando datos de cualquier entorno web e importarlo directamente en Excel.

Esta opción resulta util en 2 casos:

a. Cuando encontramos publicada y actualizada una tabla en alguna página de internet, podemos importarla directamente y ir mirando sus actualizaciones para actualizar nuestros datos directamente.

b. Cuando buscamos una forma rápida de importar nuestros datos internos (en nuestras propias BBDD) en el Excel, nos bastará con pedir que una URL concreta los muestre en formato de tabla HTML para importarlos y actualizarlos en nuestro Excel. Cuidado con esta forma puesto que si nuestros programadores no tienen cuidado y no ponen algo de seguridad (por Ip, por contraseñas, etc.) en la petición podríamos hacer publicos datos internos de la empresa.

Para realizar esta operación se nos abrirá una especie de navegador web simplificado en el que podremos navegar hasta encontrar nuestra tabla. Entonces la seleccionaremos y le daremos a importar.

Una vez importado recordemos entrar a configurar la actualización de datos.

Importando desde "Desde Texto"...

Esta seguramente la opción que más veces habremos usado. No tiene mucho misterio, elegimos un archivo concreto de nuestro ordenador en un formato de texto plano (normalmente .txt o .csv) y definimos como importarlo. Aquí todo el problema suele estar en que normalmente estos archivos se delimitan por comas (",") o punto y coma (";") y por defecto Excel intentará usar el tablulador como indicación de separación... Pero bueno, con cambiarlo ya está bien. También es una buena costumbre pedir a nuestros programadores que permitan exportar "CSV para Excel" separando por tabulador en lugar de por punto y coma (acaba siendo más cómodo).

En este caso debemos saber que también podremos definir la actualización automática de los datos. La mayor parte de la gente piensa que una vez han importado los datos Excel no guarda registro de como hizo esa importación, pero esto no es así.

Excel guardará la ruta del archivo que hemos importado y la forma que hemos usado para interpretarlo. Así que podemos pedirle que lo vuelva a importar cada cierto tiempo o sencillamente decirle que olvide de donde ha sacado esos datos. En esta importación automática cabe destacar que si no desmarcamos la casilla "Solicitar nombre de archivo al actualizar" Excel nos volverá a abrir el navegador de archivos cada vez (lo cual es bastante molesto si nos fiamos de esos datos).

Esta opción de actualización automática puede tener mucho sentido cuando cargamos archivos en carpetas en red que más gente puede ir actualizando (red de la intranet, Ftps, Dropbox, etc.).

Importando "De Otras Fuentes"...

Aquí ya entramos en conexiones directas con Bases de Datos en forma de Query concreta o con sistemas de datos que tengamos. Sin duda es la mejor forma de importar datos, pero también la más compleja y por eso no podemos pararnos a explicarla. Al final cada menú es suficientemente intuitivo como para que cualquiera que sepa más o menos lo que está haciendo pueda llegar a un buen resultado.

Algunas cosas muy interesantes que podemos llegar a hacer son:

  • Conectarnos directamente con ODBC a una base de datos y lanzar consultas. Una lastima que no puedas conectarte directamente a un MySQL, pero bueno, siempre puedes añadir la conexión ODBC al MySQL que tengas instalado.
  • Importar consultas concretas a archivos de listados (sacar solo cierta información de otros Excel, XML, BBDDD, etc.)

Como siempre, podremos configurar la actualización automática en todos estos casos y siempre es recomendable revisarla tras cualquier importación.

Revisando las "Conexiones Existentes"...

Este apartado nos va a permitir visualizar todas las conexiones que tenemos en nuestro documento. Al editarlas podemos ver en que hoja y casilla del excel están situadas y editar su actualización. A veces es la forma más cómoda de revisar que datos hay en un Excel.

Añadiendo datos... "¿a mano?"...

Por supuesto y aunque no sea una opción del Excel siembre habrá datos que incluyamos a mano... Aunque sea para poner nombres más humanos a algunos valores que incluyamos de una fuente externa.

Importando datos de fuentes más complejas

En ocasiones será preciso conectarse a distintas APIs para extraer los datos. Este es por ejemplo el caso de Google Analytics, del que si te dedicas al mundo web sin duda querras extraer datos concretos para tus informes y que por supuesto, vemos que Excel no maneja como posible fuente de importación de datos.

Por desgracia no existe una vía 100% simple e integrada para hacer estas importaciones. Cada API está programada según han deseado sus programadores y es imposible que todo sea fácil y sencillo. Pero por suerte para nosotros, hay muchísima gente que usa Excel, lo que significa que en muchos casos podremos bajar gratuitamente o comprar alguna solución ya implementada por otros. Solo hay que usar Google e investigar un poco...

para guiarnos un poco, veamos los distintos métodos por los que pueden realizarse estas importaciones más complejas:

1º) Creando una página html, que haga de puente en nuestro servidor.

Al igual que haciamos para poder importar datos internos mediante "Desde Web" podemos crear un sistema de solicitudes que nos haga de puente entre lo que Excel comprende y la API. Así, podemos desarrollar la integración de la API que deseemos con los datos que necesitemos en nuestro servidor y en formato que a Excel le gusta: las tablas html.

Si vamos a tirar por este camino, no olvidemos nunca añadir una capa de seguridad a lo que montemos.

2) Usando las Macros de Excel.

Las macros de Excel son una via por la que Exel te permite aplicar tu propia programacion en VBA en el mismo. Sin duda es una herramienta muy util si sabes programar en ese lenguaje y estas familiarizado con su uso en Exel, pues te permite hacer practicamente cualquier cosa que podrías hacer con Visual Basic pero aplicando los resultados a las celdas, columnas y hojas de Excel en lugar de al HTML.

Asi pues, una forma de importar datos de una API cualquiera es programando su integración con Macros. Podemos encontrar un ejemplo de este método aplicado a la API de Google Analytics en AutomateAnalytics. Ahi se nos permitirá acceder a este mundillo a cualquier nivel: desde decargar un informe ya totalmetne integrado con macros para partir de ahi y solo cambiar lo que te apetezca hasta descargarte cada uno de los códigos VBA para aplicarlos en tus hojas a tu manera.

Otros macros interesantes que podemos descargar nos permitirán acceder a APIs tambien muy interesantes como las de SEOmoz,

3) Instalando plugins (llamados add-ins)

También existen desarrollos completos que pueden comprarse/crearse/instalarse en nuestro ordenador y que dotan a Excel de nuevas funcionalidades. Existen Plugins de Excel para infinidad de cosas, que dotan transforman a Excel en herramientas más complejas o añaden nuevas vias de recuperación de datos.

Estos plugins resultan mucho más comodos y rápidos que las macros pero tienen una gran contra: todo el que use el Excel debe tenerlos instalados para sacarle partido, algo que no siempre podemos garantizar ni nos termina de convenir.

Dentro de estos plugins encontramos a Excellent Analytics un plugin que te genera una nueva pestaña en Excel con la que identificarte en Google Analytics y lanzar con su API capturas de datos en tus páginas.

Otro de los plugins interesantes, de cara a la recogida de datos es SQL Drill que nos va a permitir conectarnos a distintos tipos de bases de datos (incluidos Oracle y MySql) e importar consultas o tablas enteras (aunque debo comentar que su instalación a veces falla en W7 y excel 2010 y debe terminarse a mano).

Sin duda, los plugins son una gran opción tanto para necesidades puntuales como para iniciarse en la analítica web en Excel, ya que no requieren ningún conocimiento específico.

Creación de Informes y Dashboards en Excel: La hoja de Base de datos interna

Es bastante normal que los datos, tal y como se importan en la cuenta no nos acaben de valernos. Para solucionar esto mucha gente lo que hace es hacer reemplazos masivos en la hoja de datos que acaba de cargar, pero eso tiene un serio problema: no podremos actualizar nunca esos datos o tendremos que volver a repetir el trabajo de reemplazos.

Para solucionar esto lo que podemos hacer es crear una Hoja de Base de Datos donde incluiremos equivalencias concretas entre datos. Un ejemplo típico sería asociar una lista de datos que tenemos solo por ID y al que le creamos en una hoja de bbdd a sus nombres más comunes asociados a estos Ids. Para ello, usaríamos dos columnas de nuestra Hoja de base de datos donde iriamos especificando en cada fila ID y Nombre. De esta forma ya tendríamos esta asociación en nuestro Excel y luego podríamos usarla en nuestras formulas para autotraducir los datos cargados.

Creación de informes y Dashboards en Excel: Las Hojas Resumen

Estas hojas deberiamos tratarlas exactamente igual que las de datos solo que sabiendo que sus datos serán en realidad formulas que precalculen datos en base a otras hojas de datos que hemos ido importado. Por eso las llamamos resumen. No aportan datos nuevos, solo resumen los importantes en una sola hoja.

Estas tablas no siempre son necesarias, muchas veces podemos evitarlas y hacer los calculos directamente en los informes así que marcate dos únicos motivos para crearlas:

1) No te ves capaz de poder crear el informe sin este apollo intermedio que te procese los datos. Normalmente no significará que no pueda hacerse, pero uno debe ser consciente de sus propias limitaciones y no todo el mundo conoce todas las funciones de Excel ni sabe anidar varias en una sola celda. Además, para Dashboards complejos muchas veces es más rápido crear este resumen que ir teniendo en cuenta varias hojas para nuestras fórmulas.

2) Visualizarlas vaya a tener algún sentido para los usuarios. Esto ya es más comun. Nosotros en nuestro informe podemos mostrar un gráfico, por ejemplo de evolución de ingresos por tipo producto. Pero sabemos que alguien al observarlo puede preguntarse... ¿y este tipo de producto por qué tiene este resultado? Así que le ofrecemos una hoja resumen que le ayude a ver el desglose de cada venta. Si le obligasemos a visualizar cada hoja de datos seguramente tardaría mucho más en dar respuesta a su pregunta, así que debemos ayudarle.

Creación de infomres y Dashboards en Excel: Las hojas Informe

Los informes son al final lo que la gente viene a mirar a nuestro Excel por lo que deben ser claros, concretos y lo más automáticos posibles. Para listados de datos enormes ya tenemos las hojas de datos y de resúmenes, aqui lo que buscamos son datos que "nos digan cosas" y para generarlos tendremos que hacer muchas veces uso de complejas formulas y recursos gráficos y de usabilidad que ayuden a ver mejor todos los datos que incluimos y sobretodo a que destaquen aquellos en los que el usuario final debe fijarse.

Como decíamos pondremos en este tutorial un par de ejemplos sobre como crear este tipo de hojas pasando por todas las anteriores. Pero de momento, vayamos repasando como funciona Excel internamente o todo este ejercicio se resumirá en un corta y pega del que no entenderemos ni la mitad...

Creación de infomres y Dashboards en Excel: Las bases de Excel

Antes de entrar en los propios informes o Dashboards debemos conocer con que herramientas vamos a trabajar los datos. Para eso es esencial concer algunas funciones un poco más avanzadas que el "=SUMA()" o "=A1+B1". Así que perdamos unas cuantas líneas en ver las funciones que más van a usarse para crear estos informes, de hecho, es posible que solo con estas y las básicas ya no necesites nada más para crearlos.

Entendiendo la selección de celdas y de rangos de datos

Al definir celdas en Excel debemos conocer minimamente el lexico de las mismas. Tenemos un asistente que nos ayuda a crearlas, pero al visualizarlas tenemos que poder entender lo que dicen con solo leer el texto de la casilla correspondiente. Aquí os dejo algunos apuntes.

  • Las filas se indican como conjunto de letra y Numero Seguidos. Por ejemplo A1 es siempre la primera casilla de la hoja actual.
  • Si detallamos rangos concretos lo hacemos indicando las dos celdas que delimitan ese rango. Por ejemplo A1:C3 es el cuadro de 3x3 celdas del principio y A1:A3 las tres primeras celdas de la primera columna.
  • Podemos marcar tambien rangos de Filas o columnas completas indicando solo ese numero o letra en el rango. Por ejemplo A:C son todas las celdas de las 3 primeras columnas de la hoja, 1:3 las 3 primeras filas y A:A todas las celdas de la columna A.
  • También podemos definir datos de hojas distintas empezando la declaración por el nombre de la hoja seguido de "!" y la declaración de celdas. Por ejemplo, La celda A1 de la hoja datos.ingresos (la hoja de datos sobre nuestros ingresos) la marcariamos como datos.ingresos!A:1 y datos.gastos!A:A se refiere a todas las celdas de la columna A de la hoja de gastos.

Y con esto tenemos claras casi todas las selecciones. Ni que decir que normalmente será más cómo hacer las selecciones directamente con el ratón, pero si luego no entendemos lo que hay escrito lo vamos a tener mucho más dificil para detectar errores futuros por lo que es conveniente que practiques a realizar algunas selecciones manualmente.

Entendiendo las formulas

Crear una fórmula en Excel no tiene mucho misterio. Incluso tenemos un asistente (que lanzamos con el símbolo "fx") que nos facilitará saber que hacemos en cada momento. Pero, como antes, debemos entender lo que queda escrito al final en la celda o perderemos mucha agilidad detectando cambios y tendremos que reformular hojas enteras cuando se produzca un error. El Debug de Excel normalmente no pasa de indicar que hay un error con un valor y es nuestra labor detectar por qué.

Así pues una formula siempre tiene este aspecto:

=NOMBREFORMULA( Valor1 ; Valor2 ; Valor3 ; ...)

Donde:

  • NOMBREFORMULA es la formula que estamos usando.
  • Y cada valor es los valores que le incluimos que en cada formula, por su definición significan algo distinto. Estos valores pueden ser realmente que incluimos como número o texto entre comillas (") o una seleccion del celdas del tipo de las que hemos comentado antes.

De esta forma...

=SUMA(1000;A1:C1) 

Será igual a la suma de 1000+ el valor de la celda A1 + el valor de la celda B1 + el valor de la celda C1.

Sencillo, ¿verdad? Aparte de las propias fórmulas el hecho de estar dentro de una formulación nos permite usar símbolos matemáticos para unir distintas partes de nuestra declaración. Así que la formula anterior podríamos haberla expresado también de esta forma:

=1000+A1+B1+C1

o como...

=1000+SUMA(A1:C1)

Incluso podemos ir uniendo distintas formulas de esta forma...

=(SUMA(A1:C1)*0,25)+(SUMA(B2:C2)*0,50)

Esta formula nos daría directamente un cuarto del valor la suma de las celdas A1,B1 y C1 sumado a la mitad del valor de las celdas B2 y C2.

Algunas consideraciones en las selecciones para las formulas

Cuando creamos formulas en Excel normalmente se nos permiten definir rangos de datos o matrices completas. Esto tiene cierto peligro con datos importados puesto que podemos caer en el error de marcar con el ratón una zona de los datos y que estos al volver a importarse aumenten de número de filas dejando nuevos datos sin procesarse.

Por lo tanto, siempre que sea posible haremos lo siguiente:

  • Para matrices completas seleccionaremos Todas las columnas afectadas directamente. Por ejemplo una selección referente a una fuente de datos con 12 parametros sería: datos.ingresos!A:L
  • Para marcar rangos, también siempre que sea posible lo haremos con columnas completas. Por ejemplo, para seleccionar el precio (4a culumna de la hoja de ingresos) de todos los productos, lanzariamos datos.ingresos!D:D incluyendo la cabecera en la selección en lugar de datos.ingresos:D2:D45 ya que de otra forma si alguna vez tenemos más de 45 ingresos no nos los contabilizaría.

Trabajando de esta forma nos evitamos muchos problemas pero también generamos alguno nuevo al tener en cuenta las cabeceras y las filas vacias como parte de los rangos seleccionados. Esto a poco que lo pensemos tampoco es un problema puesto que con rangos numéricos se interpretará cabecera y filas vacias como valor = 0 y en los textuales o de fechas donde normalmetne buscaremos coincidencias es dificil que encontremos justo esa coincidencia si trabajamos con cuidado. El único problema real vendrá al crear tablas dinámicas, que tendremos que esconder siempre el valor vacío de nuestras tablas.

Otra buena costumbre a seguir es no usar casi nunca valores concretos en las formulas. Siempre que podamos referenciemos el resultado al contenido de una celda. ¿Por qué? pues porque ante cualquier cambio criterio o evolución de nuestros informes se nos obliga a buscar en la formula para editarla cuando hubiese sido tan fácil como editar una celda. Esta celda podemos indicarla en una hoja de BBDD, como elemento editable de nuestro Dashboard, o como columna especifica en nuestas hojas de datos.

Por ejemplo, imaginemos que tenemos una hoja de productos (datos.productos) en la que hay que calcular el IVA de un producto. Podríamos hacer lo siguietne:

=datos.productos!A1*(18/100)

Pero cualquier día nos arriegamos a tener ingresos a otro porcentaje de IVA... con lo correcto sería crear en la celda contigua el porcentaje de IVA a aplicar y cambiar el calculo:

=datos.productos!A1*(datos.productos!B1/100)

Como norma: ni un solo dato que no sea una referencia a una celda. A la larga saldreis ganando.

El copia/corta y pega y las selecciones fijas

Por ultimo, otra cosa que tenemos que entender es que cuando en excel hacemos un corta y y pega (o un copia y pega) se entienden por defecto todas las declaraciones como en referencia a celda en la que estamos...

Así si yo en la celda C1 indico que su resultado es =A1+B1 al copiarla en la casilla C2 automaticamente la formula de esa casilla será =A2+B2 puesto que lo que se copia es una formula que hace referencia a las casillas a la izquierda de la actual y no las casillas fijas.

Esto es ideal cuando estamos haciendo formulaciones consecutivas de nuestros datos y nos ahorra mucho trabajo, pero es un poco engorroso cuando hacemos formulas que usan un valor fijo de una tabla que no debe moverse.

Para evitar esto podemos incluir el símbolo dolar ($) delante de cada elemento la selección y esto indicará al sistema que esa seleccion es fija y no relativa a la casilla en la que nos encontremos:

Asi si yo en la celda C1 indico que su resultado es =$A$1+B1 al copiarla en la casilla C2 la formual de esa casilla será =$A$1+B2 ya que $A$1 no se ha movido con la copia.

Creación de Informes y Dashboards en Excel: Las Fórmulas más comunes

Que empiece el tutorial! Ve abriendo tu Excel

Despues de tanta explicación de las bases de Excel y de buenas costumbres al crearlos, quizás ha llegado el momento de entrar en materia y empezar a trabajar sobre un ejemplo que nos deje las cosas más claras, ¿no?

A partir de ahora y a modo de ilustración práctica, a medida que vayamos hablando de nuevos conceptos iremos explicando como poco a poco va tomando forma un Excel de informes sobre ciertos datos Ficticios.

Partiremos de un archivo Excel de ejemplo con una única hoja: una hoja de datos de 42 facturas emitidas a clientes entre el 1 de enero y el 11 de febrero de 2010.

Fórmulas BUSCARV() y BUSCARH()

Estas dos formulas son iguales, salvo que BUSCARV se aplica en filas y BUSCARH se aplica en columnas. Lo más normal es usar BUSCARV, ya que los datos suelen presentarse por columnas y por lo tanto nos suele interesar examinar filas.

Esta formula lo que hace es buscar la primera aparición de un elemento en una columna para darte como resultado el elemnto de otra columna. Su formulación es la siguiente:

=BUSCARV( valor que buscamos; matriz deonde se busca; Columna que realmente queremos ; Ordenado)

Donde:

  • El valor que buscamos es la coincidencia que tiene que haber para que la formula busque un dato.
  • la matriz debe ser una selección de varias filas y columnas en la que la primera columna es SIEMPRE en la que buscamos la coincidencia.
  • Columna que realmente queremos representa cuantas columnas debemos movernos en la matriz para sacar el dato que queremos.
  • Ordenado es un valor que le indica a Excel si la fuente que se está mirando está ordenada de forma ascendente o no. Por defecto está indicado como "Verdadero" (1) y podemos pasarlo a "Falso" (0) indicandolo en la fórmula. Este valor, indicado a "Verdadero" (1) es útil solo cuando necesitamos que BUSCARV() siempre devuelva algo, en ese caso aun no encontrándolo coincidencia devolverá la más cercana posible al valor indicado. Si trabajos con valores no ordenados o no deseamos que siempre haya resultado debemos indicarlo siempre a "Falso" (0).

La verdad es que esta, a pesar de ser una de las fórmulas que más vamos a usar, es un poco tosca e incomoda... eso de que siempre se elija la columna 1 de la matriz y contar columnas hasta el valor que realmente queremos es bastante engorroso. Pero es lo que se nos da, y vamos a tener que funcionar con estas reglas...

Esta formula resulta ideal para cruzar datos entre dos fuentes distintas, montando sobre la marcha tablas de resumen o traducciones de datos con datos de distintas hojas.

Empecemos a poner en práctica el uso de BUSCARV() con el Excel de Ejemplo que mencionabamos antes. Para empezar si observamos nuestros datos de ejemplo veremos 2 cosas que no acaban de cuadrar. Por un lado se nos da un importe bruto y se nos indica el tipo de iva a aplicar pero no se nos calcula ni el valor del IVA ni el total Neto que hemos cobrado a los clientes por esa factura. Por otro lado tenemos la fecha, pero sabemos que la facturación en nuestra empresa la cuentan por meses así que deseamos saber el mes de cada factura, y lo queremos saber con su nombre no con un número que nadie entiende...

Seguramente nos pueden hacer falta estos esos datos cuando avancemos en la elaboración de nuestro dashboard así que es mejor que mejoremos nuestra fuente de datos con columnas extra que calculen esos datos. Esas columnas no se sobreescribirán al actualizar datos, pues no forman parte de la importación, además si en la configuración de la importación de datos marcasemos la casilla para respetar las formulas de la hoja, si se cargasen más datos de los actuales Excel añadiría formulas a los nuevos datos cargados...

Bien, para hacer este trabajo requeriremos de una hoja extra: nuestra primera hoja de Base de datos. Así que creamos una nueva hoja y la llamamos "bbdd.facturas" ya que es el apoyo de base de datos para "datos.facturas". Ahi generamos 4 columnas: 2 para trabajar el IVA y una para trabajar los meses del año (hay otras formas de hacer esta traducción pero para el ejemplo usaremos la hoja de bbdd.

Así pues nuestra nueva hoja contendrá estas equivalencias:

Tipos de iva (columnas A y B):
- normal: 18
- reducido: 8

Numero de Mes (columnas C y D)
- 1: Enero
- 2: Febrero
- 3: Marzo
- 4: Abril
- 5: Mayo
- 6: Junio
- 7: Julio
- 8: Agosto
- 9: Septiembre
- 10: Octubre
- 11: Noviembre
- 12: Diciembre

Ahora solo nos falta unir esta traducción a los datos que tenemos den datos.facturas.

Añadimos tres nuevas columnas (preferiblemente de otro color para saber que son datos calculados) a nuestros datos: iva, Total pagado y Mes. Ahí usamos las siguientes formulas.

Iva:

=D2*(BUSCARV(E2;bbdd.facturas!A:B;2)/100)

Donde multiplicamos el valor del importe, por la traducción del tipo de iva y dividimos entre 100.

Total Pagado:

=D2+G2

Sí, esta muy facilita...

Mes:

=BUSCARV(MES(B2);bbdd.facturas!D:E;2)

Sacamos con la función MES() el numero de més de la fecha y aplicamos la traducción con la Base de datos.

Ahora solo nos hace falta rellenar el resto de filas con estas fórmulas.

Puedes validar el trabajo realizado descargando el Excel tal cual deberías tenerlo ahora mismo:

Esto ha sido fácil, compliquemoslo un poco más. Vamos a crear nuestra primera tabla de resumen. Para ello hemos supuesto que teniamos una nueva fuente de datos: Google Analytics en la cual tenemos asociados a cada id de factura un par de datos de analítica web.

Ahora lo que haremos será crear una nueva hoja en el excel: resumen.facturas_analytics que que nos debe aportar los datos asociados de nuestras dos hojas de datos anteriores.

Empezaremos por crear las cabeceras de la nueva hoja:

id, Fecha, Mes, cliente, medio, keyword, importe, iva, Total, pagada

Y a partir de la Fila 2 empezaremos a formular cada celda para que recoja los datos que debe de ambas hojas de datos...

A2: =datos.facturas!A1
B2: =datos.facturas!B1
C2: =datos.facturas!I2
D2: =datos.facturas!C2
E2: =BUSCARV($A2;datos.analytics!$A:$C;2;0)
F2: =BUSCARV($A2;datos.analytics!$A:$C;3;0)
G2: =datos.facturas!D2
H2: =datos.facturas!G2
I2: =datos.facturas!H2
J2: =datos.facturas!F2

La mayor parte de las fórmulas han sido triviales, pero hay que destacar las celdas E2 y F2, donde hemos usado BUSCARV() para poder asociar ambas tablas.

En ambas lo que hemos hecho ha sido seleccionar la celda A2 como id a buscar, les hemos indicado el rango de columnas de la A a la C de la hoja datos.analytics y le hemos indicado de que columna sacar el valor. Notese que como los datos de la hoja datos.analytics no estaban ordenados ascendentemente por ID hemos tenido que marcar el cuarto parámetro (ordenado) de BUSCARV() a 0 ("Falso"). De otra forma los resultados habrían sido muy extraños...

Una vez tenemos esta fila lista, tan solo tenemos que rellenar el resto de filas hasta tener una hoja ordenadita con todos los datos asociados a la vez a los IDs

Estos dos ejemplos han sido bastante sencillos, pero tu mismo puedes ver el potencial de este tipo de hojas resumen una vez mas mezclando datos con distintos criterios. Al final, el potencial es cercano al de muchas sentencias SQL solo que mucho menos directo.

SUMAR.SI() y CONTAR.SI()

Ahroa vamos a tratar las funciones de .SI(), donde la más interesante va a ser SUMAR.SI(), una función muy útil para hacer nuestros cálculos globales en el Dashboard o en tablas de resumen. Esta función nos permite seleccionar un rango de datos (normalmente una columna de una hoja de datos o de resumen) y que solo sume los datos si en otro rango especificado el dato coincide con nuestors intereses.

La formula se aplica de la siguiente forma:

=SUMAR.SI( rango al que se aplica el criterio ; criterio para saber si sumar el dato ; rango que se suma )

De esta forma elegimos de nuestras tablas de datos, en relación a una busqueda que nos interesa que elementos sumamos y que elementos no. Los criterios pueden ser booleanos ">=1","<0",etc... o simplemente un valor al que tiene que ser igual el campo del rango al que se aplica el criterio. Esta formula es ideal para declararla en columnas enteras de datos: Cojemos una fuente de datos cargada en el Excel y para cada fila de la misma si el dato de otra de las columnas es el que queremos,sumamos el dato al total. Variación: SUMAR.SI.CONJUNTO()

Esta variacion sigue la misma lógica que SUMAR.SI() pero nos permite especificar más de un rango de criterios. A veces no queremos simplemente que un valor coincida con otro, sino que queremos observar varias columnas para decidir si sumamos el valor o no a nuestro conteo final.

Su formula es la siguiente:

=SUMAR.SI.CONJUNTO( Rango a sumar ; Rango sobre el que se aplica el criterio 1 ; criterio 1 ; Rango sobre el que se aplica el criterio 2 ; criterio 2; ... )

Pasemos a la práctica con nuestros Exceles de facturas y analytics. Recordemos que teníamos el Excel ya con 4 hojas de datos: resumen.facturas_analytics, datos.facturas, datos.analytics y bbdd.facturas. Bien, pues vamos a añadir una 4a hoja, los primeros datos de nuestro primer informe: informe.global

En este crearemos antes de nada en una celda un campo de ayuda en el que indicaremos el mes que estamos visualizando en este informe global. Crearemos el campo y lo rellenaremos con la palabra "Enero". Es más, como no queremos que nadie pueda escribir mal uno de los meses después de indicar el campo le aplicaremos "Validación de datos" (Menú >> Datos >> Validación de Datos), ahí le indicaremos que permita una "Lista" de datos "omitiendo Blancos" y con "lista desplegable" y le daremos como Origen de los mismos los nombres de los 12 meses que ya indicamos en la hoja bbdd.facturas. De esta forma, como los origenes son exactamente iguales será imposible equivocarse en la declaración del informe. Veremos como al lado de esta celda aparece un selector que nos permite indicar cualquier mes.

Ahora en base a este selector vamos a indicar las sumas de ingresos e IVA del mes que estamos observando. Así crearemos 3 celdas consecutivas, una para ingresos, otra para IVA normal y otra para IVA reducido...

Ingresos: =SUMAR.SI(datos.facturas!I:I;informe.global!$C$2;datos.facturas!D:D)

Donde Buscamos en la columna de los meses de la hoja de datos.facturas, el mes indicado actualmente en el informe global (en este caso yo lo indiqué en la celda C2) y cuando encontramos coincidencia sumamos la cantidad de la columna D de la hoja datos.facturas (la de importes).

Iva Normal: =SUMAR.SI.CONJUNTO(datos.facturas!G:G;datos.facturas!I:I;informe.global!$C$2;datos.facturas!E:E;"normal")

Aquí hacemos un ejercicio similar, pero aparte de comparar el Mes con el indicado en nuestro informe global, también queremos que la columna E (tipo de iva) valga "normal" o no la sumaremos.

Iva Reducido: =SUMAR.SI.CONJUNTO(datos.facturas!G:G;datos.facturas!I:I;informe.global!$C$2;datos.facturas!E:E;"reducido")

Exactamente la misma operación pero ahora buscando que el tipo de iva sea "reducido".

Por último añadimos 2 filas más para validar que hemos hecho bien el trabajo:

=SUMA(C4:C6)

- Por un lado crearemos una celda en la que sumaremos las otras 3, y que nos dará el total de ingresos del mes indicado.

=SUMAR.SI(datos.facturas!I:I;informe.global!$C$2;datos.facturas!H:H)

- Por otro sumaremos desde la hoja datos.facturas los importes de la columana de Total pagado. Ambos deberían ser iguales...

Ahora ya podemos jugar un poco con nuestro informe global y ver que cuando cambiamos de mes (de enero a febrero, porque recordemos que no hay datos en el resto de meses aun) los cálculos cambiarán...

Las tablas Dinamicas

Aprender a usar las Tablas de Dinámicas de Excel resulta esencial para hacer cualquier tipo de informe o Dashboard. Su potencial para cruzar datos es inmenso y nos permite, con solo seleccionar y arrastrar unos cuantos datos generar matrices con información muy interesante.

Lo primero que tenemos que hacer para generar tablas dinámicas es escoger nuestra fuente de datos. Si hemos hecho las cosas de forma ordenada la mayor parte de las veces hablaremos de seleccionar hojas enteras de datos o de resúmenes. Aquí lo mejor es acudir al asistente para crear las tablas dinámicas y de ahi pasar a la visualización de "lista de campos", una herramienta que esconde muchísimas posibilidades. Vamos paso a paso y de paso, sigamos con nuestro ejemplo...

Vamos a crear un nuevo informe, que nos de datos de calidad tanto de nuestros clientes como de los medios por los que traemos tráfico a nuestra web. En el caso de los clientes mediremos su calidad examinando cuanto han pagado de todo lo que han ido comprando, en el caso de los medios querremos ver cuantos ingresos nos aporta cada medio por separado. Además le añadiremos un control de ingresos por día. En total tres tablas dinámicas.

Por lo tanto creamos una nueva hoja en nuestro Excel: informe.calidad_medios_clientes. En esta hoja crearemos primero una tabla dinámica más sencilla donde veamos los ingresos de cada medio y que porcentaje representan del total y otra un poco más compleja donde veamos cada cliente cuantas facturas ha pagado vs cuantas no y los ingresos recividos vs los pendientes.

Como crear las tablas dinámicas

Para crear la tabla fácilmente seleccionamos la celda a partir de la cual surgirá esta. Pongamos que es la celda A1 de una nueva hoja que como decíamos vamos a llamar informe.calidad_medios_clientes. Vamos a Menú: "Insertar" >> "Tabla Dinamica" y veremos como nos abre una ventana donde nos solicitan datos ya se ha rellenado lugar donde se indica a partir de que celda va a crear la tabla. Por lo tanto solo nos queda rellenar el "Rango" de que sacará datos la tabla dinámica, Así que vamos a nuestro resumen recién creado (resumen.facturas_analytics) y seleccionamos todas las columnas del mismo (resumen.facturas_analytics!A:F). Ya tenemos los datos de la tabla dinámica definidos... ya solo falta configurarla.

Para configurar la tabla usaremos la vista especial de "Lista de Campos" que Excel nos brinda... Esta lista nos identificará las cabeceras del origen de datos (cuidado, porque las cabeceras en toda tabla dinámica son obligatorias) y nos permitirá arrastrarlas a 4 zonas distintas: Filtro, Etiquetas de Columna, Etiquetas de Fila Y Valores.

Como estamos justo empezando a trabajar con tablas dinámicas olvidemonos de los dos primeros. Pueden llegar a ser muy útiles para informes realmente potentes, pero ya llegaremos algún dia a usarlos, de momento contentemonos con esos 2 que ya dan bastante juego 😉

El campo "Etiquetas de Fila": Cada dato incluido en "Etiquetas de Fila" es una segmentación en el informe que mostremos. -Si eres usuario de Analytics, sería algo similar a las dimensiones de analytics-. Podemos añadir cuantos campos deseemos en este cuadro, pero lo normal es añadir solo 1 o 2, ya que cuantos más pongamos más hacemos crecer nuestro informe que puede acabar siendo demasiado detallado.

El campo "Valores": A cada uno de esos segmentos que hemos creado añadiendo campos a "Etiquetas de Fila" le iremos añadiendo los datos que queramos ver sobre ellos en el cuadro de "Valores". Podemos añadir cuantos datos queramos e incluso repetir el mismo dato varias veces. Sin embargo lo que no debemos olvidar nunca es editarlos una vez añadidos para que se procesen y se muestren justo como necesitamos. Ese es el problema que tiene mucha gente con las tablas dinámicas, simplemente añaden datos al cuadro "Valores" pero no los editan después de añadirlos y por defecto solo les cuenta el numero de repeticiones de ese valor, lo cual es muy limitado...

Poniéndolo en práctica

Sigamos con nuestro ejemplo. Recordemos que acabamos de crear una tabla dinámica partiendo de los datos de resumen.facturas_analytics...

La vista de "Lista de Campos" nos ofrecerá para seleccionar las cabeceras que elegimos al crear la tabla resumen: id, Fecha, Mes, cliente, medio, keyword, importe, iva, Total, pagada.

Vamos a por el primer informe, que dijimos que queríamos que nos mostrase los ingresos que hemos obtenido mediante los distintos medios y el porcentaje que representan estos en el total. Así pues, lo que hacemos es añadir el campo "medio" al cuadro de "Etiquetas de Fila" y añadimos dos veces el campo "importe" al cuadro "Valores".

Ahora nos toca editar los dos campos añadidos a Valores: el primero lo pasaremos a "Suma" y ya nos valdrá su resultado (bueno, también lo pasaremos a tipo "Moneda", pero eso es más por apariencia que por el dato). El segundo campo de Importe también lo pasaremos a "Suma" pero además iremos a "Mostrar Valores como" y seleccionaremos "% del total general". De esta forma Excel sumará todos los valores que va a mostrar en la tabla e indicará el porcentaje directamente en esta posición. Cerramos la "Lista de Campos" y veremos como ya tenemos una tabla que nos indica para cada medio que ingresos hemos conseguido y el porcentaje que representa del total.

Bien! Primera tabla conseguida, ahora a por la segunda. El proceso va a ser muy similar: seleccionamos una celda de la hoja informe.calidad_medios_clientes y creamos una tabla dinámica que tome por datos todas las columnas de la hoja resumen.facturas_analytics. En este caso recordemos que buscamos saber para cada cliente cuantas facturas ha pagado vs las que no ha pagado y ver ese mismo dato en relación a sus ingresos.

Por lo tanto añadimos dos campos al cuadro de "Etiquetas de Fila": "cliente" y "pagada", lo que nos provocará que la tabla primero presente los clientes y dentro de cada cliente se desglosen sus dos posibles valores del campo pagada: "si" y "no". Ahora añadimos el campo id y dos veces el campo importe al cuadro de "Valores".

Ya solo nos queda configurar estos valores. El primero de ellos representará cuantas facturas distintas se han creado de la segmentación que estamos observando y por tanto lo dejaremos como resumir valores por "cuenta". Los otros dos, los trataremos igual que hemos hecho antes en la anterior tabla dinámica pudiendo ver así ingresos en € y en porcentaje. La diferencia la haremos en el de porcentaje en el que esta vez escogeremos "% del total de filas principales". Esta opción hará que en lugar de mostrarnos el porcentaje total que representan esos ingresos lo que nos muestre sea el % que representa de su grupo principal. Es decir, cuando vaya a darnos el dato de cuantos ingresos ya están pagados y cuantos no, nos calculará el porcentaje por cada cliente y no por el total de ingresos de todos los clientes a la vez.

Por último, nos queda nuestra tercera tabla dinámica; la de ingresos por días. Aquí lo suyo hubiese sido poder mostrar también estos ingresos por día también divididos por medios y poder crear una tabla más compleja, pero por desgracia la muestra de datos que tenemos solo incluye una factura por día y si hiciesemos eso quedarían ingresos muy salteados con la mayor parte de los valores a 0. Aún así mi deber es animaros a que con otras fuentes de datos probeis a añadir más segmentos a vuestras tablas.

Como siempre, seleccionamos una celda y asignamos como rango todas las columnas con datos de la hoja resumen.facturas_analytics. Vamos a la vista de Lista de campos y ahí nada tan fácil como añadir las fechas como "Etiquetas de Fila" y el importe como único "Valor". Al añadirlo recordemos cambiarlo de resumen tipo "cuenta" a "suma". Y ya tendemos la nueva tabla. Esta un poco más larga que las anteriores...

Si hemos hecho bien todo este trabajo nuestro informe responderá perfectamente a las preguntas que nos hacíamos: nos dirá que medios son los que más tráfico nos aportan y que clientes son los que tienen porcentajes de impago altos en comparación con sus porcentajes de pago. Sin duda, para estos datos ficticios el tráfico orgánico parece muy interesante y el clienteC debería preocuparnos ya que apenas ha pagado lo mismo que lo que debe.

Pero la verdad es que la información así presentada es un poco tosca...

Los gráficos dinámicos y los gráficos a medida

Vamos a añadir un poco de grafísmo a nuestro informe. Recordemos que los gráficos de Excel son muy capaces de resumir visualmente la información. Empecemos por dos gráficos sencillos. Seleccionamos nuestra tabla dinámica de fuentes y le añadimos un gráfico dinámico (Herramientas de tabla dinámica >> Opciones >> Gráfico Dinámico). Un gráfico dinámico es simplemente un gráfico que toma como fuente de datos directamente todo lo que haya en la tabla, lo cual ahora mismo nos va bastante bien. Así que le asignamos un gráfico de quesito y lo ponemos a nuestro gusto.

El siguiente gráfico va a ser igual de sencillo. Repetimos el proceso pero ahora con la tabla de ingresos por día que creamos anteriormente. Como son muchos datos y ordenados cronológicamnete en este caso escogemos un gráfico de líneas que nos muestre las tendencias de los ingresos.

Bien, hasta ahora ha sido muy fácil, pero cuando nos encontramos con el gráfico que representa el estado de págo de los clientes vemos que los gráficos no nos lo ponen fácil para resumir la información que deseamos. Esto es porque hemos ordenado la información de una forma distinta a como la requieren los gráficos de Exel... podríamos crear otra tabla dinámica paralela pero eso puede terminar haciendo que creemos cientos de tablas para un solo documento. Así que decidimos jugar con los gráficos creados a medida.

Los gráficos creados a medida se realizan insertando un gráfico pero sin indicarle los valores reales. Por ejemplo, situamos el cursor en una celda sin datos y vamos a Menu >> Insertar >> Gráficos de Barra y seleccionamos el tercero. Excel nos creará un cuadro de gráfico pero totalmente en blanco. Clickamos con el botón derecho y escogemos "Seleccionar Datos" para asignárselos nosotros manualmente. Ahí se nos abre una pantalla donde escoger Series y Categorías. Debemos entender que las series son conjuntos de datos que representará el gráfico y las categorías los nombres de esos datos. Así que le damos a Agregar y escogemos crear 2 series: una con los ingresos ya pagados de cada cliente (seleccionados uno a uno al agregar la serie) y otra con los ingresos no pagados. Como categorías seleccionaremos también uno a uno los 4 nombres de cliente de la tabla. El gráfico final serán por tanto 4 barras (una por cliente) que mostrarán que parte del total ha sido ya pagada y que parte no.

Estos gráficos no nos aportarán ninguna funcionalidad o dato nuevo, pero sin duda hacen más evidentes las conclusiones y nos ayudarán a saber en que datos fijarnos.

Añadiendo Segmentación a las tablas dinámicas

Por último, en nuestro informe, vamos a añadir un control de la segmentación. Estos controles van a permitir a quien mire nuestro cuadro poder ver solo una franja de datos y no todos a la vez. En nuestro caso queremos hacer un control para permitir a los usuarios ver todos los datos introducidos o fijarse tan solo en un mes sobre el que tengan dudas.

Añadir la segmentación es muy sencillo: Seleccionamos una de nuestras tablas dinámicas y clickamos en Menú >> Insertar >> "Segm". Se nos habrá una ventana que nos preguntará por que campo realizar la segmentación y seleccionamos "Mes". Ahora se nos añadirá al Excel un cuadro nuevo donde poder seleccionar los meses y veremos que al seleccionarlos los datos de la tabla dinámica y del gráfico asociado cambian.

Pero tenemos un problema, nosotros si cambiamos de mes querriamos que todos los datos que hay en el informe cambiasen a ese mes (de otra forma, que tedioso sería todo). Por suerte Excel nos permite aplicar una segmentación a más de una tabla dinámica al mismo tiempo. Para ello tenemos que asegurarnos de que todas las tablas dinámicas que compartan segmentación surjan de exactamente la misma selección de datos para crearla. En nuestro caso esto nos va genial ya que en todas nuestras tablas hemos usado la misma selección de datos: todas las columnas de la hoja resumen.facturas_analytics, así que podemos hacerlo.

Para hacer la asociación clickamos con el botón derecho en el nuevo cuadro de segmentación y seleccionamos "conexiones de tabla dinámica". Ahora se nos abrirá una ventana que nos permite elegir con que tablas está asociada esa segmentación. Si no te salen todas las tablas que deseas, seguramente es porque no seleccionaste los mismos datos para las distntas tablas, lo que significa que sería mejor que las repasases.

Bien, ya tenemos toda la información y funcionalidades de nuestro primer dashboard:

El problema, es que no resulta nada atractivo ni usable... Tenemos que ir haciendo Scroll y la información no acaba de destacar...

Diseñando la página del Dashboard

Llegamos a la parte artística. La que tiene que conseguir que nuestros datos no solo den respuestas, sino que luzcan por si solos y guíen a los usuarios hacia las partes más importantes del mismo.

Para conseguirlo vamos a hacer uso de 4 conceptos distintos:

  • 1.- El diseño sencillo de las celdas: dandoles tamaños de fuente distintos, colores y fondos. Tenemos que ser coherentes al hacer este trabajo y aprender a hacer cosas "bonitas" con las herramientas de las que disponemos.
  • 2.- El diseño de gráficos: Los gráficos que nos da Excel son muy manipulables. Por lo general el programa nos los configura para ser mostrados en solitario. Por ese motivo nos pone bordes, fondo, títulos, leyenda, etc. Pero mucha información dentro de nuestro dashboard va a sobrar. Por lo general eliminaremos el fondo blanco de los gráficos, su titular y sus bordes, ya que no nos aportarán nada cuando mezclemos ese tráfico con el resto de nuestro diseño. Luego podemos querir ir más allá y borrar más elementos o cambiarlos de formato o color para cuadrarlos con nuestros intereses.
  • 3.- Las herramientas de formato condicional de celdas: Situadas en Menu >> Inicio >> Formato Condicional, estas herramientas nos van a permitir destacar unos datos sobre otros. Con ellas podemos cambiar fondos, colores o crear minigráficos o iconos dependiendo de los valores que tengan las celdas. Así que en el diseño de nuestro dashboard es obligado pensar que cosas queremos que puedan llamar la atención.
  • 4.- La posiblidad de ocultar filas y/o columnas: Excel nos permite seleccionar columnas o filas completas y ocultarlas. Esto a nosotros nos permite no eliminar datos de nuestros informes pero si hacerlos invisibles a los usuarios. Esto resulta ideal cuando algunas partes de la tabla dinámica no aportan nada o cuando queremos escoender tablas porque ya están representadas por su gráfico asociado

Así pues, y con estas 4 posibilidades vamos a darle formato a nuestro Dashboard.

- Movemos los elementos para dar forma al dashboard.
- Destacamos la segmentación al principio de todo.
- Añadimos titulos con fuentes mucho más grandes.
- Escondemos las cabeceras de las tablas dinámicas y las reemplazamos por textos propios.
- Usamos los fondos de celda para marcar separaciones en la información.

Y ya empieza a coger algo de forma.

Ahora otras cosas que se nos han ocurrido...

Para los ingresos por fuente:

- Quitamos todos los datos del quesito de ingresos por fuente de tráfico. Incluso la leyenda y cambiamos el color de los distintos datos en la tabla dinámica para que actuen al mismo tiempo como dato de la tabla y como leyenda.
- Añadimos a los informes el formato condicional de barras de colores y asi destacamos todavía más los medios que más ingresan sobre los que menos.

Para los Ingresos por Día:

- Como solo nos interesa ver la gráfica para poder detectar dias extraños, nos llevamos a otras filas la tabla y las ocultamos para que no moleste.
- El propio gráfico lo limpiamos de datos que no nos aporten... como son las fechas concretas que ocupan mucho espacio para lo poco importante que resulta el gráfico.

Para el estado de pago de los clientes:

- Cambiamos los colores del gráfico a algo que nos resulte más evidente: verde para pagadas, rojo para no pagadas.
- Añadimos el formato condicional de barras a los porcentajes totales de cada cliente para que nos llame la atención más aquellos clientes que más ingresos nos producen.
- Añadimos a cada una de las celdas de porcentaje de ingresos no pagados de cada cliente un formato condicional que nos añada una banderita roja si ese cliente nos debe un más de un 40% del total facturado (¡es la hora de meterle caña!)
- Por último creamos 2 gráficos, hechos a medida nuevos para cada cliente: un quesito que nos compare facturas pagadas con no pagadas y otro que nos compare importes pagados con no pagados. Como de estos quesos solo nos interesa el propio gráfico les eliminamos absolutamente todo lo que no es el gráfico y le damos colores tanto a las celdas de datos como a los quesos para identificar cada uno de esos datos que significa.

Despùés de tanto detallito acabamos con un dashboard bastante elegante en el que ir viendo cada mes lo que está sucendiendo...

Bien! Pues ya sabemos crear Dashboards de tablas dinámicas... pero por desgracia aun no hemos terminado. Nos falta crear otro dashboard con datos más concretos.

Dashboards Estáticos

Bien, Ya sabemos crear dashboards en base a tablas dinámicas pero esto no siempre es suficiente. De echo, si os fijáis en los dashboards que van usandose en distintas empresas nos encontramos con que no mucha gente acaba usando tablas dinámicas para sus dashboards. ¿Y esto por qué? Con lo rápido que es una vez lo dominas! Pues sencillamente porque las tablas dinámicas no son capaces de recibir datos de otros elementos de Excel y eso nos limita mucho las posibilidades...

Intento explicar un poco mejor el problema que tenemos con las tablas dinámicas: son potentes y versátiles pero tan solo nos dejan indicarles una selección de datos y el resto lo manejan ellas solas, no podemos hacer que sus distintos criterios se vean modificados por los valores de otras celdas y eso hace que por ejemplo no podamos hacer, como hicimos antes, que el valor de una celda afecte a los valores de las tablas dinámicas... Aparte de eso, su tamaño está descontrolado, si añadimos elemtos crecen y si se los quitamos encogen. En resumen, cuando queremos un cuadro muy cerrado no nos terminan de ayudar...

Por lo tanto tenemos que ver vías para poder crear dashboards CELDA A CELDA. Si, suena duro, pero es que la mayor parte de los Dashboards que veis por ahi son precisamente eso, un diseño montado en Excel en el que cada celda es una fórmula más o menos compleja... La inmensa mayoría de las veces se trata de empezar por definir algunos detalles a mano o con una tabla dinámica como origen de nombres de etiquetas y a partir de ahí usar sobretodo SUMAR.SI(), CONTAR.Si() y PROMEDIO.SI() -que ya hemos visto- para poder completar los valores.

Asi que vamos a crear un Dashboard estático de la forma que acabamos de comentar. Partimos de nuestra hoja de informe.global, en la que ya indicamos el Mes como filtro del informe y vamos a ir sacando nuestro dashboard desde ahi.

Los datos principales

Lo primero que montamos es de forma gráficamente destacada los valores principales de nuestro negocio. Esto lo hacemos con CONTAR.SI() para contar facturas del mes, SUMAR.SI() para conocer importes antes y despúes del IVA, SUMAR.SI.CONJUNTO() para calcular los ivas por separado y formulas simples para calcular el total y el precio medio de la factura.

Además añadiremos dos pequeñas tablas dinámicas que nos ayuden a tomar nombres concretos de los datos que vamos a mostrar. En este caso queremos saber los mejores 4 medios y las mejores 4 keywords que existen según nuestros datos de resumen.facturas_analytics.

Así que creamos dos tablas dinámicas muy simples, una que muestre el dato de medio y conteo de facturas y otra que muestre el dato de keyword y conteo de facturas.

El desarrollo de los datos

Ahora lo que vamos a hacer es ir creando el desglose del dato Ingresos con 3 desarrollos consecutivos: un cuadro de distribución de esos ingresos por fuente en el que se diferencien facturas pagadas de no pagadas, un par de gráficos que nos ayuden a resumir esa misma información y otro pequeño cuadro que nos permita ver, para esos mismos ingresos que keywords son las responsables de las fuentes "organic" y "other".

1) Tabla de Ingresos por fuente

El primer cuadro podríamos hacerlo con una tabla dinámica, pero en este caso preferimos usar las funciones de SUMAR.SI y SUMAR.SI.CONJUNTO() para completar las celdas.

- Creamos la tabla sacando los nombres de las celdas de la tabla dinámica que ya tenemos en el dashboard. Esto lo hacemos así por si algún dia una fuente cambiase de nombre. Así que estas serán referencias muy simples: =B17, =B18, =B19 e =B20.

- Ahora creamos la siguiente columna: la parte pagada de esa fuente en concreto. Usamos SUMAR.SI.CONJUNTO() pues lo que queremos es la suma de los importes de la hoja resumen.facturas_analytics cuando el Mes coincida con el del Dashboard, el medio coincida con la fuente actual y el estado de pago sea "si". Es decir, la siguiente formula:

=SUMAR.SI.CONJUNTO(resumen.facturas_analytics!G:G;resumen.facturas_analytics!C:C;informe.global!$C$2;resumen.facturas_analytics!E:E;informe.global!E6;resumen.facturas_analytics!J:J;"si")

Esta luego la copiamos en el resto de filas de la columna.

- Para la columna de pendientes de pago hacemos exactamente lo mismo pero con el estado de pago a "no". Es decir:

=SUMAR.SI.CONJUNTO(resumen.facturas_analytics!G:G;resumen.facturas_analytics!C:C;informe.global!$C$2;resumen.facturas_analytics!E:E;informe.global!E6;resumen.facturas_analytics!J:J;"no")

- Por ultimo creamos los totales de ingresos por medio y de pagados y no pagados sumando las celdas creadas o en horizontal o en vertical:

Suma horizontal: =SUMA(F6:G6)
Suma vertical: =SUMA(F6:F9)

Ya tenemos esta primera tabla estática, solo nos queda darle un poco de color y aplicarle algun efectillo de los que ya vimos en el anterior dashboard.

2) Tabla de ingresos por fuente y keyword

Ahora añadiremos el desglose por keywords siguiendo exactamente la misma metodología: sacaremos los nombres de las 4 mejores keywords de la tabla dinámica y empezaremos a cruzar las columnas de medios con las de keywords:

=SUMAR.SI.CONJUNTO(resumen.facturas_analytics!$G:$G;resumen.facturas_analytics!$C:$C;informe.global!$C$2;resumen.facturas_analytics!$E:$E;informe.global!$O7;resumen.facturas_analytics!$F:$F;informe.global!K$11)

Esto lo cpiamos en cada celda de la rejilla que acabamos de montar y aprovechamos para realizar las columnas de suma de cada celda.

=SUMA(K7:K8)

3) Gráficos asociados

Ahora nos falta crear los gráficos. Para ello usaremos los totales creados:

- Crearemos un gráfico de queso con los totales de ingresos por fuente.
- Un gráfico de queso con los totales pagados y no pagadados.
- Y un gráfico de barras para comprar los ingresos por cada keyowrd.

Ya solo nos falta decorar un poco todo esto...

- Creamos un efectillo que demuestre que nuestros datos de keywords se desprenden de los totales de las fuentes "organic" y "other"
- Marcamos con formato condicional todos los resultados de keyword-fuente para que resalten en color más oscuro los importes más altos (y llamen más la atención)
- Añadimos el gráfico de barras de total de keywords encima del gráfico para que al estar integrado no haga falta añadir leyendas ni titulos y ahorrar espacio.
- Añadimos formato condicional de banderas de colores a los totales de keyword para destacar en verde las keywords que más importe nos aportan.
- Remarcamos con bordes amarillos los otros dos totales que tenemos con grácfico y les añadimos una forma de llamada que muestre como cada gráfico sale de esos totales.

Y ya está! y tenemos nuestro segundo dashboard, en el que los datos más importantes destacan por encima del resto y en poco espacio resumimos gran cantidad de la información importante.

Conclusión

Creo que he mostrado las metodologías más utilizadas para crear dashboards en Excel con algún que otro truco que podéis poner en práctica. Pero al final el resultado hace lo que promete pero es dificil que puedas aplicarlo directamente a tu negocio... Esto es porque la fuente de datos que hemos usado no es una de las fuentes más comunes del mundo. Tus datos seguramente diferirán mucho de lo mostrado, no solo en sus valores sino en su organización. Es más que probable que quieras importar tablas completas de ventas con artículos vendidos por sus categorías y que importes las Landings y campañas de tu Analytics. ¿O quizá quieras importar tus datos de fans de Facebook o tus retweets?

Adelante! Yo solo he pretendido mostrarte el camino, no hacerte el trabajo... ¿no crees que es mucho más divertido así?

Otros tutoriales para seguir aprendiendo:

Temas Relacionados: analitica web tutoriales

Autor:

29 Comentarios para “Crear dashboards con Excel”

  1. QA Solutions dice:

    Iñaki! ... Excepcional!

    Que currada! Excelente tutorial.

    Good Job y muchas gracias por "Mostrar el camino" 😉 !!!

  2. DUQUE dice:

    Ya te lo dije en el anterior post pero esta vez te lo digo en serio, planteate de escribir un libro, pedazo de post, si tienes alguien que te lo traduzca comienza a publicarlo en sitios como SEOMOZ para proyectarte a nivel internacional, estos posts se lo merecen y más.

    Por cierto me haces currar el doble con estos posts XD

    Un abrazo.

  3. ikhuerta dice:

    QA, edité el nombre (que luego la gente se pone a llamarme iker una temporada y la liamos!)

    Gracias! Ese es el espiritu!

    Duque!

    Pues es para pensarselo, lástima que mi nivel de redacción en inglés no de para ponerme a traducir los posts... pero podría mirar. Le podría preguntar a Gianluca si cree que está al nivel 😛

  4. Shafie dice:

    Simplemente impresionante... me acabas de colocar toda la nube de tags que tengo en la cabeza en un esquema bien organizado.

    Genial.

  5. Muy buen y didáctico post. Felicidades por el gran trabajo

    Un saludo

  6. mirulu dice:

    Impresionante !!

    A los que estamos acostumbrados a no salir de la programación pura y dura de soft/webs etc... pero que como pasión/hobby tenemos el marketing/SEO bla bla bla, este tipo de post nos hacen las personas más felices del mundo.

    Gracias por compartir tus conocimientos !!!

  7. Natzir dice:

    Madre de dios Iñaki que currada.
    Estoy con Duque...Libro ya! y en SEOMoz hay post que no son ni la mitad de este. Te animo a las dos cosas campeón 😉

  8. Im-presionante.
    Mil gracias de nuevo por tus posts. Y estoy con los otros: anímate, escribe un libro y de ahí a la fama! :)
    Gracias!!

  9. Jorge Pasku dice:

    Me encanta al Post quizá porque me interesa mucho este tema, pero como dice Duque, me haces trabajar mas de lo que deseo, pero con artículos así da gusto ves donde aplicarlos en seguida.
    Gracias por estas kurradas que te pegas y yo te animo a que sigas adoctrinandonos con ellas jeje ;D

  10. Lo dicho Iñaki, este post va guardado a mis super super favoritos y cuando pueda lo voy a poner en uso, por que para que mentirte no lo pude leer al completo, pero solo con lo que he leido me da que es un post de lo mejor que he visto!

  11. Impresionante!! Que tutorial mas estupendo, Iñaki. Deberias de convertirlo en ebook.
    Yo trabajo mucho con dashboards para hacer reportes de investigaciones y encuentro tus recomendaciones super puntuales.
    De hecho yo uso mucho la funcionalidad de guardar plantillas de graficos para poder trabajar mas rapido.
    Saludos y muchos exitos!!
    @RolandoPeralta

  12. Tania dice:

    Mil millones de gracias. Me has salvado el día 😀

  13. Ana Gilabert (@BitCoaching) dice:

    Excelente!!!

  14. Yamileth Samaniego dice:

    Bueno Iñaki, muchas pero muchas gracias por compartir tus conocimientos, tengo mas de 13 horas leyendo tu post y haciendo la mecanica y de veras que me he animado a realizar un Dashboard en Excel, para presentarlo en mi trabajo.
    Sigue así tienes un don, eso no lo tiene cualquiera.
    Saludos desde panamá

  15. Juan Quinde dice:

    Excelente, encontré lo que busca. Te agradezco por mostrarme el camino...
    Desde Perú: Muchas gracias!

    Juan

  16. Félix Tafur dice:

    Impresionante, he buscado esto hace mucho tiempo, te agradezco por este post.

  17. Judit dice:

    Creo que nunca había visto un post tan explícito de cómo funciona Excel. Conocimiento puro. Muchas, muchas gracias!!!

  18. Luz A Bejarano dice:

    Mil gracias, exacto lo que requeria en este momento. Saludos desde Colombia

  19. alex dice:

    Hola como hago para ejecutar las descargas 1,2,3,4 he leido el post y esta recontra interesante,,

    porfa ayudenme..

  20. Ricardo dice:

    Hola, he tratado de bajar los archivos en excel y no se puede. Favor si me puedes enviar a mi correo:

    [editado]@hotmail.com

    Gracias

  21. Jaume Clotet dice:

    Iñaki, gracias por el pedazo de post, lo recomiendo en una clase esta semana, justo hoy hablábamos de ti en la oficina, bien! tranquilo 😉

    Saludos,

    Jaume

    • ikhuerta dice:

      Me alegro de que os haya gustado Jaume, es algo muy sencillo para gente ya acostumbrada a trabajar en Excel pero justo para formación y gente que no ha trabajado en este sentido con esta herramienta espero que sea un comienzo 😉

      Un saludo.

  22. vicente dice:

    Muchas, gracias por la dedicación muy buen trabajo,. tengo una consulta estoy siguendo los pasos para las formulas, pero cuando termino de hacerlo me aparece la mayoria asi; #N/A, Y ALGUNOS SI ME TIRA RESULTADO A QUE SE DEBE, GRACIAS.

  23. Juan Rojas dice:

    Iñaki nunca había encontrado alguien que tuviese tanta paciencia para explicar hasta el último detalle. Me gusta mucho este post porque es justo lo que necesito para crear en mi trabajo. Muchas gracias porque he buscado muchísimo en internet y hasta ahora encuentro algo de calidad.

    Saludos desde Costa Rica.

  24. Cristina dice:

    Sólo quería agradecerte y darte el enhorabuena por este excelente artículo.

  25. MIke dice:

    que Fregon Post muchas gracias por mostrar el camino es genial y que humildad para transmitir conocimiento!! te felicito Gracias Man!!!

Anímate y deja tu comentario