XL 2010 Index + Equiv en prenant la dernière occurrence ou en ne prenant pas les cellules masquées

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

margot_tr

XLDnaute Nouveau
Bonjour,

Je bloque sur la réalisation d'un fichier excel. En effet, j'ai un tableau à faire avec pour chaque ligne la date, le numéro d'un four, la chambre du four en question, les travaux à faire et enfin la date de réalisation des travaux. Je souhaiterais que lorsque je rentre dans un autre tableau un numéro de four et un numéro de chambre, on me renvoi les travaux associés et si la chambre n'est pas dans le tableau (donc qu'il n'y a pas de travaux à faire), on me renvoie masticage.

J'ai bien réussi à faire la recherche comme tel :
{=SI(ESTERREUR(INDEX(Tableau1[travaux];EQUIV($B$2&$B$3;Tableau1[Four]&Tableau1[Chambre];0)));SI($B$25=0;"";"Masticage");INDEX(Tableau1[travaux];EQUIV($B$2&$B$3;Tableau1[Four]&Tableau1[Chambre];0)))}

Mais c'est là que vient mon problème : lorsque les travaux sont fait, je masque les cellules mais elles ne disparaissent pas donc au bout d'un moment, il y aura plusieurs lignes pour le four 10 chambre 5 par exemple or la formule me renvoie la première ligne où sa apparaît alors que moi je voudrais la dernière (où alors la seul qui n'est pas masquée).

Merci beaucoup si vous prenez un peu de votre temps pour répondre !
Bonne journée.
 

Pièces jointes

Bonjour,

Plutôt que masquer les cellules, ajoute une colonne pour mettre un "x". Tu pourras alors rendre le texte invisible avec une mise en forme conditionnelle. J'ai modifié la formule :

VB:
=SIERREUR(INDEX(Tableau1[Travaux];SOMMEPROD((Tableau1[Four]=$B$2)*(Tableau1[Chambre]=$B$3)*(Tableau1[x]<>"x")*LIGNE(Tableau1[Date]))-9;);"masticage")

Daniel
 

Pièces jointes

Merci beaucoup pour votre réactivité et vos réponses !

Danielco ça marche plutôt bien ! Est ce que ça serait possible de faire la même chose mais qu'au lieu que ça " se masque " en mettant un x, ça se masque en rentrant une date dans la colonne " date de réalisation " ?

Merci d'avance
 
Voici. La formule est maintenant matricielle :

VB:
=SIERREUR(INDEX(Tableau1[Travaux];MAX((Tableau1[Four]=$B$2)*(Tableau1[Chambre]=$B$3)*(Tableau1[Date de réalisation]="")*LIGNE(Tableau1[Date]))-9;);"masticage")
Si j'ai le temps, tout à l'heure, je mettrai une formule non matricielle, surtout pour le fun, parce que, pour une seule formule, ce n'est pas pénalisant.

Daniel
 

Pièces jointes

Voici. La formule est maintenant matricielle :

VB:
=SIERREUR(INDEX(Tableau1[Travaux];MAX((Tableau1[Four]=$B$2)*(Tableau1[Chambre]=$B$3)*(Tableau1[Date de réalisation]="")*LIGNE(Tableau1[Date]))-9;);"masticage")
Si j'ai le temps, tout à l'heure, je mettrai une formule non matricielle, surtout pour le fun, parce que, pour une seule formule, ce n'est pas pénalisant.

Daniel

Merci ça marche très bien ! Juste quand je la rentre dans mon vrai fichier qui est plus complexe, la ligne ne s’efface pas lorsque je rentre une date dans "date de réalisation" mais il prend bien la valeur rentrer la plus récente lorsqu'il y a plusieurs ligne avec le même four et la même chambre du coup ça me va très bien quand même.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
8
Affichages
1 K
Compte Supprimé 979
C
Réponses
5
Affichages
2 K
Retour