Categoría: Tableau

Tableau Postgres Repository: Como ver los grupos, usuarios y el acceso más reciente de Tableau Server

En los últimos meses he visto cada vez más interés en analizar y obtener valor adicional del PostgreSQ Repository de Tableau Server. La base de datos donde Tablau Server almacena datos de las interacciones de los usuarios, actualizaciones de extractos, workbooks, Sites, projectos, usuarios y mucho más. Si quieres saber más sobre esta base de datos y como poder acceder a ella, echa un vistazo al último blog que escribí al respecto.

Hoy mostraré como podemos crear una fuente de datos que nos devuelva el listado completo de Sites, grupos y usuarios que existen en nuestro Tableau Server así como la fecha del último acceso de cada usuario. Una manera muy útil de gestionar usuarios y llevar un control de aquellos que no están usando el servicio, en el caso de que tengamos un número de licencias limitadas y queramos utilizar dicha información para mover ciertas licencias de unos usuarios, por ejemplo los que no se han conectado en X meses, a otros.

(más…)

Tableau PostgresSQL database: Como monitorizar y analizar Tableau Server

Recientemente hemos estado recibiendo en The Information Lab bastantes preguntas sobre como se puede monitorizar y analizar el uso de Tableau Server, como crear visualizaciones que ayuden gestionar usuarios, grupos y permisos, y en definitiva varias dudas sobre el uso de la base de datos de Tableau Server que permite analizar el uso de Tableau Server.
Se trata de un tema de interés creciente especialmente en empresas con un uso más maduro de Tableau y Tableau Server ya que una vez se dispone de la tecnología y los usuarios empiezan a estar familiarizados con ella es cuando surge la necesidad de saber cómo está funcionando, qué uso se le está dando y cómo se puede mejorar, así como para poder anticipar posibles problemas de rendimiento debido al crecimiento de la plataforma y de ese modo destinar más recursos a Tableau Server.

Tableau Server Repository: PostgreSQL

Uno de los componentes principales de Tableau Server es el Repository. Se trata de una base de datos de PostgreSQL donde se almacenan metadatos del servidor: desde el nombre de los proyectos, workbooks, usuarios, grupos, log ins, acceso a dashboards, suscripciones, procesos de actualizacion de fuentes de datos…. Prácticamente cualquier cosa que sucede en Tableau Server queda almacenada en la base de datos del Repository.
La siguiente pregunta es evidente: ¿Se puede acceder a toda esa información? Si. Por defecto el acceso a la dicha base de datos no está habilitado, pero podemos habilitarlo desde el servidor.

Habilitar acceso al Repository

¿Cómo podemos habilitar el acceso a dicha base de datos? Es bastante sencillo. Basta con, en el servidor de Tableau Server (el primario en el caso de que tengamos una instalación con múltiples nodos), ejecutimos un símbolo de sistema (command prompt en inglés) y ejecutemos los siguientes comandos. En el segundo de los comandos tendremos que especificar si queremos habilitar el usuario tableau o readonly (mi recomendación es habilitar el acceso con el usuario readonly que es el que tiene acceso a todas las tablas) y sustituiremos password por la contraseña que queramos utilizar para acceder a la base de datos con el usuario espeficiado:

  1. cd "C:\Program Files\Tableau\Tableau Server\2018.1\bin"
  2. tabadmin dbpass --username readonly password

A continuación tendremos que reiniciar el servidor con el comando:

tabadmin restart

Acceder al PostgreSQL Repository

Una vez se reinicie Tableau Server ya podremos acceder a la base de datos del Repository a través de Tableau Desktop utilizando el conector de PostgreSQL y especificando los detalles de la conexión: la URL será la dirección URL de Tableau Server, el puerto por defecto es el 8060 y la base de datos se llama workgroup. El usuario será el que hayamos habilitado (tableau o readonly) y la contraseña la que hayamos especificado en el paso anterior.

Si hemos realizado los pasos correctamente, veremos la base de datos workgroup con todas las tablas disponibles en el repository de Tableau Server.

Consideraciones al analizar el Repository de Tableau Server

