cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
jminanoc
Helper I
Helper I

Tabla Calendario Especial

Estimados buenos días:

Necesito su apoyo en lo siguiente:

 

Generar de forma automática con dax la tabla de calendario, esta tabla deberá tener:

  • C_Periodo  solo de 1 al 60, el mes 60 se obtendrá de una tabla auxiliar que se llama Periodo, cuyo único elemento será una fecha en el formato 20210701, y los demás meses irán decreciendo
  • La tabla calendario solo debe mostrar los primeros días de cada mes, y este valor ir decreciendo hasta llegar a 1, es decir tomar 60 meses

jminanoc_0-1632244908496.png

Gracias de antemano por el apoyo

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Allí, @Syndicate_Admin

1. para crear una medida para obtener la última fecha:

_MaxDate = CALCULATE(MAX('Auxiliar Periodo'[C_periodo]),ALL('Auxiliar Periodo'))

2. para crear una tabla calculada:

Table = 
ADDCOLUMNS(
    GENERATESERIES(1,60,1),
    "date",FORMAT(EDATE('Auxiliar Periodo'[_MaxDate],-60+[Value]),"d/mm/yyyy"),
    "Mon",FORMAT(EDATE('Auxiliar Periodo'[_MaxDate],-60+[Value]),"mm"),
    "N_Mon",FORMAT(EDATE('Auxiliar Periodo'[_MaxDate],-60+[Value]),"mmm"),
    "M-Y",FORMAT(EDATE('Auxiliar Periodo'[_MaxDate],-60+[Value]),"mmm/yyyy"),
    "year",YEAR(EDATE('Auxiliar Periodo'[_MaxDate],-60+[Value]))
    )

resultado:

vangzhengmsft_0-1632469421799.png

Consulte el archivo adjunto a continuación para obtener más detalles. Espero que esto ayude.

Saludos
Equipo de apoyo a la comunidad _ Zeon Zheng


Si esta publicación ayuda,entonces considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

View solution in original post

4 REPLIES 4
Syndicate_Admin
Administrator
Administrator

Allí, @Syndicate_Admin

1. para crear una medida para obtener la última fecha:

_MaxDate = CALCULATE(MAX('Auxiliar Periodo'[C_periodo]),ALL('Auxiliar Periodo'))

2. para crear una tabla calculada:

Table = 
ADDCOLUMNS(
    GENERATESERIES(1,60,1),
    "date",FORMAT(EDATE('Auxiliar Periodo'[_MaxDate],-60+[Value]),"d/mm/yyyy"),
    "Mon",FORMAT(EDATE('Auxiliar Periodo'[_MaxDate],-60+[Value]),"mm"),
    "N_Mon",FORMAT(EDATE('Auxiliar Periodo'[_MaxDate],-60+[Value]),"mmm"),
    "M-Y",FORMAT(EDATE('Auxiliar Periodo'[_MaxDate],-60+[Value]),"mmm/yyyy"),
    "year",YEAR(EDATE('Auxiliar Periodo'[_MaxDate],-60+[Value]))
    )

resultado:

vangzhengmsft_0-1632469421799.png

Consulte el archivo adjunto a continuación para obtener más detalles. Espero que esto ayude.

Saludos
Equipo de apoyo a la comunidad _ Zeon Zheng


Si esta publicación ayuda,entonces considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

View solution in original post

Muchas Gracias, era exactamente lo que quería

Syndicate_Admin
Administrator
Administrator

@Syndicate_Admin, basado en lo que obtuve hasta ahora

nueva tabla =

addcolumns(generateseries(0,59,1), "period", format(date(2017,1+[Value],1) , "YYYYMMDD"))

Otros puede agregar en función de eso, o seguir agregando usando el formato

Gracias por tu pronta respuesta, me da un punto de partida para realizar lo que estoy haciendo, ya que el periodo 60, es variable cada mes y eso viene de la tabla periodo que comentaba. En el ejemplo me indica que el mes 60 tiene que ser Julio2021, entonces el 59 es junio 2021 y así sucesivamente hasta llegar al mes 1. Pero el siguiente mes la tabla periodo cambiará y será 20210801, entonces el mes 60 será agosto 2021, el 59 Julio 2021 y así sucesivamente. En conclusión mi tabla periodo esta amarrado al parametro que me viene de la otra tabla.

Helpful resources

Announcements
UG GA Amplification 768x460.png

Launching new user group features

Learn how to create your own user groups today!

November Power BI Update 768x460.png

Check it Out!

Click here to read more about the November 2021 Updates!

M365 768x460.jpg

Microsoft 365 Collaboration Conference | December 7–9, 2021

Join us, in-person, December 7–9 in Las Vegas, for the largest gathering of the Microsoft community in the world.