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.
Hola a todos.
Tengo un pequeño desafío, espero que todos ustedes, gente inteligente, puedan ayudarme. 🙂
He hecho un informe para una de nuestras líneas de productos, pero estoy colgado con la parte final.
Quiero ver cuando la línea tiene horas libres, así que sabemos cuándo podemos reservar otros pedidos.
En este momento, el libro de informes todas las horas por fecha de envío, no concidendo las horas máximas que podemos usar.
Necesito una fórmula de Dax que mueva horas overbooked a la fecha anterior si, el día del envío está lleno.
Así que si hemos reservado 5 horas más de lo que la línea puede gestionar el 15/10, entonces esas 5 horas deben asignarse al 14/10. Si eso deja 2 horas más de las que podemos manejar el 14/10, entonces esas horas deben ser asignadas a 13/10 (Hoy)
Una vez que lleguemos hoy, todas las horas restantes deben ser colocadas allí no importa qué.
De esa manera podemos detectar fácilmente si hemos overbooked la línea.
Aquí hay un ejemplo de cómo se ve, y lo que necesito. Por ejemplo, las horas máximas disponibles cada día son 11.
Aquí están los datos sin procesar falsos, puede poner en Power BI. 🙂
Fecha de entrega | Proyecto | Horas |
14-10-2020 | A | 2 |
15-10-2020 | B | 7 |
16-10-2020 | C | 5 |
14-10-2020 | D | 4 |
17-10-2020 | E | 6 |
17-10-2020 | F | 9 |
14-10-2020 | G | 4 |
17-10-2020 | H | 8 |
Espero que alguien tenga una idea brillante para este tema. 🙂
Solved! Go to Solution.
Hola, @Thim
Según su descripción, creé datos para reproducir su escenario. El archivo pbix se adjunta al final.
T1:
T2:
T3:
Puede crear una nueva consulta en blanco con los siguientes códigos m.
(tab as table)=>
let
Source = tab,
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Delivery Date", type date}, {"Project", type text}, {"Hours", Int64.Type}}),
#"Grouped Rows" = Table.Group(#"Changed Type", {"Delivery Date"}, {{"TotalHours", each List.Sum([Hours]), type nullable number}}),
#"Added Custom" = Table.AddColumn(#"Grouped Rows", "Custom", each let
date = [Delivery Date],
list = Table.SelectRows(
#"Grouped Rows",
each [Delivery Date]>=date
)[TotalHours],
s = List.Reverse(list),
val = List.Accumulate(
s,
0,
(s,c)=>if s+c>11 then s+c-11 else 0
)
in
val
),
#"Added Custom1" = Table.AddColumn(#"Added Custom", "Custom.1", each let
d = [Delivery Date],
v = Table.SelectRows(#"Added Custom",each [Delivery Date]>d),
x = Table.Min(v,"Delivery Date")[Custom]
in
if [Delivery Date]=List.Min(#"Added Custom"[Delivery Date])
then if [Custom]>0 then 11+[Custom] else [TotalHours]
else if [Custom]>0 then 11 else x+[TotalHours])
in
#"Added Custom1"
A continuación, puede invocar la función introduciendo el parámetro 'T1', 'T2', 'T3' y obtener tres tablas.
Saludos
Allan
Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Hola, @Thim
Según su descripción, creé datos para reproducir su escenario. El archivo pbix se adjunta al final.
T1:
T2:
T3:
Puede crear una nueva consulta en blanco con los siguientes códigos m.
(tab as table)=>
let
Source = tab,
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Delivery Date", type date}, {"Project", type text}, {"Hours", Int64.Type}}),
#"Grouped Rows" = Table.Group(#"Changed Type", {"Delivery Date"}, {{"TotalHours", each List.Sum([Hours]), type nullable number}}),
#"Added Custom" = Table.AddColumn(#"Grouped Rows", "Custom", each let
date = [Delivery Date],
list = Table.SelectRows(
#"Grouped Rows",
each [Delivery Date]>=date
)[TotalHours],
s = List.Reverse(list),
val = List.Accumulate(
s,
0,
(s,c)=>if s+c>11 then s+c-11 else 0
)
in
val
),
#"Added Custom1" = Table.AddColumn(#"Added Custom", "Custom.1", each let
d = [Delivery Date],
v = Table.SelectRows(#"Added Custom",each [Delivery Date]>d),
x = Table.Min(v,"Delivery Date")[Custom]
in
if [Delivery Date]=List.Min(#"Added Custom"[Delivery Date])
then if [Custom]>0 then 11+[Custom] else [TotalHours]
else if [Custom]>0 then 11 else x+[TotalHours])
in
#"Added Custom1"
A continuación, puede invocar la función introduciendo el parámetro 'T1', 'T2', 'T3' y obtener tres tablas.
Saludos
Allan
Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Salud. Justo lo que necesitaba. 🙂
@Thim
¿Puede agregar esto como una medida y probar?
Total Hours Allocated =
VAR _LastestDate = CALCULATE(MIN(Booking[Delivery Date]),ALLSELECTED(Booking[Delivery Date]))
VAR _CountAll = CALCULATE(COUNTROWS(VALUES(Booking[Delivery Date])),Booking[Delivery Date])
VAR _TotalHours = CALCULATE(SUM(Booking[Hours]),ALLSELECTED(Booking[Delivery Date]))
return
IF(
MAX(Booking[Delivery Date]) <> _LastestDate,
11,
_TotalHours - (11 * _CountAll- 1 ) + SUM(Booking[Hours])
)
________________________
Si mi respuesta fue útil, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla
Haga clic en el icono Thumbs-Up si le gusta esta respuesta 🙂
⭕ Subscribe and learn Power BI from these videos
⚪ Website ⚪ LinkedIn ⚪ PBI User Group
Gracias por la respuesta, y ayudar. 🙂
La medida funciona, cuando hemos overbooked la línea, pero una vez que hay horas libres se pone un poco funky.
Aquí hay un ejemplo del resultado, cuando retoque las horas reservadas.
En esta situación, simplemente debe aceptar todas las fechas con sus horarios reservados, ya que todos los días son belov 11.
@Thim
mostrar todos los escenarios y los resultados esperados.
________________________
Si mi respuesta fue útil, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla
Haga clic en el icono Thumbs-Up si le gusta esta respuesta 🙂
⭕ Subscribe and learn Power BI from these videos
⚪ Website ⚪ LinkedIn ⚪ PBI User Group
El primer ejemplo, es cuando hemos overbooked.
Segundo ejemplo, es cuando 1 día está overbooked.
tercer ejemplo, es cuando varios días están overbooked, pero hay días en el medio.
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |