Forum Discussion
Response times
- 5 years ago
There is a difference between an empty string ("") and no data (null). The COALESCE function only works with the second scenario. If you know that for BP your demand data may be an empty string "" then you need to either adjust the first line, or replace the empty string with BLANK() (which produces a null value)
Now you are entering really dangerous territory. NOW() can have many different meanings. Here is one interpretation.
Difference =
var e = COALESCE(CompteRendu[Date et Heure Début],UTCNOW())
var d = DATEDIFF(CompteRendu[Date et Heure Demande],e,MINUTE)
return if(d<0,0,d-1440*sumx(CALENDAR(CompteRendu[Date et Heure Demande],e),if(WEEKDAY([Date],2)>5,1,0)))
Afin de recentrer le probléme voici le tableau:
Pour résumé, le tableau résume les compte rendu des demandes d'intervention mais aussi des maintenances.
/!\ Les maintenance n'ont pas de "date et heure de demande"
| CR | SUR | N° | Détail | Date et heure demande | Date et heure début | Résultat attendu |
| 1 | DI | 21 | Serait il possible de baisser le chauffage | 11/8/20 15:34 | 16/8/20 8:30 | Délais en minutes |
| 2 | DI | 23 | Serait il possible de baisser le chauffage | 3/9/20 11:20 | 9/9/20 15:22 | Délais en minutes |
| 3 | BP | 34 | Maintenance climatisation | (vide) / 0 | 16/9/20 9:12 | 0 |
| 4 | DI | 56 | Serait il possible de baisser le chauffage | 4/9/20 12:15 | 19/8/20 13:14 | Délais en minutes |
| 5 | BP | 36 | Maintenance chauffage | (vide) / 0 | 16/9/20 10:21 | 0 |
Le but est de calculer le délais d'intervention sur les demandes sans prendre en compte les samedi et dimanche.
Si la date de début est antérieur à la date de la demande, alors =0.
Si BP alors = 0
Si pas de date de début alors = Now.
Merci pour l'aide, je suis vraiment dans une impasse.
- lbendlin5 years ago
Super User
please revalidate your rule/expected outcome for row 4.
Here is the adjusted calculated column after re-reading your explanation.
Difference = var e = COALESCE(CompteRendu[Date et Heure Demande],UTCNOW()) var d = DATEDIFF(e,CompteRendu[Date et Heure Début],MINUTE) return if(d<0,0,d-1440*sumx(CALENDAR(e,CompteRendu[Date et Heure Début]),if(WEEKDAY([Date],2)>5,1,0))) - Aurélien5 years agoFrequent Visitor
J'ai toujours ce message d'erreur, car lorsque j'ai un "bp" la valeur de "Date et Heure Demande" est vide. Ou parfois il n'y a pas de date de début.
- lbendlin5 years ago
Super User
There is a difference between an empty string ("") and no data (null). The COALESCE function only works with the second scenario. If you know that for BP your demand data may be an empty string "" then you need to either adjust the first line, or replace the empty string with BLANK() (which produces a null value)
- Aurélien5 years agoFrequent Visitor
Super, cà fonctionne !!! Mais j'ai desormais un autre probléme, je refais un topic.
Ps: cette formule peut elle être adaptée en Power Query ?
- lbendlin5 years ago
Super User
Yes, since the computation happens inside the row it is possible to implement in Power Query. You would need to use the same process - create the list, and then identify sat/sun via https://docs.microsoft.com/en-us/powerquery-m/date-dayofweek
This actually reminds me - what do you want to do when the start or end dates are on weekend days?