Est-ce qu'INDEX/EQUIV est la solution?

Bonjour, j'espère que vous vous portez bien. J'ai une problématique que je n'arrive pas à résoudre. J'ai un tableau avec des références et des prix qui sont classés en fonction de bornes de quantité (ces bornes sont dans deux colonnes différentes) et je souhaiterais pouvoir renvoyer dans une autre page de mon fichier la valeur pour une référence en fonction de la quantité que je renseigne. Je vous joins un exemple de fichier pour illustration. J'ai des des recherches, mais je n'ai pas l'impression qu'INDEX/EQUIV fonctionnerait dans mon cas (ou alors je n'ai pas bien compris comment ça fonctionne, et je ne me vexerai pas si la solution est simple). Est-ce qu'une bonne âme saurait m'aiguiller sur ma recherche? Merci d'avance.

10test.xlsx (9.03 Ko)

Bonjour,

Compte tenu que vous etes sur XL2013 j'utiliserai plutot SOMMEPROD. Sur O365 il existe des nouvelles fonctions de filtre, mais vous n'y avez pas accès. On peut donc faire un SOMMEPROD en vérifiant 3 conditions : la 1e colonne, et les 2 bornes. Puisque vos plages ne se chevauchent pas (très important ‼), la formule est assez simple.

Ci-après la formule et ci-joint votre fichier.

Pour utiliser INDEX/MATCH il faudrait revoir vos valeurs et utiliser des tables de référence pour chaque "Référence" justement.

=SOMMEPROD(--($A$3:$A$11=G3)*(H3<=$C$3:$C$11)*(H3>=$B$3:$B$11)*$D$3:$D$11)
9test.xlsx (9.55 Ko)

Bonsoir, j'ai fait un essai et la formule fonctionne sur le fichier que j'avais joint, mais pas sur mon fichier final. J'ai bien évidemment fait les modifications pour prendre les bonnes données mais rien n'y fait. Je précise que je suis sur Excel dans O365 sur mon PC pro. Et pour le coup, quand je teste sur mon PC perso, même problème. Je vais tâcher de comprendre ce qui cloche plus tard. Merci en tout cas!

Bonjour,

Sur O365, vous pouvez essayer de mettre un @ devant la formule. C'est étrange car chez moi cela fonctionne, sur l'exemple donné bien entendu.

Sinon, comme je le précisais, la formule prend bien pour hypothèse que vos bornes en C et B soient distinctes (pas de chevauchement) ET successives. Sinon il peut y avoir des pertes dans les "trous" = hors succession, ou des doublons (chevauchement des bornes).

Sur O365, la formule suivante est équivalente, à tester :

=FILTRE(D3:D11;($A$3:$A$11=G3)*($B$3:$B$11<=H3)*($C$3:$C$11>H3);"")

Bonjour, après une bonne nuit de sommeil, je ne sais toujours pas pourquoi ça ne fonctionne pas. J'ai regardé mes tranches et je constate qu'elles se chevauchent. Dans tel cas, quelle est la bonne stratégie? Merci pour vos commentaires.

Le problème est précisément là. Comment voulez-vous filtrer selon des bornes si ces dernières se chevauchent ? Une donnée recherchée peut vérifier 2 plages, et alors quel résultat renvoyer ?

Après on parle un peu dans le vent, il faudrait voir directement sur un exemple réel comment faire. Par ailleurs si vos plages sont organisées par ordre croissant (par référence), je pense que l'info borne inférieure est redondante et peut etre supprimée. Ca permet d'éviter les chevauchements.

Rebonjour,

J'ai refait le point et dans mes données finales, je n'avais pas vu qu'il y avait des NULL (qui proviennent d'une extraction faite par requête SQL), je m'en suis donc débarrassé et la formule SOMMEPROD a commencé à me renvoyer des données. Mais ce n'était pas satisfaisant, alors j'ai essayé la formule FILTRE et là tout fonctionne correctement. Je vous remercie sincèrement de l'aide apportée, et je mets 2 nouvelles formules dans mon carnet trousse à outils.

Rechercher des sujets similaires à "index equiv solution"