Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Syndicate_Admin
Administrator
Administrator

Resumir por último día de cada mes

Saludos

Tengo una tabla donde guardo el historial de etapas del proyecto, semanalmente.

FECHAPROYECTOETAPA
24/08/2021P1Idea
24/08/2021P2Caso de Negocio
24/08/2021P3Idea
30/08/2021P1Idea
30/08/2021P2Caso de Negocio
30/08/2021P3Caso de Negocio
07/09/2021P1Idea
07/09/2021P2Caso de Negocio
07/09/2021P3Desarrollo
16/09/2021P1Caso de Negocio
16/09/2021P2Desarrollo
16/09/2021P3Lanzar

Me gustaría crear una tabla donde resuma la información del proyecto por mes, siempre considerando el último día del mes que está en la tabla:

ProyectoMes/AñoEtapa
P108/2021Idea
P208/2021Caso de Negocio
P308/2021Idea
P109/2021Caso de Negocio
P209/2021Desarrollo
P309/2021Lanzar

¿Alguna idea de cómo podría lograr esto?

Saludos

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Pude obtener el resultado que quería, pero no sé si es la mejor manera.

1) En la tabla principal creé una columna LastDate = ENDOFMONTH()

2) Después de eso, se creó otra columna que compara Date y LastDate. Si las fechas son las mismas, entonces "sí".

3) Finalmente, creé una nueva tabla usando CALCULATETABLE() filtrando por "sí".

View solution in original post

7 REPLIES 7
Syndicate_Admin
Administrator
Administrator

@dpsilva Esto es definitivamente más fácil con una tabla de fechas

smpa01_0-1632966337734.png

smpa01_1-1632966495842.png

maxDate := CALCULATE(MAX('fact'[Date]))

stageByMaxDatePerProject = 
VAR _maxDate = CALCULATE(MAX('fact'[Date]))
VAR _Stage = CALCULATE(MAX('fact'[STAGE]),ALL('fact'[Date]),'fact'[Date]=_maxDate)
RETURN _Stage

Sin embargo, si no está interesado en tener una tabla de fechas, debe crear una columna calaculada como se indica a continuación en la tabla de hechos.

Yr-Mo = COMBINEVALUES("-",YEAR('fact'[Date]),MONTH('fact'[Date]))

y luego puedes crear una medida para darte lo que necesitas

Measure2 = 
VAR _maxDate =
    CALCULATE (
        MAX ( 'fact'[Date] ),
        ALLEXCEPT ( 'fact', 'fact'[PROJECT], 'fact'[Yr-Mo] )
    )
VAR _Stage =
    CALCULATE (
        MAX ( 'fact'[STAGE] ),
        ALL ( 'fact'[Date] ),
        'fact'[Date] = _maxDate
    )
RETURN
    _Stage

smpa01_2-1632968166892.png

Syndicate_Admin
Administrator
Administrator

Pude obtener el resultado que quería, pero no sé si es la mejor manera.

1) En la tabla principal creé una columna LastDate = ENDOFMONTH()

2) Después de eso, se creó otra columna que compara Date y LastDate. Si las fechas son las mismas, entonces "sí".

3) Finalmente, creé una nueva tabla usando CALCULATETABLE() filtrando por "sí".

Allí, @dpsilva

Parece que su problema ha sido resuelto.
Si es así, podría aceptar la respuesta útil como solución para cerrar este hilo. Ayudará a otros miembros de la comunidad a encontrar fácilmente la solución cuando reciban el problema similar.

Saludos
Equipo de soporte de la comunidad _ Eason

Syndicate_Admin
Administrator
Administrator

Hay @Ashish_Mathur,

Estaba pensando en crear una nueva tabla usando resumir, como @ryan_mayu hizo. Pero si dices que hay una manera más fácil de hacer esto a través del Editor de consultas, ¿podrías mostrarme? Sé que hay una función "Agrupar por", pero ¿cómo hacer esto para cada último día del mes que aparece en la tabla?

@ryan_mayu ¿Es posible obtener el mes / año en el formato de fecha?

No dije que hay una manera más fácil. Solo estaba preguntando. Hacerlo en el Editor de consultas no será tan sencillo. Si quieres puedo intentar solucionarlo a través de una medida directamente en el visual.

Syndicate_Admin
Administrator
Administrator

Hola

¿Desea hacer esto a través de una medida directamente en el visual o en el Editor de consultas?

Syndicate_Admin
Administrator
Administrator

@dpsilva

Puede intentar utilizar DAX para crear una tabla

Table 2 = 
VAR tbl=ADDCOLUMNS(SUMMARIZE(ADDCOLUMNS('Table',"month/year",RIGHT("0"&month('Table'[DATE]),2)&year('Table'[DATE])),'Table'[PROJECT],[month/year],"Date",max('Table'[DATE])),"Stage",MAXX(FILTER('Table','Table'[DATE]=EARLIER([Date])&&'Table'[PROJECT]=EARLIER('Table'[PROJECT])),'Table'[STAGE]))
return SELECTCOLUMNS(tbl,"project",'Table'[PROJECT],"month/year",[month/year],"Stage",[Stage])

1.PNG

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.