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

DAX para los próximos 6 meses a partir del mes actual

Hola a todos

Tengo un informe con fecha de inicio, fecha de finalización, Ingresos, Term=fecha de finalización de inicio, Ingresos a plazo=Ingresos a plazo/Plazo

neelofarshama_0-1620411750833.png

Quiero mostrar la fecha actual junto con las próximas fechas de 6 meses como se muestra a continuación. La columna "Ingresos a plazo" debe mostrarse durante todos estos meses a partir de la fecha de inicio y mostrarla.

Por favor, hágamelo saber cómo lograr esto.

Ingresos previstosfecha de inicio fecha finaltérminoIngresos a plazoactual+6 meses
MayoJunioJulioAgostoSeptiembreOctubreNoviembre
150007/1/20219/30/202135000 $ - $ - $ 5,000 $ 5,000 $ 5,000 $ - $ -
22,50010/1/20226/30/202292500 $ - $ - $ - $ - $ - $ 2,500 $ 2,500
200012/1/20204/30/20215400 $ - $ - $ - $ - $ - $ - $ -
25,0005/16/202112/19/202183,125 $ 3,125 $ 3,125 $ 3,125 $ 3,125 $ 3,125 $ 3,125 $ 3,125
7,0104/1/202111/5/20218876.19 $ 876.19 $ 876.19 $ 876.19 $ 876.19 $ 876.19 $ 876.19 $ 876.19
1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Ahí, @neelofarshama

De acuerdo con su descripción, finalmente puedo averiguar su requisito, entonces creo que puede cambiar la fórmula de sus 7 columnas calculadas como esta:

Current Month =

var _startdate=DATE(YEAR([Start Date]),MONTH([Start Date]),1)

var _enddate1=EOMONTH(_startdate,6)

var _enddate2=EOMONTH([End Date],0)

var _enddate=IF(_enddate1<=_enddate2,_enddate1,_enddate2)

return

IF(

    TODAY()>=_startdate&&TODAY()<=_enddate,[Term Revenue],BLANK())
Next 1 month =

var _startdate=DATE(YEAR([Start Date]),MONTH([Start Date]),1)

var _enddate1=EOMONTH(_startdate,6)

var _enddate2=EOMONTH([End Date],0)

var _enddate=IF(_enddate1<=_enddate2,_enddate1,_enddate2)

return

IF(

    EOMONTH(TODAY(),1)>=_startdate&&EOMONTH(TODAY(),1)<=_enddate,[Term Revenue],BLANK())
Next 2 month =

var _startdate=DATE(YEAR([Start Date]),MONTH([Start Date]),1)

var _enddate1=EOMONTH(_startdate,6)

var _enddate2=EOMONTH([End Date],0)

var _enddate=IF(_enddate1<=_enddate2,_enddate1,_enddate2)

return

IF(

    EOMONTH(TODAY(),2)>=_startdate&&EOMONTH(TODAY(),2)<=_enddate,[Term Revenue],BLANK())

Los 4 meses de descanso son similares a la fórmula DAX anterior, sólo puede seguirlos para transformar el DAX.

A continuación, vaya al gráfico de tablas, establezca el tipo de resumen de todas estas columnas en "Suma":

v-robertq-msft_0-1620801994114.png

Y puedes conseguir lo que quieras., así:

v-robertq-msft_1-1620801994118.png

v-robertq-msft_2-1620801994167.png

¡Muchas gracias!

Saludos

Equipo de apoyo comunitario _Robert Qin

Si este post ayuda, entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

View solution in original post

3 REPLIES 3
Syndicate_Admin
Administrator
Administrator

Ahí, @neelofarshama

De acuerdo con su descripción, finalmente puedo averiguar su requisito, entonces creo que puede cambiar la fórmula de sus 7 columnas calculadas como esta:

Current Month =

var _startdate=DATE(YEAR([Start Date]),MONTH([Start Date]),1)

var _enddate1=EOMONTH(_startdate,6)

var _enddate2=EOMONTH([End Date],0)

var _enddate=IF(_enddate1<=_enddate2,_enddate1,_enddate2)

return

IF(

    TODAY()>=_startdate&&TODAY()<=_enddate,[Term Revenue],BLANK())
Next 1 month =

var _startdate=DATE(YEAR([Start Date]),MONTH([Start Date]),1)

var _enddate1=EOMONTH(_startdate,6)

var _enddate2=EOMONTH([End Date],0)

var _enddate=IF(_enddate1<=_enddate2,_enddate1,_enddate2)

return

IF(

    EOMONTH(TODAY(),1)>=_startdate&&EOMONTH(TODAY(),1)<=_enddate,[Term Revenue],BLANK())
Next 2 month =

var _startdate=DATE(YEAR([Start Date]),MONTH([Start Date]),1)

var _enddate1=EOMONTH(_startdate,6)

var _enddate2=EOMONTH([End Date],0)

var _enddate=IF(_enddate1<=_enddate2,_enddate1,_enddate2)

return

IF(

    EOMONTH(TODAY(),2)>=_startdate&&EOMONTH(TODAY(),2)<=_enddate,[Term Revenue],BLANK())

Los 4 meses de descanso son similares a la fórmula DAX anterior, sólo puede seguirlos para transformar el DAX.

A continuación, vaya al gráfico de tablas, establezca el tipo de resumen de todas estas columnas en "Suma":

v-robertq-msft_0-1620801994114.png

Y puedes conseguir lo que quieras., así:

v-robertq-msft_1-1620801994118.png

v-robertq-msft_2-1620801994167.png

¡Muchas gracias!

Saludos

Equipo de apoyo comunitario _Robert Qin

Si este post ayuda, entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Syndicate_Admin
Administrator
Administrator

Ahí, @neelofarshama

De acuerdo con su descripción y datos de ejemplo, puedo entender más o menos su requisito, creo que puede lograr esto usando columnas calculadas, puede probar estas columnas calculadas:

Term = DATEDIFF([Start Date],[ End date],MONTH)+1
Term Revenue = DIVIDE([Expected Revenue],[Term])
Current =

var _month=MONTH(TODAY())

return

IF(

    MONTH([Start Date])<=_month&&MONTH([ End date])>=_month,[Term Revenue],

    BLANK())
Next 1 month =

var _eomonth=EOMONTH(TODAY(),1)

return

IF(

    [Start Date]<=_eomonth&&EOMONTH([ End date],0)>=_eomonth,[Term Revenue],

    BLANK())
Next 2 month =

var _eomonth=EOMONTH(TODAY(),2)

return

IF(

    [Start Date]<=_eomonth&&EOMONTH([ End date],0)>=_eomonth,[Term Revenue],

    BLANK())
Next 3 month =

var _eomonth=EOMONTH(TODAY(),3)

return

IF(

    [Start Date]<=_eomonth&&EOMONTH([ End date],0)>=_eomonth,[Term Revenue],

    BLANK())
Next 4 month =

var _eomonth=EOMONTH(TODAY(),4)

return

IF(

    [Start Date]<=_eomonth&&EOMONTH([ End date],0)>=_eomonth,[Term Revenue],

    BLANK())
Next 5 month =

var _eomonth=EOMONTH(TODAY(),5)

return

IF(

    [Start Date]<=_eomonth&&EOMONTH([ End date],0)>=_eomonth,[Term Revenue],

    BLANK())
Next 6 month =

var _eomonth=EOMONTH(TODAY(),6)

return

IF(

    [Start Date]<=_eomonth&&EOMONTH([ End date],0)>=_eomonth,[Term Revenue],

    BLANK())

Y puedes conseguir lo que quieras, así:

v-robertq-msft_0-1620640126646.png

Puede descargar mi archivo pbix de prueba a continuación

Si este resultado no es el que desea, puede publicar algunos datos de ejemplo (sin datos confidenciales) y el resultado esperado.

Cómo obtener respuestas rápidamente a su pregunta

¡Muchas gracias!

Saludos

Equipo de apoyo comunitario _Robert Qin

Si este post ayuda, entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Allí @v-robertq-msft ,

Gracias por la respuesta. He probado su DAX para el informe estoy obteniendo resultados, pero no como se esperaba,

en el screnshot a continuación tengo fechas de inicio en el año 2020 y 2019 para el que el mes actual y +6 meses columnas no deben mostrarse, pero se están mostrando. La fila resaltada por seconf refleja $48.75 que debe reflejar $97.50.

neelofarshama_0-1620719484180.png

La otra cuestión es para la fecha de inicio del año actual 1/7/2021(enero) los ingresos deben mostrarse para mayo (mes actual) y junio (próximo 1 mes) pero su visualización para los 6 meses.

Para otra fecha de inicio de columna es 2/11/2021 los ingresos deben mostrarse para mayo (mes actual), junio (próximo mes), julio (próximos 2 meses) pero no se muestra para el mes actual.

neelofarshama_1-1620719712369.png

Estoy adjuntando el enlace del archivo pbix a continuación, por favor ayúdame en esto

https://caltimes-my.sharepoint.com/:u:/g/personal/neelofer_shama_latimes_com/EXeUVsAOVXNOoRVfjJE6pfU...

gracias.

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.