Report de la dernière occurrence d'une tâche
Bonjour,
A partir d’un tableau (lignes = mois, colonne = employés, corps = tâches),
Je souhaite reporter la date de la dernière occurrence pour des tâches affectées aux employés.
Il peut y avoir plusieurs tâches au cours d’une journée (ex ‘V/1’, ‘H/2’, ‘R/AC’ )
Dans ces cas je souhaiterais que :
Si pour l’employé 7
‘2’ et ‘V’ ont pour dernière occurrence le 18 Mai,
Alors dans le tableau de report,
18 Mai apparait dans la colonne ‘V’ et dans la colonne ‘2’
sur la ligne Employé 7
Malgré des sujets comparables déjà résolus je n'arrive pas à adapter les réponses fournies à mon cas
Merci d’avance au généreux / à la généreuse qui me portera secours, je me noie
glouglou..
glou
gl
Bonjour,
ci joint un fichier :
Mais il ne prend pas en compte les données multiples... Mais c'est un début
@ bientôt
LouReeD
Bonjour,
Je t'ai pondu cette formule un peu compliquée pour faire ce que tu as à faire :
=SIERREUR(INDIRECT(ADRESSE(1;MAX(SI(SIERREUR(TROUVE(C$3;Mai!$B2:$AF2);0)>0;COLONNE(Mai!$B2:$AF2);""));;;"Mai"));"")
Mise en garde par rapport à la solution : Le problème c'est que tu mets plusieurs tâches dans la même cellule, du coup je suis obligé de chercher un caractère dans une chaîne de texte, ce qui fait que si tu nommes une tâche "A", et une autre "CA", la formule trouvera ta tâche A dans la chaîne de texte "CA", c'est le seul problème, fais attention en nommant tes tâches du coup.
Tu trouveras le fichier à la fin du paragraphe d'explication.
On va commencer par les premières couches de la fonction :
=SIERREUR([...];"")
Si la tâche n'est pas trouvée, au lieu de renvoyer un joli code d'erreur, on met ça : ""
INDIRECT([...])
Sert à renvoyer la valeur d'une cellule à partir d'une adresse donnée sous forme de texte
ADRESSE(1;[...];;;"Mai"));"")
C'est cette fonction qui va alimenter INDIRECT, elle va fournir une adresse à partir de 3 données :
numéro de ligne
numéro de colonne
feuille
La ligne est celle contenant les dates, la première
La colonne... est renvoyée par plein de formules
La feuille est "Mai"
MAX(SI(SIERREUR(TROUVE(C$3;Mai!$B2:$AF2);0)>0;COLONNE(Mai!$B2:$AF2);""))
Bon celle là je vais tout expliquer d'un coup, accroche toi
Toutes ces fonctions permettent uniquement de trouver la dernière colonne qui contient la tâche recherchée.
Pour trouver la dernière, on a d'abord la fonction TROUVE
TROUVE(C$3;Mai!$B2:$AF2)
Elle va chercher dans chaque colonne la tâche et renvoyer une valeur si elle la trouve, un code d'erreur si elle ne la trouve pas.
La fonction SIERREUR...
SIERREUR([...];0)
permet à tout ça de fonctionner, comme je l'ai dis, trouve renvoie des codes d'erreurs, et les formules n'aiment pas les codes d'erreurs, du coup, on utilice SIERREUR pour plutôt renvoyer 0
La fonction SI
SI([...]>0;COLONNE(Mai!$B2:$AF2)
va renvoyer un tableau (pour ça il faut valider la formule en faisant Ctrl + Shift + Entrée), ce tableau contiendra les valeurs de colonnes trouvées.
Enfin, la fonction MAX
MAX([...])
prendra la valeur la plus élevée, autrement dis, la dernière colonne, la dernière date.
Voilà...
Super
Merci infiniment pour vos réponses les gars, vous m'avez fait gagné un temps fou
Soyez-en remercié