Comparer 1 chaine de caractere d'une cellule par rapport plage

Résolu
joaline62 Messages postés 14 Statut Membre -  
joaline62 Messages postés 14 Statut Membre -
Bonjour,
je voudrais comparer une chaine de caractere trouvé dans une cellule (B1)par rapport à une plage (A1:A10) et renvoyer la valeur dans la cellule (C1) si ce mot est retrouvé
Exemple:

COLONNEA | COLONNEB | COLONNEC
1 ARDITI | Me truc | <CASE VIDE>
2 GIRARDOT | mme dere |<CASE VIDE>
3 FUNES | Mme bardot |<CASE VIDE>
4 POLO | Mr DArditi | ARDITI
5 JACQUES | anne arditi | ARDITI
6 <CASE VIDE>| sophie bardot |<CASE VIDE>
7<CASE VIDE>| Melle chapeau |<CASE VIDE>
8<CASE VIDE>| Mrs GIRARDOT | GIRARDOT
9<CASE VIDE>| truc |<CASE VIDE>
10<CASE VIDE>| Girardot | GIRARDOT
11<CASE VIDE>| Me trac |<CASE VIDE>
12<CASE VIDE>| Louis de Funes | FUNES
13<CASE VIDE>| Jacques chancel | JACQUES
14<CASE VIDE>| Girardot jacques | JACQUES
15<CASE VIDE>| sophie jacques | JACQUES

J'ai ca
=(SOMME(ESTNUM(CHERCHE(SI($A$1:$A$10<>"";$A$1:$A$10);B1))*LIGNE($A$1:$A$10))>0)*1
ca marche mais ca me renvoie un 1 ou un 0 en colonne c actuellement.
je voudrais plutot la "valeur" en colonne c. et si possible plutôt une formule que un code vba.
merci d'avance
Auriez vous une idée

