Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

RechercheV dernière valeur si plusieurs fois la mê

F

Francis38

Guest
Bonjour Le Forum,

Je viens chercher de l'aide sur ce forum qui m'a déjà dépanné à plusieurs reprises.
Avec la fonction RechercheV je souhaite rechercher la dernière valeur 'Utilisation' dans la colonne A qui est associée à une date dans la colone B. La valeur 'Utilisation' est présente à plusieurs reprises. Que je mettre VRAI ou FAUX dans la formule, le résultat (affiché sur une autre feuille) n'est pas celui que j'attends.
Colone A Colone B
Utilisation 26/10/04
Indisponible 27/10/04
Rectification 28/10/04
Disponible 29/10/04
Garnissage 10/10/05
Rectification 11/10/05
Disponible 12/10/05
Contrôle 13/10/05
Utilisation 22/10/05
Utilisation 23/10/05
Disponible 30/10/05
Contrôle 01/11/05
Par la suite je souhaiterais faire effectuer cette opération en AUTO à l'aide d'une macro. Donc par la même occasion si vous pouvez aussi me proposer une solution. Pour info je ne suis pas un pro de VBA (heureusement il y a le Forum), mais j'ai fait quelques trucs pas mal.
J'espère avoir été assez clair dans mon explication, car mon fichier Xls est assez important 747 Ko.
Je remercie par avance ceux qui pourront m'aider, mais je n'en doute pas, car ce site est extraordinnaire de génie.
Bonne soirée à tous.
Francis de Vif (38)
 

Gadjo

XLDnaute Nouveau
Re : RechercheV dernière valeur si plusieurs fois la mê

Re,

J'ai essayer des trucs et je pensais avoir compris et trouvé l'astuce et je comprend pas.. Je présente ma formule :

Code:
=INDEX(J1:J1088;PETITE.VALEUR(SI(ET(I75:I585="NAPHTENE";INDEX(N75:N585;(LIGNE(I75:I585)-LIGNE(I9)))="Poids");LIGNE(I75:I585));2))

Petit zoom sur l'ajout qui fait que ça ne fonctionne plus :

Code:
ET(I75:I585="NAPHTENE";INDEX(N1:N585;(LIGNE(I75:I585)-LIGNE(I9)))="Poids")

Ici ce que j'ai essayé de faire c'est déjà de garder ma condition pour NAPHTENE et rajouter une condition pour avoir "Poids" d'inscrit 9 lignes plus haut et dans la colonne N.

J'ai aussi essayer ceci :

Code:
=INDEX(J1:J585;PETITE.VALEUR(SI(I75:I535="NAPHTENE";SI(INDEX(N1:N585;(LIGNE(I75:I585)-LIGNE(I9)))="Poids";LIGNE(I75:I535)));2))

Un emboîtement de SI() assez bidon et qui reviendrait à faire la formule du dessus. Comme je ne sais pas les priorités de vérifications avec ET(), je pensais que avec deux SI() ça aurait fonctionné : Il vérifie la première et si c'est OK il vérifie la deuxième et si c'est OK on a notre valeur..

L'erreur est #NOMBRE! et viendrait de la référence de ligne de mon INDEX, je suppose que ceci vient du fait que j'y effectue une opération mais je vois pas comment contourner cette contrainte..


EDIT :

Vous remarquerez que j'ai noté "J1088" dans la première formule pour la palge de référence. J'aurais pu mettre "J585", je ne cherche pas de valeur au-delà dans ce cas présent.
 
Dernière édition:

Modeste

XLDnaute Barbatruc
Re : RechercheV dernière valeur si plusieurs fois la mê

Re,

Le PETITE.VALEUR était adapté s'il y avait plusieurs occurrences de NAPHTENE. Ici, une combinaison de NAPHTENE et de "Poids" en colonne N et 9 lignes plus haut fera (je suppose!?) qu'il n'y aura plus qu'un seul cas.
Pour la double condition, dans ce cas de figure, il faut les multiplier entre elles (pour multiplier entre elles 2 matrices de VRAI/FAUX).

Sans pouvoir tester, un essai: quelque chose comme
Code:
=INDEX(J1:J1088;MIN(SI((I75:I585="NAPHTENE")*(DECALER(N75:N585;-9;)="Poids");LIGNE(I75:I585))))
Toujours avec une validation "matricielle"
eh, tu as vu? On retrouve le DECALER!
 

Gadjo

XLDnaute Nouveau
Re : RechercheV dernière valeur si plusieurs fois la mê

Franchement chapeau, je comprend pas vraiment tout par contre.. le multiplié correspond en fait à un "ET" pour des matrices lorsqu'elles son't dans un SI() ?
 

Modeste

XLDnaute Barbatruc
Re : RechercheV dernière valeur si plusieurs fois la mê

le multiplié correspond en fait à un "ET"
Tout à fait! ... qu'elles soient dans un SI, ou pas!

Fais le test suivant pour t'en convaincre:
Sélectionne, dans la barre de formule, la partie I75:I585="NAPHTENE" et appuie sur F9. Tu devrais avoir une matrice de FAUX, avec l'un ou l'autre VRAI, noyés dans la masse. (attention, n'appuie pas sur Enter ensuite: uniquement Escape!!!)
Si tu fais la même chose avec DECALER(N75:N585;-9="Poids", tu obtiens une autre matrice semblable à la première. Si tu les multiplies entre elles, seuls les VRAI * VRAI donneront comme résultat VRAI ... et donc, pour ceux-là seulement, on obtiendra un n° de ligne.
Ceci est un précipité du résumé d'un condensé ... à toi de voir si tu veux aller plus loin!

Puis-je déduire de ton "chapeau" que tu obtiens le bon résultat?
Je m'en vais profiter du soleil un moment!

@ plus tard,
 

Gadjo

XLDnaute Nouveau
Re : RechercheV dernière valeur si plusieurs fois la mê

Ok super, et oui ça fonctionne parfaitement avec toutes les conditions ! (d'où le chapeau) J'ai découvert les matrices il y a peu sous excel et c'était juste pour des opérations simples du type {=A1:A5*B1:B5}, donc c'est bon de savoir ce qu'il est possible de faire de ces matrices à côté de ça ^^

Un grand merci à toi Modeste, Je "débute" le vrai travail en profondeur sur Excel et tu m'as vraiment donné un grand coup de pouce !

Profite bien du soleill, je vais faire de même.

Bon week-end
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…