Insights / Blog

PostGenericoTableau

Las funciones de fechas en Tableau

Probablemente has tenido que realizar operaciones con fechas en Tableau y no has sabido exactamente la sintáxis o la función de lagunas de las funciones disponibles.

En el blog de hoy, haremos un repaso a todas las funciones de fechas con ejemplos de cada una de ellas:

DATEADD

DateAdd calcula un número de días, semanas, meses, trimestres o años posteriores o anteriores a una fecha. Por ejemplo, si queremos obtener una nueva variable que nos devuelva un valor 5 días posterior a una fecha de nuestra base de datos llamada «Fecha de pedido» podríamos crear un cálculo como:

DATEADD(«day»,5,[Fecha de pedido])

Pudiendo en lugar de utilizar «week», «month», «quarter» o «year» en lugar de «day» para sumar 5 semanas, días, trimestres o años a la fecha dada. O incluso «hour», «minute», «second» si queremos trabajar con la hora para agregar o restar horas, minutos o segundos. También podemos utilizar valores negativos. Si en lugar de «5» escribiéramos «-5» restaríamos 5 días. Otra opción sería utilizar un valor dinámico también en base a otra variable de nuestra base de datos, por ejemplo:

DATEADD(«month»,[numero de meses],[Fecha de pedido])

Estos ejemplos crearán automáticamente un campo de tipo Fecha y hora. Por lo que una forma de eliminar la hora y contar sólo con fechas, sería incluir todo el cálculo en otra función DATE. Ejemplo:

DATE(DATEADD(«month»,-2, [Fecha de pedido]))

Otra opción sería cambiar el tipo de datos de DateTime a Date en el panel de datos.

DATEDIFF

Funciona de forma muy similar a DATEADD, pero calcula la diferencia entre dos fechas. Por ejemplo:

DATEDIFF(«minute»,[Fecha Login], [Fecha Logout])

Calcularía la diferencia entre la fecha inicial «Fecha Login» y la fecha final «Fecha Logout».

Se puede además añadir un parámetro al final para especificar qué dia de la semana queremos considerar como el inicio de la semana. Es decir:

DATEDIFF(«week»,[Inicio],[Final],»sunday»)

Calculará la diferencia entre las dos fechas en semanas, tomando los domingos como el inicio de cada semana.

DATENAME

DATENAME devuelve el valor, en formato texto, de una parte específica de la fecha indicada. Por ejemplo:

DATENAME(«week»,[Fecha de pedido])

Creará una nueva dimensión, con el valor numérico (1, 2, 3, 49. etc) de la semana del año de la columna Fecha de pedido, pero en formato texto.

DATEPARSE

Posiblemente una de las funciones de fecha más interesantes, ya que nos permite convertir una variable que Tableau no identifique como una fecha a una fecha propiamente dicha. Imaginemos que tenemos una columna con un texto indicando la fecha, pero que Tableau no es capaz de reconocer como una variable de tipo fecha llamada «Fecha sin formato», ya que tiene este formato 15**09**2019.

Podríamos crear un nuevo campo y convertir esta variable en fecha con la siguiente fórmula:

DATEPARSE(«dd**MM**YYYY»,[Fecha sin formato])

Podemos así identificar cada uno de los elementos de una fecha e indicar el número de posiciones o caracteres a Tableau para que formatee la columna.

Con «Y» identificaremos digitos de año. Si por ejemplo el año sólo tiene 2 dígitos, utilizaremos YY y si tiene 4 dígitos utilizaremos YYY.

Con «M» identificaremos el mes. Por ejemplo MM identificará 2 dígitos del mes. MMM identificará «Sep» como septiembre (en inglés) y MMMM identificará el nombre en inglés del mes, como «September».

Con «w» (minúscula) identificaremos semanas del año. así ww identificará un valor «35» como la semana 35 del año.

«d» (minúscula) identifica días del mes. Así «dd» será capaz de identificar dos dígitos del día del mes (de 0 a 31).

Una «D» mayúscula identificaría días del año de 1 a 365: como por ejemplo usar DDD si tenemos un valor que es el número del día del año.

Con «HH» identificaríamos horas en formato 0-24 horas y con «hh» (minúscula) en formato 0-12 horas.

