Cuente los días de la semana para calcular el tiempo de entrega

Un usuario Pregunto ✅

carlosagarcia

Hola chicos.

Estoy intentando crear una medida que solo cuente los días de la semana para calcular la entrega de un artículo.

Tengo un tiempo de entrega de compra de 10 días, si el pedido se ingresa hoy 06/12/2020, el tiempo estimado de entrega debe ser 06/25/2020

Plazo de entrega parcial Fecha de entrega

123 10 ???

Sé que suena fácil, he probado diferentes métodos sin suerte.

Hola @carlosagarcia,

Necesita crear una dimensión de fecha.

Date =
CALENDAR ( DATE ( 2020, 01, 01 ), DATE ( 2020, 12, 31 ) )

Luego, cree columnas para mostrar los días hábiles y el total acumulado.

Count =
VAR a = WEEKDAY ( 'Date'[Date], 2 ) RETURN IF ( a < 6, 1, 0 )
Sum =
CALCULATE (
    SUM ( 'Date'[Count] ),
    FILTER ( 'Date', 'Date'[Date] <= EARLIER ( 'Date'[Date] ) )
)

Crea una medida para mostrar la fecha.

Measure =
VAR a =
    SELECTEDVALUE ( 'Table'[Date] )
VAR b =
    SELECTEDVALUE ( 'Table'[Days] )
VAR c =
    CALCULATE ( MAX ( 'Date'[Sum] ), FILTER ( 'Date', 'Date'[Date] = a ) )
RETURN
    CALCULATE (
        MAX ( 'Date'[Date] ),
        FILTER ( 'Date', 'Date'[Sum] = b + c - 1 && 'Date'[Count] = 1 )
    )

Aquí está mi archivo de prueba para su referencia.

Hola @carlosagarcia,

Necesita crear una dimensión de fecha.

Date =
CALENDAR ( DATE ( 2020, 01, 01 ), DATE ( 2020, 12, 31 ) )

Luego, cree columnas para mostrar los días hábiles y el total acumulado.

Count =
VAR a = WEEKDAY ( 'Date'[Date], 2 ) RETURN IF ( a < 6, 1, 0 )
Sum =
CALCULATE (
    SUM ( 'Date'[Count] ),
    FILTER ( 'Date', 'Date'[Date] <= EARLIER ( 'Date'[Date] ) )
)

Crea una medida para mostrar la fecha.

Measure =
VAR a =
    SELECTEDVALUE ( 'Table'[Date] )
VAR b =
    SELECTEDVALUE ( 'Table'[Days] )
VAR c =
    CALCULATE ( MAX ( 'Date'[Sum] ), FILTER ( 'Date', 'Date'[Date] = a ) )
RETURN
    CALCULATE (
        MAX ( 'Date'[Date] ),
        FILTER ( 'Date', 'Date'[Sum] = b + c - 1 && 'Date'[Count] = 1 )
    )

Aquí está mi archivo de prueba para su referencia.

carlosagarcia

En respuesta a v-eachen-msft

Hola,

Estoy listo para probar su respuesta, pero me quedo atascado en la columna Messure.

Me sale un error en

Medida =
VAR a =
SELECTEDVALUE (‘Tabla'[Date] ), Necesito que esta sección sea la fecha de hoy o de mañana.
No tengo fecha para pasar, solo asumo que si las piezas se ordenan hoy o mañana, cuál debería ser la fecha esperada.
Intenté crear una columna con la fecha de hoy, pero el mensaje no la ve.
¿Algunas ideas?

En respuesta a carlosagarcia

Hola @carlosagarcia,

Cámbielo a HOY () o HOY () + 1.

var a = TODAY()

Asegúrese de que la dimensión de fecha tenga todas las fechas que necesite en el futuro.

carlosagarcia

En respuesta a v-eachen-msft

Gracias, funcionó a las mil maravillas.

Amitchandak

@carlosagarcia, tiene una tabla de fechas con el siguiente campo

Table
Date = CALENDAR(date(2018,01,01), date(2021,12,31)) 
Columns
Work Day = if(WEEKDAY([Date],2)>=6,0,1) 
Work Date = if(WEEKDAY([Date],2)>=6,BLANK(),[Date])  
Work Date Cont = if([Work Day]=0,maxx(FILTER('Date',[Date]<EARLIER([Date]) && [Work Day]<> EARLIER([Work Day]) ),[Date]),[Date])
Work Date cont Rank = RANKX(ALL('Date'),[Work Date Cont],,ASC,Dense)

Use Rank to Travel . Example Measure
Plus 10 Days = var _max =maxx(ALLSELECTED('Date'),'Date'[Work Date cont Rank])
return CALCULATE(Min('Date'[Date]),filter(ALL('Date'),'Date'[Work Date  Rank] =_max+10))

Para aprovechar al máximo la función de inteligencia del tiempo. Asegúrese de tener un calendario de fechas y que se haya marcado como la fecha en la vista de modelo. Además, únala con la columna de fecha de sus hechos. Refiera:
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/

Vea si mi seminario web sobre inteligencia de tiempo puede ayudar: https: //community.powerbi.com/t5/Webinars-and-Video-Gallery/PowerBI-Time-Intelligence-Calendar-WTD-Y …

Aprecie sus felicitaciones.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *