Reporter l'intitulé d'une colonne par rapport à l'intesection d'une cellule

Bonjour à tous,

Je suis confronté à un petit soucis, j'ai parcouru le forum pendant plusieurs heures sans trouver une réponse; du coup je me suis inscrit pour faire une demande.

Voilà j'ai un tableau dans le style de celui ci:

index1

Je sais maintenant utiliser la fonction Index pour retrouver une valeur dans l'intersection Colonne/ligne et avec la fonction Equiv quand l'une de ses valeur est du texte.

Mon problème se situe sur le fait que je ne veux pas retrouver une valeur comprise entre la colonne et la ligne mais que je veux rechercher une valeur (proche de) X sur une ligne déterminée et qu'il me repporte le nom de la colonne.

Donc en se basant sur l'image, je veux retrouver la valeur la plus proche de 797 exclusivement sur la ligne 6 pour qu'excel me donne l'intitulé de la colonne correspondante (soit 3 dans notre exemple).

Maintenant, la fonction index n'est peut-être pas la plus appropriée...

A savoir que mes colonnes et lignes comprennent du texte et qu'il est impenssable de le trier par ordre alphabétique.

D'avance merci

EDIT 2: Ajout d'une contraction de mon fichier

Le tableau dans le fichier joint (qui est, à la base, constitué de nombreux calculs que je ne détaillerait pas ici) se situe dans la plage A1:G10

Mes requête se situent en B14 et C14; j'aimerais donc, dans cette exemple, chercher la valeur la plus proche de «733» dans la ligne de «Morgane». La réponse figurera en E14 et devra, d'après le tableau, indiquer «Mars».

Donc, si mes champs B14 et C14 sont respectivement:

  • «Morgane» et «733», E14 sera égal à «Mars» (734 étant la valeur la plus proche de la ligne)
  • «Alex» et «733», E14 sera égal à «Mai» (correspondant à 756).

Bonjour,

Pour rester dans le concret ... je te conseille de joindre un fichier illustratif ...

Tu obtiendras ainsi des réponses adaptées ...

Merci de répondre si rapidement James mais j'ai vu que lorsque l'on mettait son Worksheet en lien, les gens ont tendance à faire le boulot à ta place et ce n'est pas forcément ce que je recherche...

Je préfère qu'on me donne des idées d'explorations pour résoudre mon problème, la/les formules que je doit employer (voir la syntaxe de celle-ci).

Maintenant, si c'est vraiment nécessaire, je posterai une partie de mon fichier.

Bonsoir,

C'est fort louable à toi de vouloir des indications pouvant t'amener à une solution plutôt que la solution elle-même, cependant tu dois savoir qu'un contributeur qui va chercher une solution et pourra te guider ensuite le fait nécessairement à partir de données sur une feuille dans un fichier, de façon à pouvoir y écrire des formules en les testant et voir celles qui répondent à la question.

Et tu te rendras compte que lorsqu'on te fournit une formule qui fonctionne, tu auras probablement encore du temps à passer dessus, pour comprendre comment elle fonctionne, te mettre en mesure de l'adapter à diverses situations, pouvoir en construire des variantes, etc.

Te fournir une solution pour un cas soumis précis, n'est donc pas vraiment te mâcher le travail à faire car il t'en restera toujours...

Mais si tu souhaites obtenir seulement des pistes de réflexion, on peut le faire. Cela consiste à amorcer la réflexion nécessaire pour voir de quelles façons la question peut être traitée.

Ta question consiste à obtenir une valeur la plus proche d'une valeur cherchée parmi les valeurs d'une table ou tableau, afin de renvoyer la colonne dans laquelle elle se trouve.

La valeur cherchée est celle qui présentera l'écart minimal avec la valeur de référence. Pour pouvoir apprécier ces écarts tu vas donc devoir travailler sur les valeurs absolues des écarts valeursTablo - valeurRéf, pour retenir le minimum parmi ces écarts, qui dans le meilleur cas sera 0.

Le 2e volet sera qu'il te faudra renvoyer la colonne (le problème serait semblable pour la ligne). On aura donc une démarche à formuler du type : si l'écart est égal au minimum cherché je renvoie la colonne, sinon rien...

Ce qui ouvre sur le 3e volet qui interviendra si la possibilité que plusieurs écarts égaux à l'écart minimal existe. Dans ce cas il te faudra soit définir une préférence de façon à ne renvoyer qu'une valeur ou les renvoyer toutes successivement.

Dans la mesure où tu cibles ta recherche sur une ligne prédéfinie, et non sur le tableau complet, tu simplifies un peu la situation par rapport au cas général (qui consisterait à renvoyer la ligne d'une part et la colonne d'autre part, des valeurs du tableau répondant à la condition), mais assez peu sans doute et le principe du calcul demeurera assez semblable...

Tu peux aussi prévoir que ta formule sera matricielle.

