Recherchev à partir d'une sous chaine de caractères

Signaler
Messages postés
7
Date d'inscription
mardi 5 avril 2016
Statut
Membre
Dernière intervention
19 février 2021
-
Messages postés
622
Date d'inscription
jeudi 18 juillet 2019
Statut
Membre
Dernière intervention
4 mars 2021
-
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

4 réponses

Messages postés
25863
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
4 mars 2021
5 813
Bonsoir
voyez si ce modèle peut faire l'affaire et revenez si soucis
https://mon-partage.fr/f/3PQPqz1c/
crdlmnt
Messages postés
7
Date d'inscription
mardi 5 avril 2016
Statut
Membre
Dernière intervention
19 février 2021

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 !
Messages postés
25863
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
4 mars 2021
5 813
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
Messages postés
622
Date d'inscription
jeudi 18 juillet 2019
Statut
Membre
Dernière intervention
4 mars 2021
43
Bonjour à tous,

@ Vaucluse (salutations)
Concernant le @ qui apparait, il est probablement lié à l'utilisation de la version 365 (uniquement) et les formules matricielles dynamiques, mais je n'ai pas encore tout compris leurs explications.
https://support.microsoft.com/fr-fr/office/op%C3%A9rateur-d-intersection-implicite-ce3be07b-0101-4450-a24e-c1c999be2b34
https://support.microsoft.com/fr-fr/office/formules-de-tableau-dynamiques-et-formules-de-tableau-de-cse-h%C3%A9rit%C3%A9es-ca421f1b-fbb2-4c99-9924-df571bd4f1b4

Cordialement
Messages postés
25863
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
4 mars 2021
5 813 >
Messages postés
622
Date d'inscription
jeudi 18 juillet 2019
Statut
Membre
Dernière intervention
4 mars 2021

merci pour l'info
bonne journée
crdlmnt
Messages postés
7
Date d'inscription
mardi 5 avril 2016
Statut
Membre
Dernière intervention
19 février 2021

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
Messages postés
7
Date d'inscription
mardi 5 avril 2016
Statut
Membre
Dernière intervention
19 février 2021

voici le fichier d'essai que je n'arrive pas à faire fonctionner
https://mon-partage.fr/f/ICSJM9XH/
Messages postés
622
Date d'inscription
jeudi 18 juillet 2019
Statut
Membre
Dernière intervention
4 mars 2021
43 >
Messages postés
7
Date d'inscription
mardi 5 avril 2016
Statut
Membre
Dernière intervention
19 février 2021

Bonjour,

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.
=SIERREUR(INDEX($G$1:$G$8;EQUIV(1;NB.SI(A1;"*"&$F$1:$F$8&"*");0));"")

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.

Cordialement
Messages postés
16394
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
4 mars 2021
3 144
Bonjour Vaucluse

Chapeau pour ta formule!
je te mets un +1 bien mérité

a+