Tenemos que tener en cuenta que se trata de una base de datos con muchísima información y que dependiendo de los análisis que queramos realizar tendremos que dedicar el tiempo suficiente a asegurarnos que estamos realizando las consultas correctas. Para obtener más información sobre qué información está disponible en cada una de las tablas y de los campos de las mismas, recomiendo utilizar el diccionario de datos de Tableau como referencia, disponible en este enlace.
Además, recomendaría utilizar siempre extractos de datos en lugar de conexiones en vivo ya que si realizamos muchas querys sobre la misma podría tener un impacto en el rendimiento de Tableau Server. Si queremos realizar algún informe para monitorizar el uso de Tableau Server y que sea accesible para admnistradores del servidor, lo mejor es que una vez tenemos nuestra fuente de datos preparada, creemos un extracto que se actualice en Tableau Server a horas en las que sepamos que el uso del servidor es bajo.
Los informes disponibles en la pestaña de Status de Tableau Server utilizan esta base de datos, por lo que habilitando el acceso a la misma podremos crear nuestras propias vistas de administrador para monitorizar cualquier aspecto de Tableau Server en el que estemos interesados.

Blogs, libros y cursos para aprender a usar Tableau

Recientemente varias personas me han preguntado a través de emails o Linkedin por formación en Tableau. Por lo que voy a hacer un breve repaso a lo que en mi opinión son los blogs, libros y cursos más interesantes si queremos aprender a usar Tableau desde cero o si queremos llegar al siguiente nivel tras unas semanas o meses de uso.

Mi primer consejo y especialmente al principio, es tratar de usarlo todos los días aunque sea un rato. Lo más importante al principio es sentirse cómodo y entender realmente lo que Tableau hará en base a nuestras acciones con el programa. Si lo usamos al principio un par de días y luego no volvemos a abrir Tableau en un mes, seguramente nos frustraremos porque será como empezar desde cero.
El segundo consejo general es acostumbrarnos a usar Tableau en inglés ¿Por qué? Porque la mayoría (y los mejores) blogs, videos, libros y recursos disponibles para solucionar dudas y aprender a usar Tableau están en inglés y harán referencia a las funcionalidades de Tableau en inglés, por lo que, por poner un ejemplo, siempre será más fácil buscar información sobre Level of Detail expressions o LOD expressions en inglés que utilizando el acrónimo español para Expresiones Nivel de Detalle.

Libros

¿Eres de los que prefieres aprender con un libro que poder seguir? mis tres principales recomendaciones son las siguientes:

Tableau Your Data de Daniel G. Murray.

En mi opinión uno de los libros más completos, y aunque la segunda edición ya tiene aproximadamente un año, para aprender Tableau desde cero y todas sus funcionalidades salvo algunas más recientes de las últimas actualizaciones es un libro más que recomendable.

 

 

 

 

Practical Tableau de Ryan Sleeper.

Uno de los mejores usuarios de Tableau y además el libro cuenta con la ventaja de que se ha publicado muy recientemente. Estupendo para aprender los primeros pasos pero también para ir un paso más allá con consejos y trucos de uno de los usuarios más avanzados de Tableau.

 

 

 

 

Learning Tableau de Joshua Milligan.

Tal vez algo menos actualizado que los otros dos pero sigue siendo una estupenda referencia para comenzar a usar Tableau desde cero y comprender las funcionalidades más importantes. Fácil de seguir y con muy buenas explicaciones.

 

Blogs

Probablemente la principal fuente de información y soluciones para aprender y mejorar en Tableau. Algunos de los mejores en mi opinión son:

Cursos

Para los que os guste más el formato tradicional de un aula y si no tienes inconveniente en gastarte algo más de dinero o incluso si estas interesado en formarte no solo tu sino formar también a un equipo, sin duda echaría un vistazo a los cursos de formación oficiales de Tableau. Son una muy buena forma de aprender en un par de días lo que tal vez llevaría varias semanas y además con explicaciones detalladas y evitando los quebraderos de cabeza de tener a veces que buscar nosotros mismos la información. En España se imparten cursos cada trimestre en Madrid y Barcelona, puedes consultar toda la información en esta web. Si estas en Londres, en The Information Lab ofrecemos también un día gratuito en el que impartimos los fundamentos de Tableau pudiendo encontrar más información en este enlace.

