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
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
Fabcon_Europe_Social_Bogo

Europe’s largest Microsoft Fabric Community Conference

Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.

Power BI Carousel June 2024

Power BI Monthly Update - June 2024

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

RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

Top Solution Authors