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

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

Reply
_Xandyr_
Helper II
Helper II

Filtrar por fecha en el gráfico de barras

Hola a todos,

Quiero mostrar cuatro gráficos de barras diferentes para una columna de volumen.

1. Volumen por día; ayer vs día antes de ayer

2. Volumen por semana; La última semana a la fecha vs WtD actual

3. Volumen por mes; El último mes hasta la fecha frente al MtD actual

4. Volumen por año; El último año hasta la fecha frente al YtD actual

En este momento tengo los cuatro gráficos, pero para semana, mes y año mi vista ahora es la última semana completa / mes / año vs volumen actual hasta la fecha. Lo que significa que veo por ejemplo la semana pasada frente a la semana actual a la fecha (sólo dos días hasta ahora), esto hace que la comparación sea bastante extraña. ¿Es posible hacer algo al respecto?

Utilizo una tabla de calendario vinculada al volumen y uso filtros de fecha relativa y filtros de desplazamiento para Semana, Mes y Año. Como se puede ver a continuación, la comparación se convierte en bastante missrepresentative, especialmente para la vista de mes.

Anteckning 2020-04-14 142732.png

¡Gracias!

4 REPLIES 4
v-frfei-msft
Community Support
Community Support

Hola @_Xandyr_ ,

He creado una muestra para su referencia.

day = var today = TODAY()
var last = today-1
return
CALCULATE(SUM('Table'[value]),FILTER('date','date'[Date]>=last && 'date'[Date]<=today))
week_ = 
VAR today =
    TODAY ()
VAR weeknum =
    WEEKNUM ( today, 2 )
VAR weekday =
    WEEKDAY ( today, 2 )
VAR todayyearwekk =
    YEAR ( today ) * 100 + weeknum
VAR lsw =
    CALCULATE (
        MAX ( 'date'[yearweek_] ),
        FILTER ( ALL ( 'date' ), 'date'[yearweek_] < todayyearwekk )
    )
RETURN
    CALCULATE (
        SUM ( 'Table'[value] ),
        FILTER (
            'date',
            AND (
                [yearweek_] = todayyearwekk
                    || 'date'[yearweek_] = lsw,
                WEEKDAY ( [Date] ) <= weekday
            )
        )
    )

YM = 
VAR today =
    TODAY ()
VAR st =
    DATE ( YEAR ( today ), MONTH ( today ), 1 )
VAR premonth =
    EDATE ( today, -1 )
VAR spre =
    DATE ( YEAR ( premonth ), MONTH ( premonth ), 1 )
RETURN
    CALCULATE (
        SUM ( 'Table'[value] ),
        FILTER (
            'date',
            OR (
                'date'[Date] <= today
                    && 'date'[Date] >= st,
                'date'[Date] >= spre
                    && 'date'[Date] <= premonth
            )
        )
    )
Year = 
VAR today =
    TODAY ()
VAR stofyear =
    DATE ( YEAR ( today ), 1, 1 )
VAR spre =
    DATE ( YEAR ( today ) - 1, 1, 1 )
VAR pre =
    EDATE ( today, -12 )
RETURN
    CALCULATE (
        SUM ( 'Table'[value] ),
        FILTER (
            'date',
            OR (
                'date'[Date] >= stofyear
                    && 'date'[Date] <= today,
                'date'[Date] >= spre
                    && 'date'[Date] <= pre
            )
        )
    )

Capture.PNG

Para obtener más detalles, consulte el pbix como adjunto.

Community Support Team _ Frank
If this post helps, then please consider Accept it as the solution to help the others find it more quickly.

Hola @v-frfei-msft

Acaba de probar sus ejemplos mediante el uso de los códigos y modificarlos a mis datos, también miró en su archivo PBIX adjunto. Tengo que decir WOW, esto funcionó perfectamente y exactamente cómo quería que hiciera! Comprobado con mis datos sin procesar y todo es exactamente como debería!

Muchas gracias por la ayuda, ¡apreciémoslo!

amitchandak
Super User
Super User

@_Xandyr_

Para la semana consulte mi archivo: https://www.dropbox.com/s/d9898a48e76wmvl/sales_analytics_weekWise.pbix?dl=0