Videos

Si lo que nos gusta es aprender a través de videos, hay varios blogs que incluyen para algunos ejemplos videos que son bastante fáciles de seguir. Si queremos algo más estructurado, los videos oficiales de Tableau son una estupenda forma de aprender especialmente al principio. De hecho fueron los que yo utilicé para aprender hace tres años y medio y durante los primeros pasos son una muy buena fuente de referencia. Están estructurados por capítulos y además suelen ser de corta duración, por lo que podemos aprender poco a poco cada día. En este enlace tienes los videos donde puedes aprender a través de videos gratuitos los aspecto fundamentales de Tableau.

En el caso de que te interese algo más detallado y estructurado, tienes también disponible los servicios de elearning oficiales de Tableau, que ofrecen formación similar a los cursos pero más económicos y que te permiten más flexibilidad en cuanto a cuando y como realizar la formación.

Forums

Aunque no están enfocados tanto a formación en sí, son de gran utilidad para buscar información y preguntar dudas a otros usuarios. Son muy útiles cuando quieres contar con el apoyo y consejo de la amplia comunidad de Tableau. También hay un foro dedicado especialmente al grupo de usuarios de Madrid que gestiono junto a Irene Yusta en el que estaremos encantados de echar una mano en todo lo que podamos y es una muy buena forma de empezar a formar parte de la comunidad de Tableau.

Tableau Public y Twitter

Por último aunque desde luego no menos importante, trataría de seguir a la comunidad de Tableau en Twitter, donde muchas veces se encuentran ejemplos, blogs y videos que de otra forma tal vez no descubriríamos. Puedes además hacer preguntas y preguntar dudas sin problema ya que la comunidad de Tableau es de las más amigables y dispuestas a ayudar que he visto.
Y por supuesto no olvidar Tableau Public como fuente de inspiración, ayuda, buscar nuevos retos y aprender nuevos técnicas. Podremos ver visualizaciones que haya realizado cualquier persona, descargarlas y ver cómo han creado un dashboard o un gráfico, los cálculos que han hecho, etc. Y de este modo rehacer lo que otros han hecho para entender mejor las posibilidades de Tableau.

Cómo usar LODs para calcular medias ponderadas

Seguro que no soy el único que al que le costó tiempo perderles el miedo a los cáculos LOD en Tableau cuando aparecieron por primera vez. Me llevó un tiempo considerable acostumbrarme a utilizarlos en el día a día y sacarles partido pero ahora soy cada día más fan y les encuentro más y más usos. No solo porque te permiten hacer cosas en Tableau que antes no podías, que también, pero sobre todo porque permiten realizar cosas mucho más rápido y sencillo que anteriormente. Hoy voy a compartir un ejemplo de estos últimos de como usar un cálculo LOD usando la función EXCLUDE para obtener el mismo cálculo que en una media ponderada.

He estado trabajando los últimos dos días en una visualización sobre la polución en Madrid usando datos públicos del Ayuntamiento (puedes consultar los datos en este enlace). Concretamente datos de la presencia de dióxido de nitrógeno en la atmósfera en distintas areas de Madrid. Cada registro en la base de datos contiene las medidas de las 24 horas del día para cada día del año y cada estación de medición. Tras una rápida preparación de los datos en Alteryx para darles una estructura más fácil de usar en Tableau (cada hora no en distintas columnas sino en una fila distinta), dar un formato a la fecha y añadir varios campos de referencia como la latitud y longitud de la estación remota, el nombre de la misma, la unidad de medida del dióxido de nitrógeno, etc. Y tras un par de dias trabajando en la visualización, este es el resultado final.

Pero para este post quiero centrarme en una parte concreta del dashboard. Esta en concreto:

