IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Webi Discussion :

Conditions SI Contient ET Contient Alors..


Sujet :

Webi

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 110
    Par défaut Conditions SI Contient ET Contient Alors..
    Bonjour

    Je souhaiterais au travers d'un formule dans une colonne dire :

    Si dans la colonne [Libellé Article (ART)] contient BOUCHE A CLE et contient COMPOSITE dans libelle, alors affiché COMPOSITE en résultat.

    J'ai essayé de réaliser cette formule qui ne semble pas fonctionner

    =Si (comparer ([Libellé Article (ART)] ;"*BOUCHE A CLE*") ="Vrai" Et (comparer ([Libellé Article (ART)] ;"*COMPOSITE*") ="Vrai") Alors "COMPOSITE"))

    J'aimerai avoir SVP de l'aide pour comprendre et réaliser cet formule

    Merci d'avance

  2. #2
    Membre Expert
    Avatar de bastoonet
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Septembre 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 011
    Par défaut
    =Si ( Pos([Libellé Article (ART)] ;"BOUCHE A CLE")>0 Et Pos([Libellé Article (ART)] ;"COMPOSITE")>0) Alors "COMPOSITE" Sinon [Libellé Article (ART)]

  3. #3
    Membre habitué
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Août 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2015
    Messages : 13
    Par défaut
    Je me permet d'expliquer la solution de Bastoonet :

    La fonction "pos()" permet de retourner un int (un chiffre) qui correspond à la position de début de la première chaîne, dans la seconde.

    Exemples : Pos("New York";"York") Renvoi 5 ; Pos("New York";"Ne") Renvoie 1 ; Pos("New York";"Washington") Renvoie 0

    Donc, quand il fait "Si(Pos([Libellé Article (ART)] ;"BOUCHE A CLE")>0", BO la traduit par <Si la position de "BOUCHE A CLE" dans [Libellé Article (ART)] est supérieure à 0 (donc si "BOUCHE A CLE" est présent dans [Libellé Article (ART)]) alors "COMPOSITE">

    Bien sûr, en utilisant comparer cela marche également.
    Seulement la fonction comparer est un peu plus subtile, elle utilise des caractères spécifiques pour déterminer si une chaîne correspond à un modèle.

    Le caractère * permet de dire "Je veux que tu ne tienne pas compte de tout ce qui est présent dans cet espace"
    Par exemple : Comparaison([Pays];"A*") renvoie 1 si [Pays] est "Allemagne", mais aussi si [Pays] est "Angleterre" ou encore "Afghanistan",...
    De même, Comparaison([Pays];"A*e") renvoie 1 si [Pays] est "Allemagne", "Angleterre" mais pas "Afghanistan", car "A*e" veut dire "Tout ce qui commence par A et se finit par e".

    Le caractère ? permet de dire "Je veux du tu ne tienne pas compte du seul caractère qui est dans cet espace"
    Par exemple : Comparaison([Pays];"?S?") renvoie 1 si [Pays] est "USA" mais renvoie 0 si [Pays] est "Afghanistan", car il y a plusieurs caractères après les "?"

    D'autres exemples : Comparaison([Chaîne];"B*j??r") Renvoie 1 pour "Bonjour" ; Comparaison([Chaîne];"B??*u*") renvoie 1 pour "Bonjour" ainsi que pour "Beau" et "Bateau", mais pas pour "Bruit".

    Voilà pour l'explication.
    Pour la solution à ta formule : Les fonctions booléennes (qui font un test logique), ne renvoie pas "vrai" ou "faux" mais "1" ou "0"
    Donc techniquement avec : =Si (comparer ([Libellé Article (ART)] ;"*BOUCHE A CLE*") =1 Et (comparer ([Libellé Article (ART)] ;"*COMPOSITE*") =1) Alors "COMPOSITE"))
    Ça devrait mieux fonctionner.

Discussions similaires

  1. Condition : Si ma chaine contient un caractere alors ..
    Par kasdo dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 25/11/2015, 11h47
  2. [Débutant] Condition: si mon vecteur contient une valeur alors j'execute ma fonction
    Par Automatiq dans le forum MATLAB
    Réponses: 2
    Dernier message: 26/04/2015, 06h44
  3. si la cellule B6 contient tel mot alors C6="."
    Par facteur dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 13/08/2013, 14h55
  4. Condition SI une cellule contient une heure?
    Par nesswaw dans le forum Excel
    Réponses: 2
    Dernier message: 06/10/2010, 12h56
  5. Une condition du genre "champ contient valeur" ça existe ?
    Par nicolas2603 dans le forum VBA Access
    Réponses: 3
    Dernier message: 20/05/2008, 16h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo