Travailler sur une plage concaténée type A+"valeur renvoyé par une formule"

Bonjour à tous,

Je suis nouveau ici, et après avoir passé quelques heures à chercher en vain une solution à mon problème, je me décide à demander de l'aide

Procédons par étape :

Disons que je veux chercher "toto" dans la première colonne de mon tableau (qui soit-dit en passant est très long, mal pensé et fourni par ma boite mais n'ayant aucune valeur en double). Pour cela j'utilise la fonction EQUIV.

Exemple: EQUIV("toto";A1:A10;0) et admettons que le résultat soit 4 (cela veut dire que toto est en cellule A4)

Je veux désormais (maintenant que je connais la ligne : 4) travailler sur la plage de cellule B4:S4 (la ligne quoi) pour y rechercher une valeur, disons "tata". Comment faire pour avoir quelque chose du style : EQUIV("tata";B"4":S"4";0) B4 et S4 étant la concaténation de B (ou S) + "la valeur 4 renvoyé correspondant à toto"

Le but étant d'afficher la valeur d'en-tête de la colonne de la cellule "tata" se trouvant sur la ligne de "toto" via la fonction INDEX : INDEX(tableau;1;"valeur du renvoi de tata")

Oui, le tableau a été fait à l'envers, et avec les pieds, et INTERDICTION de le modifier , tout aurait été si simple avec un simple INDEX(tableau;"toto";"tata") Après, si vous avez une tout autre solution, je prends également, car ayant la tête dans le guidon, VOUS aurez le recul nécessaire

En tout cas merci pour tout,

Vincent.

Bonjour,

Plusieurs possibilités :

  • Utiliser ton résultat dans une fonction =DECALER
  • Concaténer ton n° avec les lettres pour reconstituer l'adresse d'une plage, ensuite utilisée au sein d'une fonction =INDIRECT()

Bonjour

Merci de la réponse si rapide, c'est assez frustrant sachant que je cherche depuis un petit moment

Pour DECALER, ce n'est pas possible, car j'ignore combien de ligne sépareront la valeur cherchée de l'en-tête.

Après une petite recherche sur la fonction INDIRECT (que j’ignorais) cela pourrait fonctionner, j'essaye cela et revient vers vous rapidement

je n'oublie pas le résolu dès que je trouve

Vincent

Pour DECALER, ce n'est pas possible, car j'ignore combien de ligne sépareront la valeur cherchée de l'en-tête.

Tu utilises bien une fonction EQUIV pour obtenir un numéro de ligne ? Donc avec EQUIV et DECALER combinés, c'est tout à fait possible !

Tu utilises bien une fonction EQUIV pour obtenir un numéro de ligne ?

Exact ça fonctionne mais ça demande la fonction EQUIV + une soustraction car le tableau ne commence pas en A1 c'est une solution mais pas optimale, je crois que =INDIRECT convient le mieux, j'ai a peu près compris comment cela fonctionnait. J'essaye de le faire et je post ma solution, qui sera sans doute optimisable.

Merci

Tu utilises bien une fonction EQUIV pour obtenir un numéro de ligne ?

Exact ça fonctionne mais ça demande la fonction EQUIV + une soustraction car le tableau ne commence pas en A1 c'est une solution mais pas optimale, je crois que =INDIRECT convient le mieux, j'ai a peu près compris comment cela fonctionnait. J'essaye de le faire et je post ma solution, qui sera sans doute optimisable.

Merci

Peu importe d'où commence ton tableau, ce qui importe c'est la plage que tu mets comme référence dans DECALER...

En ce qui me concerne je préfère la solution DECALER, que je trouve plus "optimale" justement !

ce qui importe c'est la plage que tu mets comme référence dans DECALER...

Je n'ai alors pas bien saisi la fonction DECALER

excel dit : =DECALER(ref;lignes;colonnes;[d'autres trucs])

la "ref" en question (vu mon exemple) c'est la cellule contenant "tata" (trouvable facilement) pourquoi parles tu de plage ?

Ensuite je dois bien décaler de X lignes vers le haut pour atteindre l'en-tête non ? Mais ces X lignes sont fixes à l'instant T mais peut etre que demain un collegue rajoutera des lignes entre cette cellule et l'en-tête (accroissant le nombre X)

Donc pour moi, une soustraction est inévitable qui elle même fait appel à d'autres fonctions pour anticiper l'ajout/retrait de lignes ?

Je n'ai alors pas bien saisi la fonction DECALER

Ton explications te donnes raison ! Le fonctionnement de DECALER n'est visiblement pas celui que tu crois.

Exemples :

=DECALER(A1;0;0) --> fait référence à A1

=DECALER(A1;1;0) --> Décalage d'1 ligne, fait référence à A2

=DECALER(A1;0;1) --> Décalage d'1 colonne, fait référence à B1

=DECALER(A1;1;1) --> Décalage d'1 ligne + 1 colonne, fait référence à B2

Les 2 derniers paramètres sont facultatifs et permettent d'étendre le nombre de lignes et/ou de colonnes par rapport à la référence (+1 ligne, par rapport à la référence A1 fait référence à A1:A2...).

Dans ton cas, ce serait donc :

=DECALER($B$1:$S$1;EQUIV("toto";$A$1:$A$10;0)-1;0)

Yes j’ai saisi ! Je pensais « à l’envers » je partais de la cellule « tata » pour arriver en haut du tableau, or il faut partir de la première ligne première case et compter le nombre de colonne équivalent à la colonne « tata » !

Effectivement c’est bien plus simple, car ça devient vite le chantier avec « indirect »

J’essaierai les deux méthodes demain et selon je clôturerai. Merci 🙏

Rechercher des sujets similaires à "travailler plage concatenee type valeur renvoye formule"