El gráfico muestra la media de dióxido de nitrógeno en Madrid cada hora (de 12 de la madrugada a 11 de la noche – de izquierda a derecha -) los días de diario (círculos negros) y fines de semana (círculos verdes). La línea conectando ambos puntos es símplemente para resaltar la diferencia entre ambos valores y la línea horizontal es la media a dicha hora. Se puede ver que la media de cara hora es siempre más cercana a los valores de los dias de diario debido a que cada semana tiene 5 dias de diario y 2 de fines de semana. La media por tanto no es solo el la suma de los dos puntos divida entre dos, sino que es una media ponderada en base al número de días en cada marca ¿Cómo podemos crear ese cálculo de una manera rápida y sencilla?

Antes de explicar el sencillo cálculo que requiere, voy a explicar brevemente cómo crear el gráfico:

  1. Usando la fecha disponible (la fecha de la medición de contaminación) para crear un nuevo campo que me devuelva el día de la semana. Hacemos click derecho en el campo > Create > Custom Date y seleccionamos Weekdays como date part.
  2. Creamos un nuevo campo agrupando los valores del campo que acabamos de crear. El primer grupo correspondería a los días entre semana (lunes a viernes) y el segundo a los fines de semana (sábado y domingo).
  3. Ahora queda construir el gráfico, que es bastante sencillo. Incluimos la hora de nuestra fecha en columnas, nuestro valor en filas dos veces, uno con el tipo de marca = línea y el segundo con el tipo de marca = círculos con el campo que hemos creado en el paso número 2 en la tarjeta de Color.

Tenemos casi la visualización que queremos. Pero si añadimos una línea de referencia que sea la media para cada celda desde el menú de Analytics, obtenemos lo siguiente:

¿Es correcto? bueno, parece que Tableau lo que está haciendo en este caso es sumar el valor de los días entre semana y el de los fines de semana, y dividiendo dicha suma entre 2 ¿Pero es esa realmente la media real de dióxido de nitrógeno de cada hora? Vamos a crear otro gráfico para ver la media en cada hora y comprobarlo.

Los valores son parecidos… pero no exactamente iguales ¿Por qué? Porque hay 5 días entre semana y 2 días de diario, por lo que la media de todos los días de la semana no es la que Tableau realiza por defecto cuando incluimos la media directamente como línea de referencia. Queremos tener en cuenta el hecho de que existe un mayor número de días de diario en la semana a la hora de calcular la media. Es decir, si tenemos los valores para dias de diario y fines de semana, queremos la media ponderada por el número de días en cada una de esas dos categorías.

¿Cómo podemos hacer esto en Tableau? Antes de existir los cálculos LOD tendríamos que calcular el número de días dentro de cada grupo, y utilizarlo como divisor por ejemplo. Pero existe una manera mucho más elegante, rápida y sencilla con un LOD usando EXCLUDE. si creamos un campo calculado excluyendo el campo agrupado que hemos creado anteriormente y calculamos la media de dicho valor así:

AVG({EXCLUDE [Weekdays Group] : AVG([Value])})

Incluímos dicho cálculo en el campo de detalle de la visualización y utilizamos dicho campo como una línea de referencia, obtenemos lo siguiente:

Si comparamos los valores de esta línea de referencia con los del gráfico de barras que hemos creado anteriormente, veremos que son iguales. El cálculo LOD, en lugar de calcular la media de dióxido de nitrógeno al nivel de agregación que tenemos en la visualización (el tipo de día de la semana) está excluyendo dicho nivel y calculando la media a un nivel menos agregado. Es decir, está comportándose como si realizaramos una media ponderada, por lo que la línea de referencia se encuentra más cercana a los valores de los días entre diario al tener 5 de los 7 días de la semana y obtenemos el valor que queríamos de una manera sencilla y rápida.

Gráficos en ventanas emergentes

Recien llegado a Londres de nuevo tras una semana en la conferencia de Tableau en Las Vegas (el año que viene será en Nueva Orleans) desde se presentaron algunas de las novedades que tendrán las futuras novedades de Tableau. Una de las más interesantes y que mucha gente llevaba tiempo esperando es la posibilidad de incluir gráficos en ventanas emergentes y que se puede ya probar desde la versión beta disponible.

