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
Hola, me podrias regalar la fuente de donde sacaste esto?
Parece mal traducido o mal redactado; pero es lo que necesito
Gracias
Tal vez suena un poco fuerte, pero me refiero a que me regales )Si tienes) un poco de bibliografia. Slds.
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
Hola,
En mi trabajo se trabaja por periodos, los informes se hacen cada 4 semanas calendario, por lo que tienen 13 periodos. De casualidad tienes alguna de idea de como poder hacer periodos de 4 semanas en una tabla calendario.
Crea columna num Semana
Num Semana = WEEKNUM(Calendario[Date],2)
Crea columna Periodo
Periodo = ROUNDUP(Calendario[Mes]/4,0)
Lo he redactado yo
Hay que partir de la entrada anterior
https://www.artesaniadelsoftware.com/2016/06/30/funciones-de-inteligencia-de-tiempo/
o usar la entrada
https://www.artesaniadelsoftware.com/2017/02/10/calendario-rapido-para-tu-power-bi/
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.
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
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”)
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
Usa la funcion DATEDIFF Function https://msdn.microsoft.com/en-us/library/dn802538.aspx
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
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.
Asegurate que el mes numero esta en formato Numero, no texto
Hola Domenec,tienes algún ejemplo en dax que haga lo mismo que la función Dias.Lab de Excel ?
Saludos
hola buen dia,
que función remplaza dias.lab.intl en power bi
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.
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
Hola, muchas gracias por compartir tu manual. He generado mi tabla calendario y agregué la columna, mes en número, año y bimestre pero cuando quiero utilizar éstos campos en la visualización me trae un número. ¿ Qué estoy haciendo mal? Help
Buenas, no va totalmente con el tema, pero acabo de comenzar con el magnífico uso de esta APP. En LOOKUPVALUE no es posible extraer una fecha de una tabla relacionada con la que estamos trabajando. Me aparece «A table of multiple values was supplied where a dingle value was expected». Gracias!
Buenas tardes,
Espero puedan ayudarme. Estoy trabajando con el Power BI Desktop y utilizando la opción ,[Month] los meses me salen en inglés. No puedo instalar el Power BI en Español porque no me sale dicha opción en la web de descarga. Alguna opción?
Gracias de antemano!
Que tal buen día, excelente post para agregar y/o generar un calendario con casi todas las columnas necesarias solo que tengo un caso y espero me puedas orientar.
Tengo tabla de Fechas con AÑO, MES, FECHA, SEMANA (2018, ENERO, 01/01/2018, 201801), las ventas las tengo por semana por lo que mi llave sería siempre esa 201801, 201802, 201803 y así desde 2015, la columna de Fecha NO CAMBIA es decir para enero siempre es 01/01/2018 en todas las semanas luego para febrero 01/02/2018 para todas las semanas entonces, la unica columna que me deja poner en formato de fecha es precisamente FECHA pero, al decirle que es el campo clave me pone que no puede pues se repiten el mismo dato.
Mi llave que sería semana (201801) no me deja ponerla en campo de fecha.
Espero que haya sido claro y me puedas orientar.
«Hola Domenec,tienes algún ejemplo en dax que haga lo mismo que la función Dias.Lab de Excel ?»
Te agradeceria.
Saludos.
Hola,
Tengo una medida de resta de fechas, pero necesito además que no me cuente los fines de semana y días festivos.
Me puedes ayudar?
Gracias
Saludos
Cordial saludo
Muchas gracias por tus aportes me han sido de mucha ayuda. pero tengo el siguiente problema tengo una fecha en una base y una fecha inicio y una fecha fin en otra tabla, existe alguna formula dax que me identifique si la fecha de la primera tabla se encuentra contenida dentro del rango de la segunda tabla. Gracias por la ayuda brindada
Hola, que tal
En mi reporte tengo la fecha en este formato
02/05/2006 04:25:11 p. m. y no me permite aplicar esto, me da error, supongo es por la hora, hay manera de hacerlo?
Hola Domenec, buenas tardes, por favor necesito de tu ayuda, estoy realizando un reporte de ventas, donde quiero que me muestre las ventas de las ultimas 4 semanas, se puede hacer?
gracias de antemano.
Hola, tengo un problema, genere la tabla con la funcion calendarauto, luego anadi la columna Mes con la funcion Mes = MONTH(Calendario[Fecha]) y le asigne formato numero entero. El problema es que al agregar la columna Mes Nombre con la funcion Mes Nombre = format(Calendario[Mes];»MMMM»), para el mes «1», muestra como resultado «diciembre», para el mes «2», muestra como resultado «enero», asi sucesivamente. A que se debe este error?
Romina, usa la siguiente sintaxis para obtener el mes:
Mes = Calendario[Date].[Mes], con la tabla:
Calendario = CALENDARAUTO() te da la jerarquía de toda la fecha y sus atributos, lo que tienes que hacer es generar una columna con el siguiente código:
No.Mes = Calendario[Date].[NroMes]
Y posterior hacer un Sort by seleccionando la columna Mes y predeterminar el ordenamiento con No.Mes de está manera se ordenaran los meses del 1 al 12 de enero a diciembre
Muchas gracias por tus aportes me han sido de mucha ayuda.
Estimado Domenech, estoy preparando un informe de ventas, pero la empresa usa un período contable que va del 1 de agosto del año en curso, hasta el 31 de julio del siguiente año. He usado la fórmula: Dateadd (Dates [Date]; -1; YEAR))) pero veo que el comparativo con el año anterior no se está realizando correctamente. Como filtro uso del calendario el formato (DD/MM/AAAA – DD/MM/AAAA) para seleccionar los períodos. No sé si es correcto usar el Dateadd o debería usar el SAMEPERIODLASTYEAR. Lo estoy usando para comparar las ventas entre un mismo período de tiempo respecto al año anterior, pero con la problemática de que no usa el año natural de enero a diciembre, sino de agosto a julio del año siguiente.
Cordialmente,
Javier