Para ayer se puede utilizar

último día: CALCULATE(SUM(Sales[Sales Amount]),dateadd('Date'[Date],-1,Day))

Para otros prefieren usar la inteligencia del tiempo con el calendario de fechas

MTD Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESMTD('Date'[Date]))
last MTD Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESMTD(dateadd('Date'[Date],-1,MONTH)))
last MTD (complete) Sales =  CALCULATE(SUM(Sales[Sales Amount]),DATESMTD(ENDOFMONTH(dateadd('Date'[Date],-1,MONTH))))
last year MTD Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESMTD(dateadd('Date'[Date],-12,MONTH)))
last year MTD (complete) Sales =  CALCULATE(SUM(Sales[Sales Amount]),DATESMTD(ENDOFMONTH(dateadd('Date'[Date],-12,MONTH))))


last QTR same Month (complete) Sales =  CALCULATE(SUM(Sales[Sales Amount]),DATESMTD(ENDOFMONTH(dateadd('Date'[Date],-1,Qtr))))


MTD (Year End) Sales =  CALCULATE(SUM(Sales[Sales Amount]),DATESMTD(ENDOFYEAR('Date'[Date])))
MTD (Last Year End) Sales =  CALCULATE(SUM(Sales[Sales Amount]),DATESMTD(ENDOFYEAR(dateadd('Date'[Date],-12,MONTH),"8/31")))

 

QTD Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESQTD(('Date'[Date])))

Last QTD Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESQTD(dateadd('Date'[Date],-1,QUARTER)))
Last complete QTD Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESQTD( ENDOFQUARTER(dateadd('Date'[Date],-1,QUARTER))))

Last to last QTD Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESQTD(dateadd('Date'[Date],-2,QUARTER)))
Next QTD Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESQTD(dateadd('Date'[Date],1,QUARTER)))

Last year same QTD Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESQTD(dateadd('Date'[Date],-1,Year)))
Last year same QTD Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESQTD(ENDOFQUARTER(dateadd('Date'[Date],-1,Year))))

trailing QTR = CALCULATE(SUM(Sales[Sales Amount]),dateadd('Date'[Date],-1,QUARTER))
trailing  4 QTR = CALCULATE(SUM(Sales[Sales Amount]),dateadd('Date'[Date],-4,QUARTER))



YTD Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESYTD(('Date'[Date]),"12/31"))
This Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESYTD((ENDOFYEAR('Date'[Date])),"12/31"))

Last YTD Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESYTD(dateadd('Date'[Date],-1,Year),"12/31"))
Last YTD complete Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESYTD(ENDOFYEAR(dateadd('Date'[Date],-1,Year)),"12/31"))
Last to last YTD Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESYTD(dateadd('Date'[Date],-2,Year),"12/31"))

Year behind Sales = CALCULATE(SUM(Sales[Sales Amount]),dateadd('Date'[Date],-1,Year))

Para obtener lo mejor de la función de inteligencia de tiempo. Asegúrese de que tiene un calendario de fechas y se ha marcado como la fecha en la vista de modelo. Además, únase a él con la columna de fecha de su hecho/s. Consulte:
https://radacad.com/creating-calendar-table-in-power-bi-using-dax-functions
https://www.archerpoint.com/blog/Posts/creating-date-table-power-bi
https://www.sqlbi.com/articles/creating-a-simple-date-table-in-dax/

Hola @amitchandak

Gracias por la rápida respuesta y la información. Sin embargo, no estoy seguro de que esta es la solución correcta para mí, como traté de mostrar en mi post necesito usar un gráfico de barras apiladas y mostrar por ejemplo la semana pasada a "día específico" vs la semana actual a "día específico". Diga su martes hoy entonces quiero que mi tabla de la semana muestre dos barras, una para la última semana al martes y otra para la semana actual al martes. ¿Es posible?

Para el mes Sería el mes pasado al 14 de marzo vs mes actual al 14 de abril. Y esto debe ser un filtro relativo porque se actualizará todos los días.

¡Gracias!

Helpful resources

Announcements
July 2024 Power BI Update

Power BI Monthly Update - July 2024

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

July Newsletter

Fabric Community Update - July 2024

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