Cómo añadir gráficos en ventanas emergentes

Lo mejor de todo es que no podría ser más sencillo. Supongamos que queremos analizar tenemos una empresa de venta de todo tipo de productos (si, vamos a utilizar otra vez el fichero de datos Superstore de Tableau), y queremos visualizar un mapa con el beneficio en cada Estado.

 

Pero quedemos añadir un gráfico adicional, de forma que cuando pasamos el ratón sobre cada Estado, podamos ver un gráfico en el que analicemos el beneficio por categoría de producto para ese Estado concreto.

Lo primero que tenemos que hacer es crear dicho gráfico como lo haríamos normalmente, visualizando el beneficio por categoría para el conjunto de datos.

A continuación, vamos a nuestro primer gráfico, y hacemos click en la ventana emergente (tooltip). En el menú desde donde podemos añadir campos a nuestra ventana emergente hay ahora una nueva opción llamada sheets donde podemos añadir cualquier visulización que hayamos creado.

Si volvemos al gráfico de beneficio por categoría, veremos que Tableau ha creado automáticamente un nuevo tipo de filtro basado en dicha ventana emergente.

Ahora, cuando pasemos el ratón sobre cualquier estado, veremos el beneficio por categoría que se filtrará automáticamente para dicho Estado.

No solo eso, sino que puedes añadir más de un gráfico en la ventana emergente y todavía más información adicional, que tal vez no quieras incluir en el cuadro de mando pero que si resulte interesante para contextualizar nuestro análisis.

LODs para filtrar dos niveles distintos de detalle o agregación

Por defecto, en ocasiones los filtros en Tableau no funcionan como podríamos en principio esperar. Un claro ejemplo en este sentido y que me he encontrado en varios clientes es cuando queremos filtrar, en base a una medida agregada, dos gráficos con distintos niveles de detalle. Vamos a ver como podemos solucionar esto con un sencillo cálculo LOD.

Ejemplo

Veamos un ejemplo para que quede más claro. Tenemos un dashboard con dos gráficos. Uno muestra el beneficio, las ventas y el margen de beneficio (la suma del beneficio – SUM([Profit]) – dividido por la suma de ventas – SUM([Sales]) -)  de nuestra empresa para cada una categoría de producto disponible. El segundo, muestra esas mismas variables en una tabla, pero para cliente de la empresa.

Ahora supongamos que queremos filtrar el dashboard en base al margen de beneficio de cada cliente. Tal vez queramos analizar los datos sólo de clientes con un margen positivo, o un margen negativo. Si incluimos el margen de beneficio en filtros y aplicamos dicho filtro a los dos gráficos ¿Qué ocurre?

 

 

Como podemos ver en la imagen de arriba si nos fijamos en los totales includos en la parte superior de cada gráfico, no estamos obteniendo los mismos resultados ¿Por qué? Al fin y al cabo estamos utilizando el mismo filtro para ambos gráficos.

El motivo es el distinto nivel de detalle de cada uno. Nuestro filtro Profit Ratio utiliza el cálculo SUM([Profit]) / SUM([Sales]). Pero para el gráfico de barras el nivel de detalle es la subcategoría (es decir, Profit Ratio nos devuelve dicha medida para cada una de las subcategorías), mientras que la tabla el nivel de detalle es el cliente (Profit Ratio por cliente).

Por tanto, cuando filtramos valores con un Profit Ratio de menos del 10%, estamos filtrando por un lado categorías con un Profit Ratio inferior a dicha cifra, mientras que en la tabla estamos filtrando clientes con un Profit Ratio inferior a dicha cifra. Los resultados, por tanto, no tienen nada que ver.

Utiliza un cálculo LOD

No contamos con la dimensión cliente en nuestro gráfico de barras, y además si lo incluimos en el nivel de detalle, no tendremos una barra para cada subcategoría, sino que cada una de estas se dividirá, mostrando una marca para cada uno de los clientes ¿Cómo podemos solucionar esto y filtrar, para ambos gráficos en base al margen de beneficio de los clientes?

 

