Forum Discussion
Response times
- 6 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)
Il ce peux aussi que l'intervention n'ai pas encore débutée
Je ne comprend pas d'où vient le [Date].
Merci, cordialement
What does DATEDIFF return for an empty Début date?
Difference =
var d = DATEDIFF(CompteRendu[Date et Heure Demande],CompteRendu[Date et Heure Début],MINUTE)
return if(ISBLANK(CompteRendu[Date et Heure Début]) || d<0,0,d-1440*sumx(CALENDAR(CompteRendu[Date et Heure Demande],CompteRendu[Date et Heure Début]),if(WEEKDAY([Date],2)>5,1,0)))
"Date" is a hardcoded column name result of the CALENDAR function.
- Aurélien6 years agoFrequent Visitor
Quand la date est vide alors on calcule le délais par rapport à "today()" ou "now()".
Exemple:
Date de la demande: 20/09/2020 à 08h00
Date de début (si vide): NOW()
Merci
- lbendlin6 years ago
Super User
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))) - Aurélien6 years agoFrequent Visitor
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.
- lbendlin6 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élien6 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.
- lbendlin6 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élien6 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 ?
- lbendlin6 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?