Tableau à double entrée recherche par entrée

realpims

XLDnaute Nouveau
Bonjour,

Mon problème est un peu différent de celui des tableaux à double entrées (abscisse, ordonnée) car je ne connais pas une des 2 entrées, l'ordonnée.


Je cherche à trouver (dans l'onglet "Tableau") le montant le plus proche (mais supérieure uniquement) de la colonne "Valeur" de l'onglet "Données".
Sachant qu'il faut que je recherche ce montant dans la colonne du Tableau indexée (en entrant) par la valeur du "Champ"
En effet, si je ne conditionne pas ma recherche à la colonne correspondant à la valeur de "Champ", il peut y avoir plusieurs réponses !


Quelques exemples dans l'onglet "Données"

Une fois que j'aurais trouvé le montant, je devrais déterminer le "Code" (l'ordonnée) du tableau

J'aurais ainsi :
L'abscisse du Tableau => "Champ"
L'ordonnée du Tableau => "Code"
La valeur correspondante

Je ne peux pas utiliser la formule EQUIV() [match en anglais] car je ne possède pas l'ordonnée comme hypothèse.
Je dois donc utiliser l'abscisse pour trouver le montant et en déduire l'ordonnée et avoir ainsi les coordonnées du montant immédiatement supérieur ou égal
à la valeur que je recherche.

J'ai indiqué le résultat attendu, sachant que je dois le faire par formule (ou macro mais je préfère les formules) car les montants du "Tableau" peuvent varier.

J'ai bien essayé de nommer les colonnes "colonneA", "colonneB" et de lui faire rechercher dans la colonne résultant de la formule =contatener('"colonne";champ)
Puis de faire EQUIV(valeur;conatener("colonne";champ);1)+1), ce qui me donnerait l'ordonnée.
Mais le résultat étant sous le format texte, Excel ne considère pas le résultat comme une zone nommée.

D'où une grosse panne d'inspiration !

Merci de votre aide !
 

Pièces jointes

  • tableau_double_entree_recherche.xls
    24.5 KB · Affichages: 174
  • tableau_double_entree_recherche.xls
    24.5 KB · Affichages: 182
  • tableau_double_entree_recherche.xls
    24.5 KB · Affichages: 183

Tibo

XLDnaute Barbatruc
Re : Tableau à double entrée recherche par entrée

Bonsoir,

Quelque chose m'échappe dans les exemples que tu nous donnes.

Pour ton 1er exemple (110 - Champ C) tu nous indiques que le résultat est 115.76, qui est dans le champ A ???

Comment faut-il interpréter la notion de champ (puisque on passe du champ C ou champ A).

A te (re)lire avec quelques précisions nécessaires à une meilleure compréhension de ton problème.

@+
 

kjin

XLDnaute Barbatruc
Re : Tableau à double entrée recherche par entrée

Bonsoir, bonsoir Tibo :),
Même remarque
En outre
115,76 se trouve en Tableau!B5 et non Tableau!B6
la valeur la plus proche se trouve être 110,25 et non 115,76, enfin pour moi
Donc j'y comprends pas plus
A+
kjin
 

realpims

XLDnaute Nouveau
Re : Tableau à double entrée recherche par entrée

Bonjour,
Oups effectivement mon copier/coller a incrémenté malencontreusement !
Pour la première ligne, valeur 110 champ C, le résultat attendu est : 110.32
Si je tente de reformuler mon besoin, je dois trouver dans le tableau le montant supérieur le plus proche dans la colonne déterminée par le champ (ici la colonne D (champ C)).
Le montant supérieur le plus proche de 110 est 110.32.
Merci d'avance de ton aide.
pj : fichier corrigé
 

Pièces jointes

  • tableau_double_entree_recherche.xls
    24 KB · Affichages: 113
  • tableau_double_entree_recherche.xls
    24 KB · Affichages: 117
  • tableau_double_entree_recherche.xls
    24 KB · Affichages: 118

Tibo

XLDnaute Barbatruc
Re : Tableau à double entrée recherche par entrée

re,

Effectivement, c'est un peu plus compréhensible.

Un essai avec 2 formules matricielles :

Onglet Donnés, en C2 (il faut peut-être effacer ou décaler les exemples que tu nous as mis) :

Code:
=INDEX(DECALER(Tableau!$A$1;1;EQUIV(Données!B2;Tableau!$B$1:$M$1;0);14);
EQUIV(VRAI;DECALER(Tableau!$A$1;1;EQUIV(Données!B2;Tableau!$B$1:$M$1;0);
14)>A2;0))

en D2 :

Code:
=INDEX(Tableau!$A$2:$A$15;EQUIV(VRAI;DECALER(Tableau!$A$1;1;
EQUIV(Données!B2;Tableau!$B$1:$M$1;0);14)>A2;0))

Formules matricielles à valider par CTRL + MAJ + ENTREE

Formules à recopier vers le bas.

A savoir qu'une erreur semble s'être glissée dans un de tes exemples :ligne 4 : 110 - champ F donne AA1 et non AB1

Je te laisse essayer

@+
 

realpims

XLDnaute Nouveau
Re : Tableau à double entrée recherche par entrée

Félicitations ! Ca marche super bien !
Merci énormément !
Effectivement, il restait une coquille dans mon second fichier et ta formule le met brillamment en avant !
Encore merci tant pour les formules que pour la rapidité de ta (et les autres également) réponse !!
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Tableau à double entrée recherche par entrée

En non matriciel:

En C2:
=INDEX(tableau;SI(ESTNA(EQUIV(A2;INDEX(tableau;;EQUIV(B2;champ;0));1));1;EQUIV(A2;INDEX(tableau;;EQUIV(B2;champ;0));1)+1);EQUIV(B2;champ;0))

En F2:
=INDEX(code;SI(ESTNA(EQUIV(A2;INDEX(tableau;;EQUIV(B2;champ;0));1));1;EQUIV(A2;INDEX(tableau;;EQUIV(B2;champ;0));1)+1))


Si la première ligne de tableau contenait des 0:

=INDEX(tableau;EQUIV(A2;INDEX(tableau;;EQUIV(B2;champ;0));1)+1;EQUIV(B2;champ;0))
=INDEX(code;EQUIV(A2;INDEX(tableau;;EQUIV(B2;champ;0));1)+1)


JB
 

Pièces jointes

  • EquivIndexInverse2.xls
    28 KB · Affichages: 153
Dernière édition:

Dugenou

XLDnaute Barbatruc
Re : Tableau à double entrée recherche par entrée

Saluttout le monde !

un autre solution (avec la même idée que Boisgontier d'ajouter une ligne de 0) et la fonction décaler. Je vois aussi un écart sur la ligne 10 (en plus de la ligne 4).

Cordialement
 

Pièces jointes

  • tableau_double_entree_recherche.zip
    9 KB · Affichages: 79

Discussions similaires

Statistiques des forums

Discussions
312 359
Messages
2 087 589
Membres
103 603
dernier inscrit
totoro94