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

mostrar los días de la semana en fila en la matriz visual

Necesito mostrar 11 días de la semana en la matriz visual: 3 días pasados hoy, hoy y 7 días después de hoy como se muestra a continuación. Además, saltarse los días de semana y necesitar el día asociado con él. Tengo una tabla de calendario que tiene una columna para el día de la semana como 1 para el día de la semana y 0 para el fin de semana. ¿Cómo puedo hacerlo? Si no es posible en Matrix, entonces también puedo ir por la tabla.

akapoor03_0-1646806083651.png

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Hola

¿Qué tal si crea una columna calculada en la que calcula si cada fecha está en el rango que desea mostrar y usa esa columna como filtro? Sin embargo, debe asegurarse de que la tabla del calendario se cargue / calcule cada día. Aquí está la fórmula que se me ocurrió para la nueva columna. Puede modificarlo para asegurarse de que también funcione si el inicio o el final del rango cae en sábado.

Is In Range = 
VAR _Today = TODAY()//for test purposes: enter the date to test with: DATE(2022,3,14)

//Check how many weekend-day are ahead: check 11 days ahead, as there can be 4 weekend days max
VAR _WeekendDaysAhead = COUNTROWS(FILTER('Calendar','Calendar'[Weekday]=0 && 'Calendar'[Date] <= _Today+11 && 'Calendar'[Date]>_Today))
//Calculate the last day in the range: if there 2 weekend days ahead, add 9 days, otherwise 11 days.
//Please verify if this logic works if there are 3 weekend days ahead
VAR _LastDayInRange = IF(_WeekendDaysAhead = 2,_Today+9,_Today+11)

VAR _WeekendDaysPast  = COUNTROWS(FILTER('Calendar','Calendar'[Weekday]=0 && 'Calendar'[Date] >= _Today-5 && 'Calendar'[Date]< _Today))
VAR _FirstDayInRange = IF(_WeekendDaysPast = 0, _Today-3,_Today-5) 

RETURN IF('Calendar'[Date] >= _FirstDayInRange && 'Calendar'[Date] <= _LastDayInRange && 'Calendar'[Weekday] =1,1,0)

La tabla de calendario resultante:

DoubleJ_0-1646899294780.png


Espero que esto ayude.

JJ

View solution in original post

4 REPLIES 4
Syndicate_Admin
Administrator
Administrator

Hola

¿Qué tal si crea una columna calculada en la que calcula si cada fecha está en el rango que desea mostrar y usa esa columna como filtro? Sin embargo, debe asegurarse de que la tabla del calendario se cargue / calcule cada día. Aquí está la fórmula que se me ocurrió para la nueva columna. Puede modificarlo para asegurarse de que también funcione si el inicio o el final del rango cae en sábado.

Is In Range = 
VAR _Today = TODAY()//for test purposes: enter the date to test with: DATE(2022,3,14)

//Check how many weekend-day are ahead: check 11 days ahead, as there can be 4 weekend days max
VAR _WeekendDaysAhead = COUNTROWS(FILTER('Calendar','Calendar'[Weekday]=0 && 'Calendar'[Date] <= _Today+11 && 'Calendar'[Date]>_Today))
//Calculate the last day in the range: if there 2 weekend days ahead, add 9 days, otherwise 11 days.
//Please verify if this logic works if there are 3 weekend days ahead
VAR _LastDayInRange = IF(_WeekendDaysAhead = 2,_Today+9,_Today+11)

VAR _WeekendDaysPast  = COUNTROWS(FILTER('Calendar','Calendar'[Weekday]=0 && 'Calendar'[Date] >= _Today-5 && 'Calendar'[Date]< _Today))
VAR _FirstDayInRange = IF(_WeekendDaysPast = 0, _Today-3,_Today-5) 

RETURN IF('Calendar'[Date] >= _FirstDayInRange && 'Calendar'[Date] <= _LastDayInRange && 'Calendar'[Weekday] =1,1,0)

La tabla de calendario resultante:

DoubleJ_0-1646899294780.png


Espero que esto ayude.

JJ

@DoubleJ ¿Cómo puedo convertir esto para mostrarme los próximos 7 días hábiles a partir de hoy?

También hoy considerando que se publicará en el servicio Power Bi por lo que debería funcionar de acuerdo con el timezome (Austrlia, melbourne)

Syndicate_Admin
Administrator
Administrator

@akapoor03 , No muy claro. Puede usar el rango del día de trabajo para poner esto en marcha

Día laborable = if(WEEKDAY([Fecha],2)>=6,0,1)
Fecha de trabajo = if(WEEKDAY([Date],2)>=6,BLANK(),[Date])
Fecha de trabajo cont Rank = RANKX(ALL('Date'),[Fecha de trabajo],,ASC,Dense)

nueva medida =
var _max = maxx(allselected(Date),Date1[Workday Rank])
var _min = _max, -1 +1
devolución
calculate( sum(Table[Value]), filter('Date', 'Date'[Workday Rank] >=_min && 'Date'[Workday Rank] <=_max))

Viajar a través de los días de trabajo - ¿Qué es el día de trabajo siguiente / anterior?
https://community.powerbi.com/t5/Community-Blog/Travelling-Across-Workdays-Decoding-Date-and-Calenda...

@amitchandak Para resumir mi requerimiento-

Necesito mostrar 11 días de trabajo en una tabla o matriz visual y esos días son 3 días antes de hoy, hoy y 7 días después de hoy.

Hice las 3 columnas que dijiste anteriormente, pero no puedo entender la medida de cómo se mostrarán estos 11 días en visual

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.