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 :

Somme de chiffres à droite d'une chaîne dans une plage de cellules suivant conditions [XL-2007]


Sujet :

Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Infirmier
    Inscrit en
    Novembre 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Infirmier
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2012
    Messages : 13
    Points : 11
    Points
    11
    Par défaut Somme de chiffres à droite d'une chaîne dans une plage de cellules suivant conditions
    Bonjour,
    J'ai une plage de cellules A1:E1. Les valeurs sont les suivantes : A1 = "AF2", B1 = "B", C1 = "AF1", D1 = "N", E1 = "BF3". En F1, je souhaite faire la somme des chiffres de droite des cellules de la plage pour lesquelles les deux premiers caractères = "AF". Je devrais donc obtenir 3 en F1.
    J'ai essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD(((NBCAR(A1:E1)>2)*(EXACT(GAUCHE(A1:E1;2);"AF")))*((ESTNUM(CNUM(DROITE(A1:E1;1))))*(CNUM(DROITE(A1:E1;1)))))
    Cela renvoie une erreur.
    Un grand merci d'avance si vous pouvez m'aider.

    Jean-Marie

  2. #2
    Membre éprouvé
    Homme Profil pro
    Contrôleur de gestion en activité
    Inscrit en
    Juillet 2012
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Contrôleur de gestion en activité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2012
    Messages : 545
    Points : 939
    Points
    939
    Par défaut
    Bonjour,

    en matricielle (avec Ctrl+Maj+entrée au moment de la validation)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =somme(si(gauche(A1:E1;2)="AF";droite(A1:E1;1);0))
    Bonne soirée

  3. #3
    Membre à l'essai
    Homme Profil pro
    Infirmier
    Inscrit en
    Novembre 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Infirmier
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2012
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    Bonjour,
    Et merci de cette réponse rapide.
    Mais ça fonctionne mieux si l'on fait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME(SI(GAUCHE(A1:E1;2)="AF";CNUM(DROITE(A1:E1;1));0))
    Merci encore.
    Bonne soirée itou.

    Jean-Marie

  4. #4
    Membre à l'essai
    Homme Profil pro
    Infirmier
    Inscrit en
    Novembre 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Infirmier
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2012
    Messages : 13
    Points : 11
    Points
    11
    Par défaut Question supplémentaire
    Pardon, je reviens vers vous.
    N'y a-t-il tout de même pas moyen d'utiliser un SOMMEPROD car j'ai d'autres conditions à évaluer en plus de celle-là; cet exemple était un test mais la formule, en fait, est plus complexe. Je redonne un exemple:
    sur la plage A1:AE1, j'encode des chaînes, p.e. "A" ou "B" ou "N" ou "AR" ou etc... et notamment "AF+ un chiffre", mais aussi "FO" ou "FI".
    Sur la plage A2:AE2, j'ai une formule qui me donne en numérique la valeur attribuée aux chaînes de la plage A1:AE1 (ex: si en A1 j'ai "FO", A2 me donne 7,6). Je dois donc d'une part, faire la somme des valeurs de la plage A2:AE2 pour les cellules de la plage A1:AE1 qui contiennent "FO" ou "FI" et d'autre part, y ajouter la formule que vous m'avez conseillée.
    Ca pourrait faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    =SOMMEPROD(((EXACT(GAUCHE(A1:AE1;2);"FO"))+(EXACT(GAUCHE(A1:AE1;2);"FI")))*(A2:AE2))
    +SOMME(SI(GAUCHE(A1:AE1;2)="AF";CNUM(DROITE(A1:AE1;1));0))
    Mais je sais que la syntaxe n'est pas juste.

    J'espère que vous avez compris ma requête.

    Merci.

    Jean-Marie

  5. #5
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 936
    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 : 12 936
    Points : 28 932
    Points
    28 932
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Un exemple à adapter bien sûr
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD((((GAUCHE(A1:F1;2)="FO")+(GAUCHE(A1:F1;2)="FI"))>0) * (DROITE(A1:F1;1)) * A2:F2)
    La formule vérifie si dans la plage A1:F1 les 2 caractères de gauche des valeurs cellules sont égales à FI ou FO si oui multiplie le chiffre de droite de ces cellules et les valeurs correspondantes dans la plage A2:F2

  6. #6
    Membre à l'essai
    Homme Profil pro
    Infirmier
    Inscrit en
    Novembre 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Infirmier
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2012
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    Aïe, ça ne fonctionne pas.
    Voici ce que j'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD(((((GAUCHE(A1:E1;2)="FO")+(GAUCHE(A1:E1;2)="FI"))>0)*(A2:E2))*((GAUCHE(A1:E1;2)="AF")* (CNUM(DROITE(A1:E1;1)))))
    Et ça me met #valeur.

    Dur, dur...

    Si vous pouvez creuser encore un peu ...

    Merci.
    Jean-Marie

  7. #7
    Membre à l'essai
    Homme Profil pro
    Infirmier
    Inscrit en
    Novembre 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Infirmier
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2012
    Messages : 13
    Points : 11
    Points
    11
    Par défaut Solution
    Bonjour,
    Ce petit message pour signaler que j'ai trouvé une solution qui fonctionne, après adaptation de la solution de supermichou. Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME(SI(OU(GAUCHE(A1:E1;2)="FO";GAUCHE(A1:E1;2)="FI");A2:E2);0)+SOMME(SI(GAUCHE(A1:E1;2)="AF";CNUM(DROITE(A1:E1;1));0))
    à valider avec ctrl+maj+enter.

    En espérant que cette formule ne soit pas trop lourde et ne ralentisse pas le traitement.

    Merci à tous deux pour vos efforts.
    Bonne journée.

    Jean-Marie

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

Discussions similaires

  1. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  2. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  3. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  4. Trouver la position d'une chaîne dans une chaîne
    Par taka10 dans le forum Langage
    Réponses: 1
    Dernier message: 03/01/2007, 23h18
  5. Réponses: 4
    Dernier message: 11/08/2006, 13h47

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