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

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

  • Test.xlsx
    11.8 KB · Affichages: 5

danielco

XLDnaute Accro
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

  • Margot_tr Test(1).xlsx
    12.4 KB · Affichages: 3

Jocelyn

XLDnaute Barbatruc
Bonjour le Forum,
Bonjour margot_tr,

Un essai en fichier joint avec une réduction de la formule au niveau du si(esterreur(.......

Cordialement

EDIT : Oup's Bonjour danielco, désolé pour la collision je n'ais pas raffraichi la page
 

Pièces jointes

  • Test.xlsx
    12.3 KB · Affichages: 4

margot_tr

XLDnaute Nouveau
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
 

danielco

XLDnaute Accro
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

  • Margot_tr Test(1).xlsx
    12.2 KB · Affichages: 5

margot_tr

XLDnaute Nouveau
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.
 

Discussions similaires

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

Statistiques des forums

Discussions
315 080
Messages
2 116 015
Membres
112 636
dernier inscrit
fred 1969