Inscrire "1" dans une cellule si mot dans une autre cellule

Résolu
zakintosh -  
 Zakintosh -
Bonjour,
Je cherche une fonction me permettant de noter "1" (sinon 0) dans une cellule si une autre cellule comprend au moins l'un des mot suivants: sacoches, topbag, SAD, SAB, affaires, sac, SAM.
J'ai essayé avec:
=SI(OU(I2="sacoche";I2="topbag";I2="SAD";I2="SAB";I2="affaires";I2="sac";I2="SAM");"1";"0")
Problème:
Cette dernière ne fonctionne que si la cellule ne contient qu'un mot, car en effets, la cellule dans laquelle je cherche l'un de ces mots est susceptible de comprendre une suite de mots/caractères (parfois pas dans la liste que je recherche)
exemple: "sac à la main" ou encore: sacoche + PBE
Merci par avance!

6 réponses

  1. DjiDji59430 Messages postés 4278 Date d'inscription   Statut Membre Dernière intervention   717
     
    Bonjour,

    Au lieu d'écrire I2="sacoche", tu mets cherche("*sacoche*";I2

    Crdmt
    0
  2. zakintosh
     
    Merci, mais je n'arrive pas à faire fonctionner cette fonction. Comment l'écrire quand il y a plusieurs mots à chercher?
    Merci
    0
    1. DjiDji59430 Messages postés 4278 Date d'inscription   Statut Membre Dernière intervention   717
       
      c'est pour mettre dans ton si, a la place des I2=

      exemple :
      cherche("*sac*";i2) va trouver "sac a main", ou bien "sac en cui"r, ou bien "trés grand sac" ;, et meme sacoche
      0
      1. francki130 > DjiDji59430 Messages postés 4278 Date d'inscription   Statut Membre Dernière intervention  
         
        acces rapide
        0
  3. fred
     
    Bonjour zakintosh,

    Je te propose cette formule :

    =SI(NB.SI(I2;"*sacoche*")+NB.SI(I2;"*topbag*")+NB.SI(I2;"*SAD*")+NB.SI(I2;"*SAB*")+NB.SI(I2;"*affaires*")+NB.SI(I2;"*sac*")+NB.SI(I2;"*SAM*")>0;1;0)

    Cordialement
     
    0
    1. zakintosh
       
      Merci fred, mais malgré les **, le résultat n'est pas le bon dans les cas où il y a d'autres caractères dans ma cellule. Il m'affiche "0" dans ce cas. Je ne comprends pas pourquoi.
      0
    2. zakintosh
       
      Yahou! J'ai utilisé ta fonction en rajoutant un point avant chaque * et ça fonctionne. Ça donne:

      =SI(NB.SI(I2;".*sacoche.*")+NB.SI(I2;".*topbag.*")+NB.SI(I2;".*SAD.*")+NB.SI(I2;".*SAB.*")+NB.SI(I2;".*affaires.*")+NB.SI(I2;".*sac.*")+NB.SI(I2;".*SAM.*")>0;1;0)

      Alors Je sais pas trop pourquoi ce petit point fonctionne, mais j'ai vérifié sur une 10ène de cellules et les résultats sont ok.
      Merci!
      0
      1. fred > zakintosh
         
         
        J'ai compris quelle est l'explication du point devant * :

        1) Sur Excel, * est le joker * qui signifie « tous les caractères » ; avec la fonction
        CHERCHE(), pour trouver le caractère * lui-même, on doit mettre : ~*

        2) Sur ton OpenOffice, c'est l'inverse : avec *sacoche* ça cherchait exactement
        ce texte-là : une étoile sacoche une étoile ; avec .* c'est où ton caractère *
        devient le joker * : ça cherche le mot sacoche avec des caractères avant ou
        après ; remarque : je n'utilise pas OpenOffice.  ;)

        Merci d'avoir passé le sujet en résolu.
         
        0
    3. Zakintosh
       
      Merci fred!
      0
  4. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Bonjour
    peut être plus court ici (pour la 1° colonne avec formule, la deuxième est en prime)
    crdlmnt
    https://mon-partage.fr/f/wwc95rVS/
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. zakintosh
     
    Merci à tous, je crois que je me suis un peu piégé tout seul en utilisant OpenOfficeCalc pour faire mes calculs... Car par exemple la fonction de Vaucluse fonctionne mais uniquement si je l'ouvre sur Excel. Maintenant je ne sais pas si je persiste à trouver une fonction qui me donne un résultat sur ODS ou si je transpose mes milliers de données sur Excel...
    0
  7. zakintosh
     
    RESOLU avec la fonction:

    =SI(NB.SI(I2;".*sacoche.*")+NB.SI(I2;".*topbag.*")+NB.SI(I2;".*SAD.*")+NB.SI(I2;".*SAB.*")+NB.SI(I2;".*affaires.*")+NB.SI(I2;".*sac.*")+NB.SI(I2;".*SAM.*")>0;1;0)

    (ce petit point avant les astérisques est-il une spécificité d'OpenOffice? en tous cas il fait que ça fonctionne)
    0