cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Syndicate_Admin
Administrator
Administrator

Tratando de encontrar el recuento de ayer, excluyendo los fines de semana

Estoy tratando de crear una fórmula para encontrar el recuento de entradas creadas ayer, pero si es sábado, domingo o lunes, dar recuento de entradas para el viernes.

Tengo una medida que me da la fecha de ayer, excluyendo los fines de semana, y una segunda medida que me acaba de dar el recuento de entradas para ayer. Tener problemas para peinar los dos.

Yesterday exc weekends = IF('Date'[DayOfWeek]="Sunday", DATEADD('Date'[Date], -2, DAY), IF('Date'[DayOfWeek]="Monday", DATEADD('Date'[Date], -3, DAY), DATEADD('Date'[Date], -1, DAY)))

Recuento de vales ayer = IF(ISBLANK(CALCULATE(COUNT(Query1[TICKET ID]), 'Date'[Date]=TODAY()-1)), 0, CALCULATE(COUNT(Query1[TICKET ID]), 'Date'[Date]=TODAY()-1))

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Allí, @aashton;

Puede intentar crear una medida de la siguiente manera:

count =
VAR _lastday =
    CALCULATE (
        MAX ( [Date] ),
        FILTER ( ALL ( 'Table' ), NOT ( WEEKDAY ( [Date], 2 ) ) IN { 6, 7 } )
    )
RETURN
    IF (
        WEEKDAY ( MAX ( [Date] ), 2 ) = 1,
        CALCULATE (
            COUNT ( [TICKET ID] ),
            FILTER ( ALL ( 'Table' ), DATEDIFF ( [Date], _lastday, DAY ) = 3 )
        ),
        CALCULATE (
            COUNT ( [TICKET ID] ),
            FILTER ( ALL ( 'Table' ), DATEDIFF ( [Date], _lastday, DAY ) = 1 )
        )
    )

La salida final se muestra a continuación:

vyalanwumsft_0-1625626320475.png

Saludos
Team_ de apoyo comunitario Yalan Wu
Si este post ayuda,entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

View solution in original post

5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

Allí, @aashton;

Puede intentar crear una medida de la siguiente manera:

count =
VAR _lastday =
    CALCULATE (
        MAX ( [Date] ),
        FILTER ( ALL ( 'Table' ), NOT ( WEEKDAY ( [Date], 2 ) ) IN { 6, 7 } )
    )
RETURN
    IF (
        WEEKDAY ( MAX ( [Date] ), 2 ) = 1,
        CALCULATE (
            COUNT ( [TICKET ID] ),
            FILTER ( ALL ( 'Table' ), DATEDIFF ( [Date], _lastday, DAY ) = 3 )
        ),
        CALCULATE (
            COUNT ( [TICKET ID] ),
            FILTER ( ALL ( 'Table' ), DATEDIFF ( [Date], _lastday, DAY ) = 1 )
        )
    )

La salida final se muestra a continuación:

vyalanwumsft_0-1625626320475.png

Saludos
Team_ de apoyo comunitario Yalan Wu
Si este post ayuda,entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

View solution in original post

Syndicate_Admin
Administrator
Administrator

Allí, @aashton;

De acuerdo con su descripción, creo un pbix simple para mostrarlo, y creo una medida para comparar la diferencia.

compare = 
VAR _lastday=CALCULATE(MAX([Date]),FILTER(ALL('Table'),WEEKDAY([Date],2)<>6&&WEEKDAY([Date],2)<>7))
VAR _pre= CALCULATE(COUNT([TICKET ID]),FILTER(ALL('Table'),DATEDIFF([Date],_lastday,DAY)=1))
RETURN DIVIDE(CALCULATE(COUNT([TICKET ID]),FILTER(ALL('Table'),[Date]=_lastday))-_pre,_pre)

La salida final se muestra a continuación:

vyalanwumsft_0-1625121978711.png

Saludos
Team_ de apoyo comunitario Yalan Wu
Si esta publicación ayuda, entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Syndicate_Admin
Administrator
Administrator

@aashton , Lo que he hecho para esto he creado un rango de día laborable en mi fecha tbale , y luego puedo usar eso para el último día hábil

ejemplo de medida

This Day = CALCULATE(sum('order'[Qty]), FILTER(ALL('Date'),'Date'[Work Date cont Rank]=max('Date'[Work Date cont Rank])))
Último día laborable = CALCULATE(sum('order'[Qty]), FILTER(ALL('Date'),'Date'[Work Date cont Rank]=max('Date'[Work Date cont Rank])-1))
diff =[Este día] - [Último día laborable]

columnas de la tabla de fechas

Día laborable = if(WEEKDAY([Fecha],2)>=6,0,1)
Fecha de trabajo = if(WEEKDAY([Date],2)>=6,BLANK(),[Date])
Fecha de trabajo Cont = if([Día laborable]=0,maxx(FILTER('Date',[Date]<EARLIER([Date]) && [Work Day]<> EARLIER([Work Day]) ),[Date]),[Date])
Fecha de trabajo cont Rank = RANKX(ALL('Date'),[Work Date Cont],,ASC,Dense)

Así que esto parece estar funcionando, pero me di cuenta de una cosa. Si es lunes, se supone que debe dar el recuento de entradas para el viernes anterior, pero da la suma de las entradas cuenta para el viernes, sábado y domingo. Eso es extraño. ¿Sabes cómo solo puedo obtener el conteo de boletos para el viernes?

Muchas gracias, lo conseguí trabajando. Lo que tengo que hacer ahora es comparar los números del último día laborable con el día anterior para obtener el cambio de %-edad. He intentado modificar su último día de trabajo meausre a por -2 en lugar de -1, pero eso no funcionó. ¿Sabes qué pieza debo ajustar?

Helpful resources

Announcements
PBI_User Group Leader_768x460.jpg

Manage your user group events

Check out the News & Announcements to learn more.

Power BI October Update 2021.jpg

Power BI Release

Click here to read more about the October 2021 Release!

Community Connections 768x460.jpg

Community & How To Videos

Check out the new Power Platform Community Connections gallery!

Teds Dev Camp Oct. 2021 768x460.jpg

Power BI Dev Camp - October 28th, 2021

Mark your calendars and join us for our next Power BI Dev Camp!