Aquí es cuando utilizar LOD es extremadamente útil ya que lo que queremos no es filtrar en base al margen de beneficio. Queremos filtrar en base al margen de beneficio de cada cliente. Es decir, lo que queremos es una variable que fije el cálculo del margen de beneficio para cada cliente independiente del nivel de detalle que tengamos en la visualización. Es decir:

 

Profit Ratio by Client = { FIXED [Customer Name] : [Profit Ratio] }

 

Recordad que al utilizar un cálculo LOD debemos utilizar una medida agregada – SUM([Sales]) o AVG([Sales]) por ejemplo – pero en este caso particular, al ser Profit Ratio un cálculo ya agregado – SUM([Profit]) / SUM([Sales]) – nuestro nuevo cálculo funcionará perfectamente.

 

Perfecto, ahora ya tenemos un cálculo que nos devuelve el margen de beneficio a nivel de cliente. Por lo que utilizaremos este nuevo cálculo como filtro. Pero ojo, porque si simplemente arrastramos el nuevo cálculo a filtros, por defecto estará filtrando utilizando la SUMA del nuevo cálculo. Lo cual funcionará sin problemas en nuestra tabla con el nivel de detalle del cliente, pero no en nuestro gráfico de barras, ya que lo que hará será sumar el margen de beneficio de cada uno de los clientes incluidos en las ventas de esa categoría.

 

Para asegurarnos de que el filtro funciona correctamente, arrastamos haciendo click con el botón derecho del ratón nuestra nueva medida a filtros, y seleccionamos ‘All Values’ para que el filtro muestre valores sin agregarlos al nivel de la subcategoría.

 

 

Comprobando los resultados

Si ahora utilizamos este filtro en los dos gráficos, los totales coinciden, porque estamos especificando a Tableau que el cálculo del margen de beneficio sea siempre al nivel de detalle del cliente, y estamos utilizando dicho filtro para ambos gráficos.

 

 

Ahora, incluso aunque filtremos valores inferiores al 10%, vemos que contamos aun con categorías con un margen de beneficio menor. Ya que Tableau no está filtrando para el gráfico de barras las categorías que, en total, tienen un margen de beneficio menor al 10%, sino que está filtrando los clientes con un margen de beneficio superior al 10% que tienen alguna venta de la subcategoría en cuestión.

Vemos además como las cifras totales de beneficio, ventas y margen de beneficio cuadran en ambos gráficos, lo que demuestra que estamos filtrando exactamente los mismos datos en ambos casos.

Líneas de referencia dinámicas en base a filtros

Recientemente me han planteado varias preguntas sobre lineas de referencia, concretamente sobre cómo mostrarlas u ocultarlas en determinadas ocasiones. Como por ejemplo permitir que el usuario las muestre u oculte o que sólo se muestren cuando ciertos valores han sido selecciones en un filtro. Así que he decidido escribir un breve artículo sobre como podemos dar mayor dinamismo a nuestras líneas de referencia en base algunos de estos casos.

Líneas de referencia sólo para ciertos valores

Comenzaré por el ejemplo más sencillo. Imaginemos que queremos mostrar una línea de referencia, pero no para todos los valores de la dimensión que estemos utilizando, si no sólo para unos pocos. Por ejemplo, si queremos visualizar las ventas por país, y mostrar una línea de referencia sólo para los países de una determinada región. Supongamos que tenemos el siguiente gráfico:

 

 

Y que queremos mostrar únicamente líneas de referencia para los países de la zona Sur (South), para la cual tenemos un objetivo de ventas de 250.000 (el mismo para los tres países de dicha zona – Italia, España y Portugal). Bastaría con crear un campo calculado como el siguiente:

IIF([Region]=’South’,250000,NULL)

Arrastrar el campo calculado a la pestaña de Detalle (Detail), en este caso particular, calculado como la media, no la suma. Y a continuación añadir la línea de referencia desde el menú de Analytics para cada celda.

