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 :

[Power Query] Formule si imbriqué et message d'erreur - Amélioration [XL-365]


Sujet :

Excel

  1. #1
    Community Manager

    Avatar de Malick
    Homme Profil pro
    Community Manager
    Inscrit en
    juillet 2012
    Messages
    8 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Community Manager
    Secteur : Conseil

    Informations forums :
    Inscription : juillet 2012
    Messages : 8 577
    Points : 79 652
    Points
    79 652
    Billets dans le blog
    15
    Par défaut [Power Query] Formule si imbriqué et message d'erreur - Amélioration
    Bonjour,

    j'essaie d'ajouter une colonne personnalisée, mais j'ai un message d'erreur :

    Expression.Error : Le nom « left » n'a pas été reconnu. Veuillez vérifier qu'il est correctement orthographié.
    Le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if left([Compte],1)=3 and [Solde]<0 then "Actif Circulant" else 
       if left([Compte],1)=4 and [Solde]<0 then "Actif Circulant" else
       if left([Compte],1)=3 and [Solde]>0 then "Passif Circulant" else
       if left([Compte],1)=4 and [Solde]>0 then "Passif Circulant"
       else "NA"
    Le code pourrait peut-être faire l'objet d'amélioration. Merci pour vos avis
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc.
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    janvier 2010
    Messages
    10 885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : janvier 2010
    Messages : 10 885
    Points : 26 059
    Points
    26 059
    Billets dans le blog
    34
    Par défaut
    Bonjour Malik,
    Je n'ai pas vérifié mais comme Left renvoie une chaîne de caractères, j'écrirais plutôt If Left([Compte],1)="3"

    [EDIT]
    Je viens de vérifier avec une courte comparaison et ce n'est pas cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub t1()
      Const Compte As String = "35128"
      If Left(Compte, 1) = 3 Then MsgBox "Ok"
    End Sub
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Ma dernière contribution : VBA - Les macros complémentaires

  3. #3
    Community Manager

    Avatar de Malick
    Homme Profil pro
    Community Manager
    Inscrit en
    juillet 2012
    Messages
    8 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Community Manager
    Secteur : Conseil

    Informations forums :
    Inscription : juillet 2012
    Messages : 8 577
    Points : 79 652
    Points
    79 652
    Billets dans le blog
    15
    Par défaut
    Bonjour Philippe,

    Merci pour ton aide. Donc ce n'est pas un souci de string ou numeric apparemment

    Avec le message d'erreur, j'ai l'impression que Power Query ne connait pas left
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc.
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Formateur et développeur bureautique
    Inscrit en
    mars 2007
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur et développeur bureautique
    Secteur : Conseil

    Informations forums :
    Inscription : mars 2007
    Messages : 680
    Points : 1 424
    Points
    1 424
    Par défaut
    Bonjour

    Dans Power Query, pour obtenir les premiers caractères d'une chaîne, il faut utiliser la fonction Text.Start

    Cependant, cette fonction ne travaille que sur du texte. Donc, s'il faut agir à partir d'une colonne numérique, il faut la convertir en texte.

    Comme l'a indiqué Philippe, cela renvoie du texte, donc "3".

    Cela donnerait donc : if Text.Start(Text.From([Compte]),1)="1" then "OK" else null

    En espérant que cela aide

    Bon après-midi

    Pierre
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  5. #5
    Membre expérimenté
    Homme Profil pro
    Formateur et développeur bureautique
    Inscrit en
    mars 2007
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur et développeur bureautique
    Secteur : Conseil

    Informations forums :
    Inscription : mars 2007
    Messages : 680
    Points : 1 424
    Points
    1 424
    Par défaut
    Rebonjour

    Sans pouvoir tout tester, je pense que l'on peut écrire la formule de la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (Text.Start(Text.From([Compte]),1)="3" or Text.Start(Text.From([Compte]),1)="4") and [Solde]<>0 then "Passif Circulant" else null
    En espérant que cela aide aussi.

    Bon après-midi

    Pierre Dumas
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  6. #6
    Community Manager

    Avatar de Malick
    Homme Profil pro
    Community Manager
    Inscrit en
    juillet 2012
    Messages
    8 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Community Manager
    Secteur : Conseil

    Informations forums :
    Inscription : juillet 2012
    Messages : 8 577
    Points : 79 652
    Points
    79 652
    Billets dans le blog
    15
    Par défaut
    Bonjour Pierre,

    Merci Je teste cela et vous fais un retour.
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc.
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  7. #7
    Community Manager

    Avatar de Malick
    Homme Profil pro
    Community Manager
    Inscrit en
    juillet 2012
    Messages
    8 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Community Manager
    Secteur : Conseil

    Informations forums :
    Inscription : juillet 2012
    Messages : 8 577
    Points : 79 652
    Points
    79 652
    Billets dans le blog
    15
    Par défaut
    Super, merci à vous deux

    Pierre, en adaptant ta proposition, la formule suivante fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (Text.Start(Text.From([Compte]),1)="3" or Text.Start(Text.From([Compte]),1)="4") and [Solde]<0 then "Actif Circulant" else 
    if (Text.Start(Text.From([Compte]),1)="3" or Text.Start(Text.From([Compte]),1)="4") and [Solde]>0 then "Passif Circulant" else null
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc.
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  8. #8
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    février 2010
    Messages
    7 536
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : février 2010
    Messages : 7 536
    Points : 14 416
    Points
    14 416
    Par défaut
    Bonjour à tous

    Ceci devrait suffire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (Text.Start(Text.From([Compte]),1)="3" or Text.Start(Text.From([Compte]),1)="4") then if [Solde]<0 then "Actif Circulant" else "Passif Circulant" else null
    Mais dans tous les cas il faudrait gérer le =0 soit en <= ou >=
    Chris
    PowerQuery existe depuis plus de 10 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  9. #9
    Community Manager

    Avatar de Malick
    Homme Profil pro
    Community Manager
    Inscrit en
    juillet 2012
    Messages
    8 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Community Manager
    Secteur : Conseil

    Informations forums :
    Inscription : juillet 2012
    Messages : 8 577
    Points : 79 652
    Points
    79 652
    Billets dans le blog
    15
    Par défaut
    Salut 78chris,

    Belle démonstration également :cool:

    Merci beaucoup à tous
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc.
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

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

Discussions similaires

  1. Power query Formule conditionnelle
    Par zertupo dans le forum Microsoft Office
    Réponses: 0
    Dernier message: 06/05/2021, 15h00
  2. [XL-365] Power Query Colonne formulée conditionnelle sur valeur nulle
    Par Sami_Xite dans le forum Excel
    Réponses: 16
    Dernier message: 11/03/2021, 11h36
  3. Réponses: 10
    Dernier message: 06/12/2019, 08h32
  4. [XL-2016] Formule qui change dans POWER QUERY
    Par ambact dans le forum Excel
    Réponses: 2
    Dernier message: 23/06/2018, 19h36
  5. Réponses: 2
    Dernier message: 06/08/2010, 09h41

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