DAX: funciones de fecha

Como la gestión de fechas y sus periodos es una de las grandes potencias de Power BI vamos a ver unas cuantas funciones que nos ayudaran a detallar la información.

Vamos a datos, a la tabla calendario y vamos añadir una nueva columna

Donde ponemos

Año = Calendario[Date].[Año]

El intelisense nos ayuda a escribir todo: al escribir Date, ya podemos elegir Calendario.Date, y al poner este se despliegan distintas opciones que aprovechamos, en este caso el año.

Importante, hay que seleccionar la columna y en Modelado, Resumen predeterminado, indicar NO resumir.

Del mismo modo añadamos columnas para

Día = Calendario[Date].[Día]

Mes = Calendario[Date].[Mes]

Mes numero = Calendario[Date].[NroMes]

Trimestre numero = Calendario[Date].[NroTrimestre]

Trimestre = Calendario[Date].[Trimestre]

Y todas estas columnas que son numeros las marcaremos como No resumir

Nos quedara una tabla con todas estas columnas

Que podremos aprovechar en nuestros informes.

También crearemos columnas con las siguientes funciones que nos dan más información

Día semana = FORMAT(Calendario[Date];”dddd”)

Día semana numero = WEEKDAY(Calendario[Date];2)

Semana numero = WEEKNUM(Calendario[Date];2)

Así tenemos el día de la semana en letras, su número y el número de la semana dentro del año

Ahora vamos a crear una tabla y usar alguno de estos valores: El mes del calendario, y el importe de facturas ventas

Obtenemos una tabla con muy mala pinta, los meses NO están bien ordenados. Esto es así porque Power BI ordena alfabéticamente.

Volvamos a Datos, a nuestra tabla calendario, seleccionemos la columna Mes y Modelado, Ordenar por columna, indiquemos Mes numero

Ahora si volvemos al informe, los meses ya salen bien ordenados

Esta es una opción muy interesante de Power BI, ordenar una columna de datos por el valor de otra columna.,

Vamos a probar lo mismo con los días de la semana. Creamos una nueva tabla con Día semana e importe y obtenemos

Ahora cambiemos la ordenación en Datos, seleccionando la columna Día semana e indiquemos por Día semana numero

La tabla se ha reordenado automáticamente

Para terminar y ya que tenemos el acumulado anual y los meses vamos a crear un gráfico que nos muestre como han crecido las ventas.

En esta misma página, añadimos un gráfico de columnas agrupadas y ponemos

El grafico nos muestra los 12 meses, y tres barras de colores, una para cada año. Y vemos que van ascendiendo pues es el valor acumulado.

Es importante recordar que para todo uso de fecha, hay que referirse siempre a los campos de la tabla Calendario.

Guardemos la página como funciones de fecha

16 pensamientos en “DAX: funciones de fecha”

      1. No tengo bibliografia, busco por internet, sobre todo en ingles, leo, practico, pruebo y escribo y publico

        Si tienes alguna pregunta concreta quizas te pueda ayudar

      1. Domenec, muchas gracias. Su blog a sido excelente para las necesidades que e tenido. Felicitaqciones.

        Te contacte via correo, agradeciendote y con un par de dudas.
        Slds.

  1. Buenas noches, la opcion de formatear el nombre del mes a 3 caracteres la ingreso NombMes = FORMAT(VtasHist[Fecha].[Mes],”MMM”), pero sigue lanzando el nombre completo del mes, y ocupo tener Enero=Ene, algo malo en la funcion??? gracias

    1. Te sobra el .[Mes]
      Si usas la funcion format. hay que pasar un campo con una fecha, no una fecha.mes
      tienes que dejarlo asi:
      FORMAT(VtasHist[Fecha],”MMM”)

  2. Hola,

    Como estas, quiero calcular la diferencia de meses entre dos fechas pero no logro encontrar la manera de hacerlo, te agradecieria me puedas enviar.

    Gracias

  3. Hola buen día!
    Tengo el siguiente caso tratando Fechas.
    tengo una columna de fecha en donde con la función DAX “Max” obtengo la ultima fecha para proceder una suma de cantidades pero también quiero hacerlo con un día mas atrás osea si la máxima fecha es 31/12/2016 quiero también la del 30/12/2016 he usado lo siguiente :=MAX([FECHA])-1 Pero me resta en el 1 en los meses.
    por otro lado mis datos están con este formato DDMMAAAA pero en mi modelo de datos aparecen como MMDDAAAA
    Si tienen una idea o sugerencia les agradeceré un monto

  4. Buenas, gracias por la publicación, muy útil !! pero tengo un problemilla aplicando esto. Al ordenar por mes numero me coloca enero octubre noviembre diciembre en las visualizaciones. Es decir, para él es 1 10 11 12 2 3 4 5 6 7 8 9
    No entiendo porqué me ocurre, por si me puedes ayudar te lo agradezco.

  5. Hola que tal tus artículos son bastante buenos, e logrado a aprender mucho de aquí, pero me gustaría consultarte sobre como calcular la cantidad de días que hay en un rango de fechas sin contar sábado ni domingos, o mejor aun alguna función DAX que simule la función DIAS.LAB de excel seria de gran ayuda.
    Saludos y éxitos.

  6. Hola!! Muy interesante tu post.

    He utilizado todo lo que indicas pero aunque el formato regional del archivo y el formato de fecha está en castellano cuando utilizo la función mes me devuelve el nombre de mes en inglés. ¿Qué es lo que tengo que hacer para que en un archivo determinado me aparezca en castellano? Sólo me pasa en un archivo, en el resto me funciona bien.

    Muchas gracias

    Saludos

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *