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

Excel Discussion :

Formule condition et Caractère générique


Sujet :

Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Responsable des études
    Inscrit en
    Mai 2020
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2020
    Messages : 50
    Points : 20
    Points
    20
    Par défaut Formule condition et Caractère générique
    Bonjour à tous,

    J'ai un souci avec l'emploi d'un caractère générique dans la formule SI.CONDITIONS. Dans une colonne L, j'ai des cellules avec une chaine de caractère avec un nombre de caractère variable compris entre 1et 8 (A, BA, CD, EBD,....).
    L'objectif est d'attribuer la valeur 1 à la présence de la lettre A, 2 à la présence de la lettre B, 2 si A et B sont tous deux présents, et 0 pour les autres cas.

    J'essaie de traiter ces informations pour les affecter à un indicateur numérique qui implique de détecter la présence d'une lettre (par exemple) pour ça, j'ai pensé utilisé la fonction SI.MULTIPLE en l'associant avec un critère complété du caractère générique * avec cette formule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI.MULTIPLE(L193,1,"*A*","0")
    Ca ne marche pas et je ne comprends pas pourquoi et je ne vois comment faire...
    Bien à vous

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 351
    Points : 333
    Points
    333
    Par défaut
    Bonjour,
    Si mes souvenir sont bons on ne peut pas utiliser les caractères génériques dans des guillemets.
    Il va falloir utiliser STXT pour savoir si la cellule contient le caractère recherché.
    Attention si tu démarre ta recherche avec « A » tout seul il va aussi trouver les AB ou les BA.

  3. #3
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Salut.

    Vu que utilises SI.MULTIPLE, je suppose que ta version est 365? Peux-tu confirmer une utilisation exclusive 365)?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  4. #4
    Membre à l'essai
    Homme Profil pro
    Responsable des études
    Inscrit en
    Mai 2020
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2020
    Messages : 50
    Points : 20
    Points
    20
    Par défaut
    J'ai essayé ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI.MULTIPLE(STXT(L182;1;8),1,"*A*","0")
    Mais il n'accepte pas l'entrée de la formule...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 351
    Points : 333
    Points
    333
    Par défaut
    Excuse moi, ma mémoire n'est pas bonne.
    Il faut utiliser la fonction =CHERCHE("A";L193;1)

  6. #6
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Tu es sûr de la valeur pour AB? C'est bien 2, pas 3?

    Voici ce qui pourrait convenir pour A1

    =SI.MULTIPLE(SIERREUR(CHERCHE("a";A1)>0;0)+SIERREUR(CHERCHE("b";A1)>0;0)*2;0;0;1;1;2;2;3;2)

    En 365, tu pourrais utiliser LET : =LET(V;SIERREUR(CHERCHE("a";A1)>0;0)+SIERREUR(CHERCHE("b";A1)>0;0)*2;SI(V>1;2;V))


    Comme déjà dit par Pascal, tu ne peux pas utiliser les * dans ce cas-ci...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  7. #7
    Membre à l'essai
    Homme Profil pro
    Responsable des études
    Inscrit en
    Mai 2020
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2020
    Messages : 50
    Points : 20
    Points
    20
    Par défaut
    Merci Pascal,

    Si j'ai bien compris, la fonction CHERCHE envoie le n° de la position d'une chaine de caractère dans une autre chaine de caractère. Ca ne marchera pas dans mon cas car si j'ai 'BDF" et que je cherche "B" alors il va me renvoyer "1" alors qu'il doit me renvoyer "2"...

  8. #8
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Pour savoir si une lettre est présente dans la cellule, tu dois tester CHERCHE(...)>0... Attention que CHERCHE renvoie une erreur lorsque la lettre n'est pas trouvée (C'est stupide, elle aurait pu renvoyer 0, c'eut été plus simple ^^). C'est pourquoi j'englobe le reste dans le SIERREUR.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  9. #9
    Membre à l'essai
    Homme Profil pro
    Responsable des études
    Inscrit en
    Mai 2020
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2020
    Messages : 50
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par Pierre Fauconnier Voir le message
    Tu es sûr de la valeur pour AB? C'est bien 2, pas 3?

    Voici ce qui pourrait convenir pour A1

    =SI.MULTIPLE(SIERREUR(CHERCHE("a";A1)>0;0)+SIERREUR(CHERCHE("b";A1)>0;0)*2;0;0;1;1;2;2;3;2)

    En 365, tu pourrais utiliser LET : =LET(V;SIERREUR(CHERCHE("a";A1)>0;0)+SIERREUR(CHERCHE("b";A1)>0;0)*2;SI(V>1;2;V))


    Comme déjà dit par Pascal, tu ne peux pas utiliser les * dans ce cas-ci...
    Bonjour Pierre,

    quand ya A et B, il est attendu la valeur 2 (les valeurs affectées respectivement ne s'ajoutent pas)
    Je préfère partir de la première fonction. Je suis en 365 mais je préfère ne pas exclure des config pas en 365).
    Ca marche mais je ne comprends pas comment. Je suis en apprentissage hyper intensif là...

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 351
    Points : 333
    Points
    333
    Par défaut
    Comme l'a dit Pierre la fonction Cherche va te donner un valeur > 0 si la lettre est présente.
    Comme je l'ai dis plus haut attention Si tu cherche "A" tu vas aussi le trouver quant tu as "AB".
    Par habitude dans c'est cas la je cherche d'abord AB si je ne l'ai pas trouvé je cherche A puis B.

  11. #11
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Tu peux utiliser l'audit de formules pour la comprendre pas à pas

    Nom : 2021-04-08_123023.png
