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

Calcular los últimos 1 meses y el próximo mes

Hola equipo,

Tengo un requisito para calcular la suma (ventas) para el período pasado un mes actual-próximo mes

Por ejemplo: Tengo filtro Fecha que tiene todas las fechas de 2017 - fecha actual

cuando el usuario selecciona 10-sep-2020 tiene que obtener las ventas desde el 1-Aug-2020 hasta el 31-Oct-2020

También necesito mostrar al usuario el período "1-Aug-2020 hasta 31-Oct-2020" en el mismo objeto visual de la tabla.

Por favor, ayúdame ¿cómo puedo calcular esto?

1 ACCEPTED SOLUTION
Community Support
Community Support

Hola @LP280388 ,

Por favor, compruebe:

period = 
VAR StartDate =
    IF (
        SELECTEDVALUE ( 'Dates'[Date] ) = BLANK (),
        FORMAT (
            EOMONTH ( MINX ( ALL ( 'Table' ), 'Table'[Date] ), -1 ) + 1,
            "d-MMM-YYYY"
        ),
        FORMAT ( EOMONTH ( SELECTEDVALUE ( Dates[Date] ), -2 ) + 1, "d-MMM-YYYY" )
    )
VAR EndDate =
    IF (
        SELECTEDVALUE ( 'Dates'[Date] ) = BLANK (),
        FORMAT ( EOMONTH ( MAXX ( ALL ( 'Table' ), 'Table'[Date] ), 0 ), "d-MMM-YYYY" ),
        FORMAT ( EOMONTH ( SELECTEDVALUE ( Dates[Date] ), 1 ), "d-MMM-YYYY" )
    )
RETURN
    StartDate & " till " & EndDate
Sum = 
VAR StartDate =
    EOMONTH ( SELECTEDVALUE ( Dates[Date] ), -2 ) + 1
VAR EndDate =
    EOMONTH ( SELECTEDVALUE ( Dates[Date] ), 1 )
RETURN
    IF (
        SELECTEDVALUE ( Dates[Date] ) = BLANK (),
        SUM ( 'Table'[Value] ),
        SUMX (
            FILTER (
                ALL ( 'Table' ),
                'Table'[Date] >= StartDate
                    && 'Table'[Date] <= EndDate
            ),
            'Table'[Value]
        )
    )

sum.gif

Saludos

Icey

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

7 REPLIES 7
Community Support
Community Support

Hola @LP280388 ,

Por favor, compruebe:

period = 
VAR StartDate =
    IF (
        SELECTEDVALUE ( 'Dates'[Date] ) = BLANK (),
        FORMAT (
            EOMONTH ( MINX ( ALL ( 'Table' ), 'Table'[Date] ), -1 ) + 1,
            "d-MMM-YYYY"
        ),
        FORMAT ( EOMONTH ( SELECTEDVALUE ( Dates[Date] ), -2 ) + 1, "d-MMM-YYYY" )
    )
VAR EndDate =
    IF (
        SELECTEDVALUE ( 'Dates'[Date] ) = BLANK (),
        FORMAT ( EOMONTH ( MAXX ( ALL ( 'Table' ), 'Table'[Date] ), 0 ), "d-MMM-YYYY" ),
        FORMAT ( EOMONTH ( SELECTEDVALUE ( Dates[Date] ), 1 ), "d-MMM-YYYY" )
    )
RETURN
    StartDate & " till " & EndDate
Sum = 
VAR StartDate =
    EOMONTH ( SELECTEDVALUE ( Dates[Date] ), -2 ) + 1
VAR EndDate =
    EOMONTH ( SELECTEDVALUE ( Dates[Date] ), 1 )
RETURN
    IF (
        SELECTEDVALUE ( Dates[Date] ) = BLANK (),
        SUM ( 'Table'[Value] ),
        SUMX (
            FILTER (
                ALL ( 'Table' ),
                'Table'[Date] >= StartDate
                    && 'Table'[Date] <= EndDate
            ),
            'Table'[Value]
        )
    )

sum.gif

Saludos

Icey

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

Super User II
Super User II

Hola @LP280388

Dada esta estructura de datos y tabla de fechas:

lkalawski_0-1600778741359.png

Puede crear una medida:

Sum = 
CALCULATE(Sum(Tbl[Value]), 
    FILTER(ALL('Date'[Date]), 
        'Date'[Date] >= DATE(YEAR(MAX('Date'[Date])), MONTH(MAX('Date'[Date]))-1,1)
        && 'Date'[Date] <= DATE(YEAR(MAX('Date'[Date])), MONTH(MAX('Date'[Date]))+1,30)
        )
    )

En el informe, en el objeto visual de segmentación de datos, agregue Fecha desde la tabla Fecha y, además, Tarjeta, que le mostrará el resultado de la medida.
Resultado de la muestra:

lkalawski_3-1600778896980.png

lkalawski_4-1600778922160.png



_______________
Si ayudé, por favor acepte la solución y dar felicitaciones! 😀

@lkalawski Gracias por la respuesta.

Yo también tengo el mismo resultado de su medida.

lo que necesito es, cuando selecciono cualquier fecha en Sep, debe dar el mismo resultado calculado del 1 de agosto al 31 de octubre independientemente de la fecha que seleccione en Sep.

Hola @LP280388

¿Puede compartir su muestra de datos y relaciones entre tablas?

Creo que ese problema es con la relación, pero quiero comprobarlo.



_______________
Si ayudé, por favor acepte la solución y dar felicitaciones! 😀

No puedo compartir el archivo ya que no puedo crear datos ficticios.

la relación entre las tablas Fecha y ventas es de 1 a muchas. Así es como modifiqué la medida.

Am ?
CALCULATE(AVERAGE(Query1[Bill Rate]),
FILTER(ALL('Dim_Date (2)'[Fecha]),
'Dim_Date (2)'[Fecha] >- FECHA(YEAR(MAX('Dim_Date (2)'[Fecha])), MONTH(MAX('Dim_Date (2)'[Fecha]))-1,1)
&& 'Dim_Date (2)'[Fecha] <- DATE(YEAR(MAX('Dim_Date (2)'[Fecha])), MONTH(MAX('Dim_Date (2)'[Fecha]))+1,30)
)
)
Super User IV
Super User IV

@LP280388 , Con una tabla de fechas, pruebe una medida como

CALCULATE(sum(Sales[Sales Amount]),DATESINPERIOD('Date'[Date],Startofmonth(dateadd(Sales[Sales Date],-1,month)),3,MONTH))

Eso acumulará los datos en un mes: para eso se refiere :https://www.youtube.com/watch?v=duMSovyosXE



Did I answer your question? Mark my post as a solution! Appreciate your Kudos!!
Dashboard of My Blogs !! YouTube Channel !! Connect on Linkedin

Proud to be a Super User!

@amitchandak Gracias Amit,

Intenté lo de abajo. Su funcionamiento, pero el problema es cuando selecciono cualquier fecha entre 1-sep-2020 a 20-Sep-2020, esto debe dar el mismo valor que se calcula para el período 1-aug-2020 a 31-Oct-2020. Pero no es así.

apagado
var _max1 á maxx(allselected('Dim_Date (2)'),'Dim_Date (2)'[Fecha])
fue _max eomonth(_max1,1)
var _min1 á minx(allselected('Dim_Date (2)'),'Dim_Date (2)'[Fecha])
var _min á date(year(_min1),month(_min1)-1,1)
devolución
calculate([measure],filter(All('Dim_Date (2)'), 'Dim_Date (2)'[Fecha] >'_min && 'Dim_Date (2)'[Fecha] <-_max))

Helpful resources

Announcements
secondImage

Congratulations!

We are excited to announce the Power BI Super Users!

Wave Release 2

Check out the updates in Power BI.

Overview of Power BI 2020 release wave 2!

Microsoft Ignite

Microsoft Ignite

Join digitally, March 2–4, 2021 to explore new tech that's ready to implement. Experience the keynote in mixed reality through AltspaceVR!

secondImage

The largest Power BI virtual conference

100+ sessions, 100+ speakers, Product managers, MVPs, and experts. All about Power BI. Attend online or watch the recordings.