XL 2016 Recherche en fonction d'un intervalle sur deux colonnes

tutur

XLDnaute Nouveau
Bonjour,

Je poste ici un problème pratique que je rencontre sur Excel.

J'ai trois colonnes A, B et C
- Sur la colonne A: le début d'un intervalle de compte (par exemple 101000)
- Sur la colonne B : la fin d'un intervalle de compte (par exemple 101999)
- Sur la colonne C : un compte de destination (par exemple 1012000000)

Mon objectif étant, dans un autre onglet de récupérer les données de la colonne de destination en fonction des comptes que j'aurais. Par exemple si j'ai le 101151, je souhaiterai que cela me renvoi en résultat le 1012000000 (car le 101151 est compris dans l'intervalle prévu en colonne A et B).

Il y a potentiellement plusieurs centaines de lignes d'intervalles.

Merci vivement de votre retour!
 

chris

XLDnaute Barbatruc
Bonjour

Si j'ai bien compris, sous réserve que les début d’intervalles soient classés en ordre croissant sur la feuille1:
=RECHERCHEV(Compte;Feuille1!A:C;3;1)

Compte étant la cellule du compte pour lequel on veut le contenu de la colonne C
 

tutur

XLDnaute Nouveau
Merci de votre retour!

Effectivement cela marche, quand les données sont des nombres en dur, or dans mon cas, les données des colonnes A et B seront calculées, de ce fait la formule revient en NA.

J'ai mis un fichier joint pour que ce soit plus facile.

Merci par avance
 

Pièces jointes

  • Fichier test intervalle.xlsx
    72.1 KB · Affichages: 31

tutur

XLDnaute Nouveau
Chris,

Merci de ton retour,

J'ai retesté et cela ne fonctionne pas dans la mesure ou, comme je disais précédemment, les données des colonnes A et B de l'onglet données sont calculées… La formule marche parfaitement lorsque les données sont en texte classique.
Pour ce qui est de forcer le résultat en texte, je ne suis pas sur de l'utilisation à effectuer…

Je mets ci joint le fichier exact, et notamment l'onglet données tel quel.

Merci encore de ton aide.
 

Pièces jointes

  • Fichier test intervalle.xlsx
    100.4 KB · Affichages: 31

chris

XLDnaute Barbatruc
Re

Cela n'a rien à voir avec le fait que les données soient calculées mais au fait que les données ne sont pas de même type
Dans l'onglet Données, en utilisant GAUCHE pour découper un NOMBRE tu obtiens un TEXTE
Dans Résultat tes comptes sont des NOMBRES qui ne peuvent donc être trouvés parmi des TEXTES
  • Soit tu modifies ta formule en colonne A de Données pour garder des nombres (le plus logique)
    Code:
    =ENT(D3/1000000)
  • Soit tu modifies ta formule en colonne C de Résultat pour chercher un texte et non un nombre
    Code:
    =RECHERCHEV(A2&"";Données!A:F;6;1)
 

tutur

XLDnaute Nouveau
Ok effectivement c'est plus clair et ca fonctionne!

Par contre le risque avec RECHERCHEV est qu'il me renvoi une quelque chose alors qu'un intervalle n'existe pas (j'ai testé et j'ai quelques cas).

Comment peut-on faire dans ce cas la? L'idée étant que cela ne renvoi rien ou 0 si le compte n'est pas prévu dans les intervalles donnés.
 

chris

XLDnaute Barbatruc
RE

Quand les données sont ordonnées, en cas d'absence c'est la dernière valeur qui est renvoyée car RECHERCHEV avec le quatrième argument à vrai renvoie forcément une valeur

Sous réserve d'opter pour le changement de formules sur la feuille Données de façon à avoir tes colonnes A et B en numérique, tu peux mettre cette formules sur Résultat
Code:
=SI(OU(A2<MIN(Données!A:A);A2>MAX(Données!B:B));"";RECHERCHEV(A2;Données!A:F;6;1))

Pour B de Données tu peux utiliser
Code:
=A3+999
si le pas est fixe

ou en gardant ta logique (plus lent en calcul)
=SUBSTITUE(STXT(E3;1;6);"Z";"9")*1
 

Discussions similaires

Statistiques des forums

Discussions
315 093
Messages
2 116 138
Membres
112 669
dernier inscrit
Guigui2502