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 en ligne sur cellule contenant un caractère texte [XL-2010]


Sujet :

Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Statistiques
    Inscrit en
    Août 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Statistiques

    Informations forums :
    Inscription : Août 2009
    Messages : 14
    Points : 11
    Points
    11
    Par défaut Somme en ligne sur cellule contenant un caractère texte
    Bonjour, à tous sur le forum

    je travail sur excel 2010 ou 2016 en fonction des postes de travail

    J'ai un tableau qui se présente ainsi sur 200 lignes

    A B C D E F G H I J K L M N O P Q R S T
    1 DUPONT V8 V8 V8,5 8,0 7,0 8,0 0,0
    2 Pierre
    3 DUPOND 3,0 0,0 3,0 3,0 6,0 4,0 4,0 4,0 3,0 4,0 3,0 0,0 6,0 0,0
    4 Paul
    5 MARTIN 7,0 7,0 5,0 5,0 8,0 8,0 V10,5 V3 V7,5 V5 V8 3,0 3,0
    6 Jack

    Je souhaiterais faire la somme de la partie numérique et par ligne des cellules lorsqu’elles contiennent la lettre « V »et l’inscrire en colonne U

    Par exemple: sur la ligne 1 pour DUPONT mettre en U1 une formule qui calcule 8+8+8,5=24,5
    sur la ligne 3 pour DUPOND mettre en U3 une formule qui calcule = 0
    sur la ligne 5 pour MARTIN mettre en U5 une formule qui calcule 10,5+3+7.5+5+8=34

    je bloque en vain avec SOMMEPROD(($A$1:$A$6=$a1)*(ESTNUM(CHERCHE("V";$C$1:$T$6)))*1;(SUBSTITUE($C$1:$T$6;"V";"")*1))
    J’en appel à votre aimable soutien si quelqu’un avait la solution
    merci

  2. #2
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 477
    Points : 3 864
    Points
    3 864
    Par défaut
    Bonsoir,

    J'ai fait un truc rapide que tu devras adapter (cette formule permet de calculer les nombre après le v si présent dans la plage A1:A6):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD((GAUCHE(A1:A6)="v")*(CNUM(DROITE(A1:A6;NBCAR(SUBSTITUE(A1:A6;"v";""))))))
    À valider avec CTRL MAJ ENTER


    Allez:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD((GAUCHE(B1:T1)="v")*(CNUM(DROITE(B1:T1;NBCAR(SUBSTITUE(B1:T1;"v";""))))))

  3. #3
    Membre à l'essai
    Homme Profil pro
    Statistiques
    Inscrit en
    Août 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Statistiques

    Informations forums :
    Inscription : Août 2009
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD((GAUCHE(B1:T1)="v")*(CNUM(DROITE(B1:T1;NBCAR(SUBSTITUE(B1:T1;"v";""))))))
    [/QUOTE]

    Merci pour ta réponse QuestVba
    j'ai bien validé la formule matricielle
    mais j'ai en retour "#VALEUR! "
    la formule fonctionne bien lorsque je l'utilise sur une somme en colonne mais ça renvoi une valeur d'erreur pour une somme en ligne.
    Je comprends pas pourquoi !!!

  4. #4
    Membre habitué
    Homme Profil pro
    Automaticien / Electricien
    Inscrit en
    Mars 2015
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Automaticien / Electricien
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2015
    Messages : 73
    Points : 164
    Points
    164
    Par défaut
    Bonjour Pacoloco, QuestVba,

    Une proposition:

    J'ai intégré la possibilité d'avoir des V en minuscule ou majuscule (risque de saisie oblige).

    En "U1"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME(SI(ESTVIDE(B1:T1);0;SUBSTITUE(SUBSTITUE(B1:T1;"V";"");"v";"")*1))-SOMME(B1:T1)
    Formule matricielle a valider avec ctrl + maj + entrée

    Cordialement.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Statistiques
    Inscrit en
    Août 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Statistiques

    Informations forums :
    Inscription : Août 2009
    Messages : 14
    Points : 11
    Points
    11
    Par défaut MERCI QuestVba,
    Un Grand MERCI QuestVba,

    Cela fonctionne parfaitement
    Serait il envisageable d'avoir une explication sur la décomposition de la formule.
    Car je ne comprends pas les différentes contraintes pour lesquelles la mienne ne fonctionnait pas
    Par avance encore merci

    Cordialement.[/QUOTE]

  6. #6
    Membre habitué
    Homme Profil pro
    Automaticien / Electricien
    Inscrit en
    Mars 2015
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Automaticien / Electricien
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2015
    Messages : 73
    Points : 164
    Points
    164
    Par défaut
    Citation Envoyé par Pacoloco Voir le message
    Un Grand MERCI QuestVba,

    Cela fonctionne parfaitement
    Serait il envisageable d'avoir une explication sur la décomposition de la formule.
    Car je ne comprends pas les différentes contraintes pour lesquelles la mienne ne fonctionnait pas
    Par avance encore merci

    Cordialement.
    Re Pacoloco,
    Bonjour QuestVba,

    Moi aussi j'attends d'avoir les explications de ma formule par QuestVba,

    Cdlt.

  7. #7
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 477
    Points : 3 864
    Points
    3 864
    Par défaut
    Bonsoir,
    Quelle attente, oups que vais-je faire ?

    Bon allez,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD((GAUCHE(B1:T1)="v")*(CNUM(DROITE(B1:T1;NBCAR(SUBSTITUE(B1:T1;"v";""))))))
    Ma première partie
    permet de trouver les cellules qui commencent par "v" > GAUCHE

    La seconde partie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CNUM(DROITE(B1:T1;NBCAR(SUBSTITUE(B1:T1;"v";""))))
    permet
    de transformer un chiffre donné sous forme de texte en nombre > CNUM
    de remplacer un argument "v" par ce que je veux, c'est à dire rien > SUBSTITUE
    de trouver le nombre de caractère restant lorsque que j'ai effectué la substitution > NBCAR
    de prendre la partie droite en fonction du nombre de caractères > DROITE

    DONC si ma cellule vaut 'v454'
    SUBSTITUE : '454'
    NBCAR : 3
    DROITE : '454' (caractère)
    CNUM : '454' (nombre)

  8. #8
    Membre à l'essai
    Homme Profil pro
    Statistiques
    Inscrit en
    Août 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Statistiques

    Informations forums :
    Inscription : Août 2009
    Messages : 14
    Points : 11
    Points
    11
    Par défaut Bonjour mdo100
    Désolé pour la réponse tardive
    Je te remercie pour ta formule qui fonctionne parfaitement
    juste un petit souci quand sur la ligne il y a une cellule avec une autre lettre que "V"
    j'ai en retour "#VALEUR! "
    STP saurais tu pourquoi
    je serais preneur aussi pour un petit cours sur l'explication de ta formule
    Avec tous mes respects
    Bien Cordialement

  9. #9
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 477
    Points : 3 864
    Points
    3 864
    Par défaut
    Bonjour,
    Dans ton exemple de départ, tu n'as pas dit qu'il y avait d'autres lettres.
    Donc, ça foire.

    Essaie avec ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =(SI(GAUCHE(B1:T1)<>"v";"";SOMMEPROD((GAUCHE(B1:T1)="v")*(CNUM(DROITE(B1:T1;NBCAR(SUBSTITUE(B1:T1;"v";""))))))))
    Attention : CTRL MAJ ENTER

    La partie
    te permettra de tester si la première lettre est différente de 'v'. Si c'est le cas, on ne fait rien, sinon on retombe sur la formule proposée.

  10. #10
    Membre à l'essai
    Homme Profil pro
    Statistiques
    Inscrit en
    Août 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Statistiques

    Informations forums :
    Inscription : Août 2009
    Messages : 14
    Points : 11
    Points
    11
    Par défaut Bonjour à tous
    Bonjour QuestVba

    Dans mes réponses j'ai confondu ta réponse et celle de mdo100
    et je m'en excuse

    Ta formule SOMMEPROD((GAUCHE(B1:T1)="v")*(CNUM(DROITE(B1:T1;NBCAR(SUBSTITUE(B1:T1;"v";""))))))
    renvoie "#VALEUR! " même si j’enlève les cellules avec une autre lettre que "V"

    c'est la formule de mdo100 qui fonctionne

    Toutefois juste un petit souci quand sur la ligne il y a une cellule avec une autre lettre que "V"
    j'ai en retour "#VALEUR! "
    STP saurais tu pourquoi
    je serais preneur aussi pour un petit cours sur l'explication de la formule de mdo100

    Bien Cordialement

  11. #11
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 477
    Points : 3 864
    Points
    3 864
    Par défaut
    Re-,

    Ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD((GAUCHE(B4:T4)="v")*(SI(GAUCHE(B4:T4)<>"v";0;CNUM(DROITE(B4:T4;NBCAR(SUBSTITUE(SUBSTITUE(B4:T4;"V";"");"v";"")))))))

  12. #12
    Membre à l'essai
    Homme Profil pro
    Statistiques
    Inscrit en
    Août 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Statistiques

    Informations forums :
    Inscription : Août 2009
    Messages : 14
    Points : 11
    Points
    11
    Par défaut CHAPEAU BAS QuestVba
    Bonjour à tous,

    Tous mes respects pour ta formule QuestVba
    elle est tout simplement magique
    je bute dessus depuis plus de trois semaines
    et je n'ai toujours pas saisie ta syntaxe
    merci une fois de plus à toi et à tous ceux qui se donnent
    la peine de nous sortir des ténèbres

  13. #13
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 477
    Points : 3 864
    Points
    3 864
    Par défaut
    Que ne comprends-tu pas à la syntaxe ?

  14. #14
    Membre à l'essai
    Homme Profil pro
    Statistiques
    Inscrit en
    Août 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Statistiques

    Informations forums :
    Inscription : Août 2009
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD((GAUCHE(B4:T4)="v")*(SI(GAUCHE(B4:T4)<>"v";0;CNUM(DROITE(B4:T4;NBCAR(SUBSTITUE(SUBSTITUE(B4:T4;"V";"");"v";"")))))))
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SUBSTITUE (SUBSTITUE(B4:T4;"V";"");"v";"")
    Permet de remplacer dans la plage de cellules un argument "v" ou "V" par ce que je veux, c'est à dire rien

    NBCAR
    Permet de trouver le nombre de caractère restant lorsque que j'ai effectué la substitution

    DROITE
    Permet de prendre la partie droite des cellules de la plage en fonction du nombre de caractères

    CNUM
    permet de transformer un chiffre donné sous forme de texte en nombre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SI(GAUCHE(B4:T4)<>"v";0;
    Permet de ne comptabiliser que les cellules de la plage commençant par "v" ou "V" (pas sensible à la casse) sinon elles sont égales à zéro

    Je ne comprends pas comment s’imbrique cette partie dans l’action de la formule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SOMMEPROD((GAUCHE(B4:T4)="v")*
    Merci encore

  15. #15
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 477
    Points : 3 864
    Points
    3 864
    Par défaut
    Bonsoir,

    La fonction SOMMEPROD() permet d'obtenir un résultat en fonction de plusieurs conditions:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SOMMEPROD((champ1=condition1)*(champ2=conditions2)*(.....))
    Cette fonction effectue des opérations sur des matrices.
    • Les champs doivent avoir la même taille
    • Les conditions doivent être placées entre ()
    • Ne pas utiliser Et()/Ou(): Utiliser * et +
    • Utiliser *1 pour convertir les Vrai/Faux en 1/0 ou --

  16. #16
    Membre à l'essai
    Homme Profil pro
    Statistiques
    Inscrit en
    Août 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Statistiques

    Informations forums :
    Inscription : Août 2009
    Messages : 14
    Points : 11
    Points
    11
    Par défaut MERCI
    Merci encore je n'avais pas perçu touts ces conditions
    c'est plus clair pour moi maintenant

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

Discussions similaires

  1. [XL-2003] Boucle supprimer ligne dont cellule contenant..
    Par frag132 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/01/2013, 13h32
  2. [Toutes versions] Identifier les cellules contenant des caractères numériques
    Par Runsh63 dans le forum Excel
    Réponses: 4
    Dernier message: 17/03/2011, 16h44
  3. Réponses: 5
    Dernier message: 10/06/2009, 11h59
  4. [MySQL] Somme de lignes sur un champ
    Par aiss57 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 04/05/2009, 22h23
  5. Somme de lignes sur union : je sèche.
    Par Vincenteyssier dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/12/2005, 10h15

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