22 réponses

  • 1
  • 2
  1. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Bonjour,

    Cette formule ne convient pas, et c'est normal qu'elle te retourne 0 ou 1, oublie la et explique exactement ce que tu veux faire
    0
  2. joaline62 Messages postés 14 Statut Membre
     
    en fait c'est la fonction recherchev ni plus ni moins ou la "valeur_recherchée" serait une chaine de caractere contenu dans une cellule et pas la cellule elle meme
    Exple:je veux trouver "Art 512" dans une cellule qui contient

    "Article:R.4226-5-R.4226-7 Norme:C 15-100 Art 512-522"

    le texte recherché n'etant pas toujours placé au meme endroit

    la fonction recherchev ferait le reste ensuite
    0
  3. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    toujours pas très clair, mais d'après ce que je comprends, cette formule recherche dans la chaine en A2 la valeur Art 512 qui peut être directement saisie dans la formule à la place "&E2&" comme cela "*Art 512*" ou placée dans une cellule exemple en E2

    =SI(NB.SI(A2;"*"&E2&"*")=1;A2;"")
    cette formule renvoie la chaine si la valeur est trouvée dans la chaine

    pour l'exploiter avec une RECHERCHEV comme je crois comprendre

    reste à savoir si la recherche doit se faire à partir de la chaine ou à partir de la valeur trouvée dans la chaine
    0
  4. joaline62 Messages postés 14 Statut Membre
     
    il ne me faudrait plutot la valeur de E2 retrouvée dans la chaine et pas la chaine elle meme
    mais pour le reste c'est ca
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. joaline62 Messages postés 14 Statut Membre
     
    je teste c'est peu etre ca
    0
  7. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    Comme cela ?

    =SI(NB.SI(A2;"*"&E2&"*")=1;E2;"")
    0
  8. joaline62 Messages postés 14 Statut Membre
     
    il ne faudrait pas seulement E2 mais genre une base de E2:E10
    0
  9. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    que veux tu dire par "pas seulement E2 mais genre une base de E2:E10"

    tu veux l'adresse de la ou des cellules qui contient la valeur cible, c'est cela ?
    0
  10. joaline62 Messages postés 14 Statut Membre
     
    Pour essayer de faire simple dans l'explication:

    1-Ma chaine de caractère en "A2":
    "Article:R.4226-5-R.4226-7 Norme:C 15-100 Art 512-522"

    2-Une matrice en E2:E10 contenant des "mots clés" par ex:
    E2: Art 501
    E3: Art501
    E4: ELE13/
    E5: Art 512
    E6: etc

    3-Si la formule trouve en "A2" et en "E2:E10" (ici en "E5") la même valeur
    ("Art 512" ici), la formule renvoi la valeur "Art 512"
    0
  11. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,
    Ce n'est pas possible ou tu as fait une erreur dans tes explications, si en A2 tu as Article:R.4226-5-R.4226-7 Norme:C 15-100 Art 512-522, il est impossible d'avoir ta formule dans la même cellule A2 qui te renvoie Art 512

    0
  12. joaline62 Messages postés 14 Statut Membre
     
    Oui je me suis mal exprimé: ma formule serait en "B2" par exple:

    Ce que je veux dire c'est dans la chaine situé en "A2".
    0
  13. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    alors je crois commencer à comprendre, tu as en E2:E10 une liste de références et colonne A tes chaines qui peuvent contenir une des référence définie dans ta plage E2:E10, et en colonne B tu veux extraire la référence cible rencontrée.

    C'est cela
    0
  14. joaline62 Messages postés 14 Statut Membre
     
    excellent tu as résumé simplement ce que je n'arrive pas à exprimer! :-)
    je cherche et impossible de trouver sur des forums..
    0
  15. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    alors imbrication de formule basique =SI(NB.SI(A2;"*"&E2&"*")=1;E2;"") ce qui donne une imbrication quelque peu usine à gaz du genre

    =SI(NB.SI(A2;"*"&$E$2&"*")=1;$E$2;SI(NB.SI(A2;"*"&$E$3&"*")=1;$E$3;SI(NB.SI(A2;"*"&$E$4&"*")=1;$E$4;SI(NB.SI(A2;"*"&$E$5&"*")=1;$E$5;SI(NB.SI(A2;"*"&$E$6&"*")=1;$E$6;"")))))

    tu peux imbriquer jusqu'à 7 conditionnelles et tu relances une cascade avec &
    si tu as 10 références équilibre la formule avec 5 conditionnelles et tu relances

    =SI(NB.SI(A2;"*"&$E$2&"*")=1;$E$2;SI(NB.SI(A2;"*"&$E$3&"*")=1;$E$3;SI(NB.SI(A2;"*"&$E$4&"*")=1;$E$4;SI(NB.SI(A2;"*"&$E$5&"*")=1;$E$5;SI(NB.SI(A2;"*"&$E$6&"*")=1;$E$6;"")))))&SI(NB.SI(A2;"*"&$E$7&"*")=1;$E$7;SI(NB.SI(A2;"*"&$E$8&"*")=1;$E$8;SI(NB.SI(A2;"*"&$E$9&"*")=1;$E$9;SI(NB.SI(A2;"*"&$E$10&"*")=1;$E$10;SI(NB.SI(A2;"*"&$E$11&"*")=1;$E$11;"")))))

    je regarde s'il est possible de faire plus court
    0
  16. joaline62 Messages postés 14 Statut Membre
     
    ok merci surtout que ma plage est d'une 60ène de lignes de références
    c'est très sympa
    0
  17. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    60 références ça va être chaud sans VBA, je regarde mais en attendant teste ma formule sur 10 références en E2:E11
    0
  18. joaline62 Messages postés 14 Statut Membre
     
    ca marche impec
    c'est exactement ca
    je voulais être sur qu'on ne puisse le faire
    cependant mes 60 références je pourrai peut être regrouper plusieurs dans une meme cellule séparée par un ";" par exemple. Pour moi ca ne serait pas génant.
    mais ton truc marche en effet
    0
  19. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    Bon je regarde comment avec formule mais je pense qu'il faudra passer en VBA
    0
  20. joaline62 Messages postés 14 Statut Membre
     
    je teste ...
    0
  • 1
  • 2