Con «m» (minúscula) identificaríamos los minutos. Usando por ejemplo mm para identificar dos dígitos de minutos.

De forma similar funcionaría «s» para identificar los segundos.

DATEPART

DATEPART funciona de forma muy similar a DATENAME pero devolviendo el valor de la fecha indicado en formato numérico, no como texto. Por ejemplo, si queremos extraer el mes de una fecha, podemos crear un cálculo como:

DATEPART(«month»,[Fecha])

Si una fila concreta de nuestra columna «Fecha» contiene la fecha «18/01/2019» el cálculo devolverá el número 1 ya que se trata del mes de dicho registro.

DATETRUNC

DATETRUNC permite fijar una fecha a un nivel determinado. Imaginemos que queremos convertir todas las fechas de un mes concreto al dia inicial del mes, ya que queremos por ejemplo para todas las fechas de Enero de 2019, tener el valor 1 de Enero de 2019 independientemente del día concreto que tengan en nuestra base de datos. Así:

DATETRUNC(«month»,[Fecha])

Creará una nueva variable en la que toda los valores en la columna «Fecha» entre el 1 de enero de 2019 y el 31 de enero de 2019 tendrán el valor «01/01/2019». Y todas las fechas entre el valor 1 de febrero de 2019 y 28 de febrero de 2019 tendrán el valor «01/02/2019» y así sucesivamente.

DAY | MONTH | WEEK | QUARTER | YEAR

La función DAY devolverá el día del mes de una fecha.

DAY([Fecha])

La función MONTH devolverá el valor del mes del año:

MONTH([Fecha])

De forma similar, las funciones WEEK, QUARTER y YEAR devolverán la semana del año, el trimestre del año y el año de las fechas indicadas:

WEEK([Fecha]) | QUARTER([Fecha]) | YEAR([Fecha])

Existen funciones similares para obtener trimestres, semanas, días de la semana y años utilizando el calendario ISO8601. Son las funciones ISOQUARTER, ISOWEEK, ISOWEEKDAY, ISOYEAR.

NOW & TODAY

Las funciones NOW() y TODAY(), escritas sin ningún parámetro y tan solo con un símbolo de abrir y cerrar paréntesis sin nada entre medias, nos devolverán las fechas del momento actual (con horas, minutos y segundos) si utilizamos la funcion NOW() y la fecha del día actual si utilizamos la función TODAY().

ISDATE

ISDATE comprueba si un valor o una variable tiene un formato de fecha válido para Tableau. Por ejemplo:

ISDATE([Columna A])

Comprobará si los valores de la columna A sin valores válidos de fecha (y devolverá el valor «TRUE») o si por el contrario no son fechas válidas, devolviendo el valor «FALSE».

Abajo incluyo un ejemplo de lo que devolverían varios cálculos utilizando estas funciones, con Order ID, Fecha de pedido y Fecha de envío como variables de nuestra base de datos:

Últimos post

Visualización de datos, ejemplos

Cultura de datos: ¿por qué es tan importante?

Qué es SQL y para qué sirve

¿Qué estás buscando?

¿Quién trata tus datos?

The Information Lab Spain, S.L.
(en adelante, “Titular“)

¿Por qué tratamos los datos que te pedimos?

Se tratan tus datos para poder prestarte los servicios solicitados. + info

¿Cuál es la legitimación para este tratamiento de tus datos?

Estos datos son necesarios para llevar a cabo la resolución de consultas que puedas plantearnos o para la prestación de los servicios que se hayan solicitado a través del Sitio Web. + info

¿Se van a hacer cesiones o transferencias con tus datos?

Tus datos no serán cedidos a terceras empresas. + info

¿Cuáles son mis derechos?

El interesado tiene derecho a ejercitar su derecho de:
Acceso, rectificación, supresión, oposición, portabilidad de los Datos, limitación del Tratamiento y a no ser objeto de decisiones automatizadas individualizadas. + info

¿Tienes dudas?

Tanto si tienes alguna o sugerencia como si quieres darte de baja ponte en contacto con nosotros enviando un email a la siguiente dirección: info@theinformationlab.es