XL 2010 Retourner la valeur qui suit d’une recherche

bcharef

XLDnaute Accro
Bonjour à toutes et à tous.

J'ai le plaisir d'exposer une difficulté rencontrée de recherche dans une base de données, qui permettra de retourner àprés la premiére à la deuxiéme puis à la troisiéme ainsi de suite.

Devant cette difficulté, j'essaye de vous joindre un fichier exemple portant le résultat attendue.

Je vous remercie d'avance.

Salutations distinguées
 

Pièces jointes

  • RetournerLavaleurSuivanteD’uneRecherche.xlsx
    9.5 KB · Affichages: 22

JHA

XLDnaute Barbatruc
Bonjour à tous,

Un essai avec la fonction Agregat()
Code:
=INDEX($B$5:$B$13;AGREGAT(15;6;(LIGNE($C$5:$C$13)-LIGNE($C$5)+1)/($C$5:$C$13=$E5);NB.SI($E$5:$E5;$E5)))

JHA
 

Pièces jointes

  • RetournerLavaleurSuivanteD’uneRecherche.xlsx
    9.9 KB · Affichages: 28

bcharef

XLDnaute Accro
Bonjour JHA,
Re bonjour à toutes et à tous.

Sincérement, je viens de découvrir la fonction Agregat().

Merci pour le temps accordé à la présente solution.

Je suis dans l'obligation connaître son fonctionnement et de la tester sur mon cas.

Salutations.
 

JHA

XLDnaute Barbatruc
Bonjour à tous,

Si AGREGAT() te rebute, tu peux toujours passer par une formule matricielle en "F5".
Code:
=INDEX($B$5:$B$13;PETITE.VALEUR(SI($C$5:$C$13=$E5;LIGNE($C$5:$C$13)-LIGNE($C$5)+1);NB.SI($E$5:$E5;$E5)))
puis copier vers le bas.

JHA
 

bcharef

XLDnaute Accro
Re bonjour à toutes et à tous.

Je n'ai pas pu bien comprendre le mécanisme de cette fonction agrégat() d'une part, et, d'autre part, son exécution necessite un temps plus de 10 minutes.

Mais, l'effet du bug ne m' pas permis de vérifier l'éxactitude des résultats.

Merci encore une fois.

Salutations.
 

bcharef

XLDnaute Accro
Bonsoir à toutes et à tous

Enfin, la fonction agrégat() a bien abouti aux résultats voulus.

Dans l'attente de l'exécution de la formule matricielle recommandée par nôtre ami JHA, qui doit être valider par : Ctrl +Sfhit+Entrée.

Cordialement.
 

bcharef

XLDnaute Accro
Re

J'ai l'immense plaisir de vous signaler que l'application des deux codes formulées par notre ami JHA ont abouti aux même résultats prévu.​

Il est à noter que les deux codes proposées ont fait l'objet d'une légére correction en éliminant la fonction utilisée Index () et qui se présentent ci-aprés:​

Premier code :
Code:
=AGREGAT(15;6;(LIGNE($C$5:$C$13)-LIGNE($C$5)+1)/($C$5:$C$13=$E5);NB.SI($E$5:$E5;$E5))

Deuxiéme code:
Code:
=PETITE.VALEUR(SI($C$5:$C$13=$E5;LIGNE($C$5:$C$13)-LIGNE($C$5)+1);NB.SI($E$5:$E5;$E5))

L'application de ces deux codes peuvent s'appliquer sur une plage de texte.​

Merci encore une fois de l'effort consenti pour la résolution de la difficuté.​

Amicalement.​

 

JHA

XLDnaute Barbatruc
Bonjour à tous,

Dans ton cas, il est possible d'enlever la fonction index() car la colonne ref est égale aux lignes de la petite valeur (1 à 9).
Si les ref sont différentes (ex: A;B;C;D; etc..), il faut laisser la fonction index().

JHA
 

Discussions similaires

Statistiques des forums

Discussions
311 730
Messages
2 081 978
Membres
101 854
dernier inscrit
micmag26