Formule

bonjour au forum

j'ai une liste d'élèves avec des relevés de congés

je voudrais automatiser le calcul du nombre de jours entre deux dates de congés

je joins mon tableau test

merci

tomatito37

Bonjour,

Pour calculer le nombre de jours entre deux dates tu peux faire de la façon suivante :

Avec la formule NB.JOURS.OUVRES ou NB.JOURS.OUVRES.INTL (Si tu souhaites simplement savoir le nombre de jours ouvrés.

Sinon si tu veux tous les jours : Date1 - Date2

Comme les dates sont en fait des nombres, (1 pour le 1/1/1900 et ainsi de suite), tu peux tout à faire les soustraires, vérifie juste si il faut enlever ou ajouter 1 au calcul, avec une valeur expérimentale dont tu connais le résultat.

Merci Ausecour,

ça ok

c'est ce que je fais : je veux connaître tous les noms (date 1- date 2)

simplement si j'ai une liste de 1000 élèves, il faut que mon calcul redémarre à chaque changement d'élève

Ah d'accord, je crois avoir compris cette fois, merci de me dire si ça convient :

La formule de la première ligne expliquée :

{=SI(LIGNE()=MAX(SI($A$2:$A$25=$A2,LIGNE($A$2:$A$25),"")),SOMME.SI($A$2:$A$25,$A2,$G$2:$G$25),"")}

Le premier si vérifie qu' on soit bien à la dernière ligne contenant ce matricule, pour cela il a besoin de comparer son numéro de ligne renvoyé par LIGNE(), et d'un maxi (en rouge).

Le maxi est fait par rapport aux lignes, il va chercher le numéro de ligne le plus grand, contenant le matricule recherché, autrement dis, le numéro de la dernière ligne.

Ce maxi prend en entrée... un tableau (et oui c'est posible d'en génerer un avec la fonction SI), d'oú l'importance des { } en debut et fin de fonction (Valider la formule avec le raccourcis Ctrl + Shift + Entrée).

La fonction Si génère un tableau de la façon suivante :

Sur toute la plage donnée, pour chaque ligne, la fonction vérifie que le matricule de l'élève correspond à celui recherché, si c'est le cas, on renvoie le numéro de la ligne traitée, dans le cas contraire, du texte ( "" ).

Enfin, si on est bien à la dernière ligne, on passe au calcul en vert, une Somme avec condition, on fait la somme des jours attribués au matricule.

Merci pour cette explication Ausecours

je comprends pour le total par élève pour l'ensemble des absences

mais ce que je souhaite c'est le nombre de jours entre chaque interruption de période pour un même élève....

tomatito 37

Bonjour,

Désolé je suis long à comprendre parfois...

Du coup j'ai bien compris le problème cette fois, ton seul soucis dans ton fichier c'était que tu ne testais pas les bons matricules.

Par exemple =SI(A5=A4;(D4-E3+1);"")

Tu compares le matricule de la ligne 4 et de la ligne 5, alors que tu fais la différence des dates entre la ligne 3 et la ligne 4, soit une ligne de décalage, je t'ai corrigé l'erreur sur ton fichier, tu peux avoir le nombre de jours qui s'écoulent à chaque fois.

Juste une erreur dans ton fichier :

matricule 2 congé 26/01/2018 31/01/2018

matricule 2 congé 26/01/2018 04/02/2018

Cet élève commence deux congés en même temps, seule ligne qui renvoie un -4

Espérant avoir pu t'aider cette fois.

Voici le fichier corrige :

Merci bien Ausecours

je regarde tranquillement ce wk

merci

A bientôt Ausecours

À bientôt,

J'espère que mon aide t'a satisfait.

Rechercher des sujets similaires à "formule"