Don't miss your chance to take the Fabric Data Engineer (DP-700) exam on us!
Learn moreWe've captured the moments from FabCon & SQLCon that everyone is talking about, and we are bringing them to the community, live and on-demand. Starts on April 14th. Register now
Hola
Tengo una columna llamada "Fecha de inicio" con formato de fecha y una columna llamada "Duración" con formato de número entero. Estoy buscando crear una columna llamada "Fecha de finalización" que agregue el número de días hábiles (de lunes a viernes) de la columna "Duración" a la columna "Fecha de inicio".
¡Cualquier ayuda será muy apreciada!
Por ejemplo:
| Fecha de inicio | Duración | SALIDA DESEADA |
| Lunes, 15 de abril de 2024 | 4 | Viernes, 19 de abril de 2024 |
| Miércoles, 1 de mayo de 2024 | 6 | Jueves, 9 de mayo de 2024 |
| Miércoles, 5 de junio de 2024 | 10 | Miércoles, 19 de junio de 2024 |
| Domingo, 17 de marzo de 2024 | 3 | Miércoles, 20 de marzo de 2024 |
Puedes resolverlo en Power BI utilizando Power Query y una función personalizada que agregue solo días hábiles. Una opción práctica es usar List.Dates para generar fechas a partir de la "Fecha de inicio", filtrar solo los días laborables (lunes a viernes usando Date.DayOfWeek), y luego tomar la fecha correspondiente según la duración. Aquí tienes el enfoque:
Abre Power Query.
Añade una columna personalizada con este código:
startDate = [Fecha de inicio],
duration = [Duración],
datesList = List.Dates(startDate, duration * 2, #duration(1,0,0,0)),
workdays = List.Select(datesList, each Date.DayOfWeek(_, Day.Monday) <= 4),
endDate = workdays{duration - 1}
in
endDate
Hola @mweyri01 ,
Aquí está mi solución.
1. Agregue 2 columnas calculadas en la tabla 'Fecha':
Working Day = IF ( NOT WEEKDAY ( 'Date'[Date], 2 ) IN { 6, 7 }, TRUE(), FALSE() )Working Day Number =
RANKX (
FILTER (
'Date',
'Date'[Working Day]
),
'Date'[Date],
,
ASC
) - NOT 'Date'[Working Day]
Agregue una columna calculada en 'Tabla':
End Date =
VAR __rank = RELATED('Date'[Working Day Number])
VAR __working_day_number = __rank + 'Table'[Duration]
VAR __result = CALCULATE(MIN('Date'[Date]),FILTER(ALL('Date'),'Date'[Working Day Number] = __working_day_number && 'Date'[Working Day]))
RETURN
__result
Saludos
Gao
Equipo de apoyo a la comunidad
Si hay alguna publicación que ayude, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
Si no entiendo sus necesidades o aún tiene problemas al respecto, no dude en hacérnoslo saber. ¡Muchas gracias!
Cómo obtener respuestas rápidas a sus preguntas -- Cómo proporcionar datos de ejemplo en el foro de Power BI -- Grupo de usuarios de Power BI de China
Hola @mweyri01
He asumido que el nombre de su mesa es Current_table
Pruebe a continuación DAX:
Fecha de finalización =
VAR _startDate = Current_table[Fecha de inicio]
VAR _duration = Current_table[Duración]
VAR _endDate =
_startDate +
INT((_startDate + _duration + 5) / 7) * 2 +
MOD((_startDate + _duration), 7) - MOD(_startDate, 7)
DEVOLUCIÓN
_endDate + SI (MOD(_endDate, 7) > 4, 2, 0)
https://analyticpulse.blogspot.com
If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.
A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.
Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.