Y ya tendríamos nuestra línea de referencia para los países de la región Sur, mientras que el resto de países no cuentan con ninguna línea de referencia. Podríamos incluso eliminar la dimensión Región de la pestaña de color ya que no la necesitamos.

Mostrar u ocultar líneas de referencia

¿Y si lo que queremos es que el usuario pueda elegir si quiere ver o no las líneas de referencia? Podemos hacerlo utilizando un parámetro y un campo calculado.

Si no has utilizado nunca Parámetros en Tableau te recomiendo que eches un vistazo a este post. Pero en definitiva lo que vamos a hacer es crear un parámetro con un valor binario (verdadero / falso, o boolean) que he llamado Reference Lines, y un campo calculado que he llamado Reference Lines (show/hide) como este, que en definitiva lo que hará será mostrar como línea de referencia el valor de la suma de ventas con un incremento del 10%:

IIF([Reference lines],SUM([Sales])*1.10,NULL)

En el siguiente video puedes ver la funcionalidad de las líneas de referencia creadas con este método:

Líneas de referencia para un único y exclusivo valor

¿Y qué ocurre cuando queremos mostrar líneas de referencia para un valor concreto de una dimensión utilizando un filtro? Supongamos que tenemos una medida en nuestra base de datos que se llama Target Spain, la cual indica el target de ventas para España. En base a los ejemplos anteriores, podríamos de primeras optar por crear un campo calculado que nos devuelva dicha medida cuando seleccionamos España, como por ejemplo: IIF([Country]=’Spain’,[Target Spain],NULL).

El problema con dicho campo calculado, es que si tenemos un filtro en el que podemos seleccionar más de un país, el valor de las ventas será la suma de todos los países seleccionados, pero el valor del objetivo de ventas será únicamente el de España, pudiendo dar lugar a confusión.

Podemos solucionar esto modificando ligeramente el campo calculado, de forma que nos devuelva los valores única y exclusivamente cuando sólo España, y ningún otro país adicional, esté seleccionado.

¿Cómo? Muy sencillo. Con la función COUNTD para contar el número de países distintos en el detalle de nuestra visualización. Eso si, al tratarse de una función agregada, tendremos que agregar también la medida Target Spain y la dimensión Country:

IIF(ATTR([Country])=’Spain’ AND COUNTD([Country])=1,SUM([Target Spain]),NULL)

Así, la medida Target Spain (la cual utilizaremos como línea de referencia) sólo aparecerá cuando se haya seleccionado España y el número de países de nuestra visualización sea igual a 1. Es decir, únicamente se haya seleccionado un país, y este ha de ser el que hemos indicado al inicio de la condición.

Sin líneas de referencia al seleccionar dos países:

Con líneas de referencia cuando seleccionamos sólo España:

El conector a archivos PDF de Tableau 10.3

Artículo publicado originalmente en la web the The Information Lab.

Si estás al tanto de las novedades de Tableau en futuras versions, probablemente conoces el conector a archivos PDF que estará disponible en la versión 10.3 de Tableau junto a otra serie de novedades que puedes consultar en esta web.

Personalmente, el conector a PDF es una de las novedades que más interés me han despertado, especialmente porque he sufrido en anteriores trabajos el calvario que supone extraer datos de archivos PDF. Así que estaba deseando poder ver cómo funciona este nuevo conector, sus posibilidades y cómo de preciso es. Si estás interesado en probar funcionalidades de futuras versions de Tableau, te recomiendo registrarte en el programa de Pre-Release y ser de los primeros en conocer futuras novedades de Tableau.

Cómo conectarse a archivos PDF

Una vez has instalado la versión beta de Tableau 10.3, conectarse a archivos PDF es muy sencillo, ya que Tableau ha añadido dicho conector como una opción adicional en la ventana principal bajo la sección «conectar a un archivo».

Tan sólo tenemos que hacer click en la opción PDF File y aparecerá una nueva ventana donde podremos seleccionar el archivo PDF del que queremos extraer datos. A modo de ejemplo, realicé una rápida busqueda en Google the informes en PDF y encontré este informe sobre competitividad del Foro Económico Mundial que parecía un ejemplo perfecto para probar el nuevo conector. Una vez que hemos seleccionado el archivo al que queremos conectarnos, aparecerá una nueva ventana donde tendremos que especificar si queremos escanear todas las páginas del documento, una única página o un rango de páginas.

Escanear una tabla de datos

Este PDF en particular cuenta con muchas páginas de texto, así que tras un primer vistazo al PDF voy a conectarme a una única página, concretamente a la página 22 que es la primera que contiene una tabla de datos. Concretamente se trata de un listado de países, su relación con la UE y PIB:

En caso de que hayamos cometido un error y no nos hayamos conectado a la página correcta del documento, siempre podemos hacer click derecho en la conexión y seleccionar Rescan PDF file… para elegir una página distinta del documento. Lo que hace muy sencillo probar el aspecto que tendrán en Tableau diferentes páginas de un documento en PDF.

Aún tratándose en este ejemplo concreto de una tabla de datos bastante sencilla, es una grata sorpresa ver lo bien que Tableau identifica y reconoce todos los datos de la tabla, sin mostrar el título de la tabla o el texto que aparece en la parte inferior de la misma. El único pequeño problema que destacaría con esta tabla en concreto es que las cabeceras no las identifica correctamente y que incluye dos filas únicamente con el texto «EU Candidate countries» y «Comparator countries».

Pero es precisamente con este conector en concreto donde la función Data Interpreter de Tableau es nuestro mejor aliado. Basta con hacer click en la opción Use Data Interperter y Tableau identifica que la primera fila de nuestra tabla son las cabeceras de cada una de las columnas. Ahora sólo hay que ecidir qué hacer con esas categorías que Tableau lee como parte de la tabla y que no contienen más información. Es aquí cuando los filtros de base de datos pueden ayudarnos a terminar de limpiar la tabla para que quede totalmente a nuestro gusto.

Si estuviera interesado en filtrar esas dos columnas que he mencionado, bastaría con añadir un filtro de base de datos que excluya todos los registros con un valor nulo en el campo Status/Relationship with the EU. Si por el contrario prefiero filtrar todos los países de esas dos categorías concretas y analizar sólo países de la UE, podría excluir todos los registros que tengan un valor nulo en el campo EU Code. En este caso particular, quiero analizar sólo países de la UE, así que voy a optar por la segunda opción.

Ahora podemos empezar a visualizar los datos, por ejemplo ver el PIB por país, colorear las barras según el año en el que cada país se unió a la UE.

O tal vez estamos interesados en añadir una dimensión adicional y separar los países en base a si son miembros de la UE o también cuentan con el Euro como moneda nacional.

Se acabó lo de copiar manualmente datos de archivos PDF a ficheros Excel!

Escanear páginas con texto y datos

¿Pero cómo se comporta el conector a PDF cuando escaneamos páginas que contienen texto además de tablas de datos? Vamos a ver que ocurre cuando nos conectamos a la página 32 del documento, la cual contiene un 90% texto y cuenta con una pequeña tabla de datos.

Cuando nos conectamos a la página 32, Tableau identifica dos tablas, la segunda corresponde a la sección de notas al final de la página (no estamos interesados en visualizar eso) así que nos conectaremos a la primera tabla.

De nuevo los datos no son 100% correctos, pero es bastante preciso. Necesitamos filtrar ciertos valores y un par de ajustes adicionales para obtener la tabla tal como la queremos. En este caso vamos a desmarcar la opción que determina que la primera fila contiene el nombre de las columnas y a continuación las renombraremos. Ocultamos la última columna ya que no contiene ninguna información de utilidad, y por últimos filtramos las filas que contienen valores nulos. Este es el resultado:

Datos preparados y listos para visualizarlos en Tableau. Con el beneficio adicional de que puedo utilizar cada conexión a una hoja de un archivo PDF como una base de datos independiente y puedo crear dashboards con tantas páginas de uno o varios documentos PDF distintos. Y reduciendo de forma importante el tiempo dedicado a copiar y pegar manualmente datos de archivos PDF a hojas de Excel.