Bonjour,
j'utilise communément la fonction recherchev. Elle me permet d'associer une valeur contenue dans une table à une chaine de caractère retrouvée.
Mon problème est que dans le cas présent, les valeurs à trouver sont au milieu d'une chaine de caractères plus longue.
comment faire?
je donne un exemple : j'ai des centaines de lignes de relevés bancaires et je voudrais mettre en regard dans une cellule le numéro de code comptable lorsque par exemple dans la chaine de caractères de l'intitulé on voit le mot "Poste" ou "EDF" ou "loyer" ou "gestion de compte" etc
Il faut sans doute combiner la fonction CHERCHE mais je n'y arrive pas.
merci de vos réponses
Configuration: Windows / Firefox 84.0
A voir également:
Recherchev à partir d'une sous chaine de caractères
Merci beaucoup c'est exactement ce que je voulais faire, mais le niveau de la formule dépassait largement ce que j'étais capable de fabriquer tout seul. Néanmoins je comprends l'organisation de la formule à l'exception de @INDEX . Pour augmenter mes connaissances pouvez vous m'en expliquer la signification notamment le @ devant .
Encore merci !
Bonjour
?? il n'y a pas de @devant la formule, du moins pas dans mon modèle
la formule INDEX:
=INDEX(plage complète;n° de la ligne à ressortir dans la plage; N° de la colonne dans la plage)
Si la plage complète se réduit à une ligne ou une colonne, sel le >N° de ligne ou de colonne est utile,
exemples dans les trois cas
=INDEX(A:A;3) ressortira la valeur de A3
=INDEX(A1:X1;3) ressortira la valeur de C1
=INDEX(A:C;6;2) ressortira la valeur de B6
dans notre cas, SOMMEPROD va chercher en F le texte de NB.SI et ressort le N° de ligne de la feuille où il se trouve en G
attention:
dans la liste en F aucun texte ne doit "contenir" un des autres textes de cette liste sinon la formule fait le cumul
par exemple ne fonctionnera pas avec dans la liste en >F code (seul) et code 3
la formule ressort le N° de ligne de la feuille, pas celui de la plage, il est donc nécessaire que la plage INDEX ensuite commence en ligne 1 ou il faudra apporter une valeur de correction pour valoriser le n° de ligne
c'est à peu près tout ce que je peux en dire
espérant avoir été assez clair
si OK merci de passer en sujet en résolu
crdlmnt
Merci Vaucluse de ces explications. En effet un @ s'est mis automatiquement devant INDEX quand j'ai importé votre formule.
J'ai laissé de coté ce travail et je le reprends maintenant persuadé d'avoir la solution tant elle est efficace sur votre exemple. J'ai scrupuleusement recopiée votre formule dans un bout d'essai de mon tableau ( en enlevant les @) et ....cela ne marche pas. Si je mets votre exemple en vis à vis du mien tout semble identique , je ne vois pas mon erreur. Merci encore de votre nouvelle aide. Comment puis je vous envoyer mon tableau d'essai
Si ta demande est toujours d'actualité, remplace dans ta formule, salutations Vaucluse,
LIGNE($A$1:$A$4) par LIGNE($A$1:$A$8) ou plus logique par LIGNE($F$1:$F$8) et en remettant l'@ devant INDEX.
En modifiant légèrement cette formule, essaie aussi celle-ci qui te permettra de déplacer sans problème ta plage F1:G8 et d'avoir une valeur vide quand le texte n'est pas trouvé en colonne A.
Formule matricielle à valider par Ctrl+Maj+Entrée, elle se met automatiquement entre accolades {}
où à valider simplement par entrée si tu as Excel 365, ce qui semble être ton cas.