Re : Extraire à partir d'une valeur unique
Bonjour,
En colonne A de la feuille des présents, ce sont des numéros qui sont obtenus par formule
C'est vrai que ces n° existaient déjà dans ton fichier mais tous, absents ou présents
Maintenant, il y a le n° des présents et c'est tout, les n° absents ont un 0
C'est le même résultat que ce que tu as fait en colonne E
Tu peux supprimer carrément la colonne A et la formule de la feuille des n° libres fonctionne en se basant sur la colonne E
Mais avec une autre formule
En E3 : =SI(B3="";0;LIGNES(E$3:E3))
"Peut-on adapter tous ce que tu as fait en prenant en référence le fait que la cellule nom est vide en col B"
Je ne sais pas. Tout ce que je sais, c'est que j'ai essayé, sans succès
J'aurais bien aimé faire le contraire de ce que tu dis : extraire les noms à partir des n° > à 0 de la colonne A
mais Equiv(), Decaler() et les autres ne veulent pas fonctionner en 3D
La formule de la colonne A va chercher tous les n° (présents ou libres) dans les 3 feuilles
Si elle trouve le n° (pour A9 par exemple, c'est le n° 7)
elle cherche le nombre LIGNE(A$3:A9) par cette partie :
=SOMMEPROD(NB.SI(INDIRECT(NomOnglets&"!B4:B200");TEXTE(LIGNES(A$3:A9);"0")))
Cette partie de la formule donne 1 si le n° existe (en espérant qu'il n'y ait pas de doublons)
sinon, elle renvoie 0
Le 1 ou le 0, multiplié par LIGNE(A$3:A9) donne 7 ou 0
Ce sont ces 0 que va chercher la formule de la feuille des N° libres
=PETITE.VALEUR(SI(NB.SI(NoTous;LIGNE(INDIRECT(B$3&":"&B$4)))=0;LIGNE(INDIRECT(B$3&":"&B$4)));LIGNES(B$5:B7))
LIGNE(INDIRECT(B$3&":"&B$4)) représente une matrice de x n° dont les bornes sont en B3 et B4
LIGNE(INDIRECT(31&":"&36)) renvoie les nombres de 31 à 36 en simulant une plage comme ça ={31;32;33;34;35;36}
PETITE.VALEUR(SI(NB.SI(NoTous;{31;32;33;34;35;36})=0;{31;32;33;34;35;36});1)
renvoie le plus petit de ces nombres de 31 à 36 n'existant pas dans la plage "NoTous"
PETITE.VALEUR(SI(NB.SI(NoTous;{31;32;33;34;35;36})=0;{31;32;33;34;35;36});2)
renvoie le suivant non présent dans la plage "NoTous"
PETITE.VALEUR(SI(NB.SI(Plage;Critère);1 puis 2 puis 3, etc)
S'il y a le nom des onglets dans une liste nommée, c'est parce que la formule de la colonne A en a besoin
NB.SI(INDIRECT(NomOnglets&"!B4:B200"))
Des formules en 3D ici :
Ce lien n'existe plus