Cordialement et bon courage.

Merci Ferrand,

Tout ce que tu dis me semble très logique, j'y ai pensé mais je ne vois absolument pas comment procéder.

Je m'étais dis que la fonction index aurait pu être la clé mais je vois pas comment procéder.

J'ai édité le poste principal avec un fichier excel qui reprend une partie de mon document.

Si tu en viens à concrétiser ta question en l'illustrant au moyen d'un fichier, on pourra l'examiner...

Pour l'heure, ton lien me conduit à un message me demandant d'ouvrir un compte ! Ce que je n'ai nullement l'intention de faire... je te rappelle donc que tu peux déposer ton fichier sur le forum jusqu'à une taille n'excédant pas 1 Mo, ce qui est généralement plus que suffisant.

Cordialement.

J'ai édité le poste principal avec un fichier excel qui reprend une partie de mon document.

Salut MFerrand ...

@ hell_s_caretaker

Tiens ... tiens ... on en revient au point de départ ...

bonjour

comme je l'avais fait remarqué à Sébastien , je constate une presence croissante de post sans fichier ou avec des captures (probablement envoyés par smart phone)

un avertissement sous forme d'image lors de la création du tout premier post aurait été à mon avis pertinante

cordialement

Je n'ai toujours pas trouvé la solution à mon problème

Il me semblait que tu avais eu l'intention de mettre un fichier ?

Dépose le sur le Forum, si c'est le cas !

Mais j'ai mis le fichier, enfin un lien vers le dis fichier, depuis mon téléphone car mon pc est HS et je ne peux pas accéder à ce site du boulot 😅

J'aurais tout même préféré avoir les formules utilisables pour la réalisation mais bon si il faut passer par l'envoi du fichier pour espérer avoir une solution, soit

En tout cas merci de vous intéresser à mon problème

Voilà où conduit ton lien :

2017 12 09 033548

Effectivement mon lien ne fonctionne que pour moi en fait

J'avais fais ça via le téléphone et c'est pas génial... Enfin, là, j'ai pu récupérer mon PC donc je peux poster le fichier test; j'ai édité le post principal pour l'y intégrer

Encore merci

Bonsoir,

Voilà une formule qui semble convenir :

=INDEX($A$1:$G$1;MIN(SI(ABS(C14-DECALER($C$1:$G$1;EQUIV(B14;$B$2:$B$10;0);))=MIN(ABS(C14-DECALER($C$1:$G$1;EQUIV(B14;$B$2:$B$10;0);)));COLONNE($C$1:$G$1);1000)))

Si ton tableau devait atteindre la colonne 1000, il faudrait augmenter ce nombre... !

Cordialement.

Merci, ça semble fonctionner correctement bien que je ne comprend pas vraiment la formule...

J'abuserais si je te demandais de m'expliquer ce qu'excel effectue ? Parce qu'en prenant individuellement chaque portion de la formule je ne vois pas ce qui se passe réellement...

Bonjour,

DECALER($C$1:$G$1;EQUIV(B14;$B$2:$B$10;0);) est la ligne ciblée par ta recherche, on recherche le nom indiqué en B14 (son rang) pour appliquer ce rang comme décalage lignes à C1:G1.

Appelons-la LigneSource.

C14 est le nombre cherché dans cette ligne :

ABS(C14-LigneSource) va renvoyer une matrice des écarts absolus du nombre cherché aux valeurs de la ligne.

Appelons MatriceEcarts pour mieux voir la suite...

SI(MatriceEcarts=MIN(MatriceEcarts);COLONNE(C1:G1);1000) : on transforme cette matrice selon une condition, si l'écart est égal au minimum de la matrice d'écarts, on renvoie le numéro de colonne de C à G (soit de la ligne source), sinon on renvoie un nombre plus grand (ici 1000).

En prenant le minimum de cette dernière matrice, les valeurs 1000 sont naturellement éliminées, et on aura soit un numéro de colonne, soit deux (dans le cas où la valeur cherchée se situe exactement entre deux valeurs de la ligne source, on n'en retient qu'une (la première colonne répondant à la condition).

Ce numéro de colonne nous fournit un numéro d'index à appliquer à la ligne 1 en partant de A, au moyen de la fonction INDEX. Partir de A évite d'avoir à corriger le numéro de colonne trouvé (qui sera de 3 à 7) [si on voulait l'appliquer à C1:G1, il faudrait soustraire 2...]

Comme on opère avec des matrices, la formule doit être validé matriciellement (Ctrl+Maj+Entrée).

Cordialement.

Un grand merci, c'est bien plus clair maintenant.

En tout cas ça me fait chuter dans mon estime de maîtrise d'excel ça moi qui croyais avoir un niveau plutôt correct, je me rend compte que je ne suis qu'un novice...

Rechercher des sujets similaires à "reporter intitule colonne rapport intesection"