Affichages : 127
Taille : 113,8 Ko


    Explication de la formule:
    • VRAI et FAUX sont "transformés" en 1 et 0 lors d'une opération arithmétique.
    • On teste que A est présent avec CHERCHE("A";A1)>0 => VRAI ou FAUX;
    • On teste que B est présent avec CHERCHE("B";A1)>0 => VRAI ou FAUX et on multiplie le résultat par 2 => VRAI = 2 et FAUX = 0;
    • On additionne les deux résultat: On peut donc avoir comme résultat 0, 1, 2 ou 3;
    • Si >2, on renvoie 2, sinon on renvoie le résultat.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  12. #12
    Membre à l'essai
    Homme Profil pro
    Responsable des études
    Inscrit en
    Mai 2020
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2020
    Messages : 50
    Points : 20
    Points
    20
    Par défaut
    Merci pour tout et en particulier l'explication.
    Dans la fonction CHERCHE que l'on mette B ou b ça ne change rien, la fonction est indifférente au MAJ /min?

    Bonne journée

  13. #13
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par xirix Voir le message
    [...]la fonction est indifférente au MAJ /min?[...]
    Oui, si tu souhaites une différence maj/min, tu dois utiliser la fonction TROUVE... ^^ (ils ont été illogiques jusqu'au bout avec ces deux fonctions)
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  14. #14
    Membre à l'essai
    Homme Profil pro
    Responsable des études
    Inscrit en
    Mai 2020
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2020
    Messages : 50
    Points : 20
    Points
    20
    Par défaut
    Merci. Super

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/06/2012, 16h49
  2. Commande System caractère générique
    Par Teufboy dans le forum Langage
    Réponses: 3
    Dernier message: 06/05/2008, 17h55
  3. caractère générique dans requête
    Par big1 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 18/06/2007, 10h23
  4. Non-utilisation d'un caractère générique
    Par ehrhart.jy dans le forum Access
    Réponses: 2
    Dernier message: 13/07/2006, 11h02
  5. caractère générique utilisable dans strcmp
    Par barthelv dans le forum C
    Réponses: 9
    Dernier message: 01/08/2003, 16h54

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