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

Pat92000 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -  
ALS35 Messages postés 1034 Date d'inscription   Statut Membre Dernière intervention   -
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

  1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Bonsoir
    voyez si ce modèle peut faire l'affaire et revenez si soucis
    https://mon-partage.fr/f/3PQPqz1c/
    crdlmnt
    1
  2. Pat92000 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
     
    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 !
    0
  3. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    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
    0
    1. ALS35 Messages postés 1034 Date d'inscription   Statut Membre Dernière intervention   147
       
      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
      0
      1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453 > ALS35 Messages postés 1034 Date d'inscription   Statut Membre Dernière intervention  
         
        merci pour l'info
        bonne journée
        crdlmnt
        0
    2. Pat92000 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
       
      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
      0
    3. Pat92000 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
       
      voici le fichier d'essai que je n'arrive pas à faire fonctionner
      https://mon-partage.fr/f/ICSJM9XH/
      0
      1. ALS35 Messages postés 1034 Date d'inscription   Statut Membre Dernière intervention   147 > Pat92000 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
         
        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
        0
  4. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour Vaucluse

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

    a+
    0