Question sur SOMMEPROD sous EXCEL

Bonjour à tous

je débute avec excel et j'ai un probleme pour calculer avec SOMMEPROD.

ds ma 1ere cellule en A15 ((=SOMMEPROD(A1:A10=33)*(B1:B10)) le résultat est correct, par contre quand je recommence la meme formule en D15 ((=SOMMEPROD(D1:D10=33)*(E1:E10)) il m'affiche #VALEUR! Pourquoi ??
Quelqu'un aurait il une solution

Merki

16 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour à tous,

    Vous m'avez l'air tous bien "callé" en Excel !!! Et c'est chouette pour moi, j'ai besoin de vos lumières !!!
    Je suis débutante et je galère un peu !
    Pouvez-vous m'aider ?

    J'ai compris grosso-merdo la fonction SOMMEPROD et j'ai réussi à m'en servir pour un truc simple ! Le souci, c'est que j'ai une truc à faire qui est un peu plus compliqué, et je n'y arrive pas !

    En fait, je dois calculer en taux d'occupation à partir de 2 critères ! J'ai donc écrit :
    =SOMMEPROD(($F$2:$F$133="2005")*($I$2:$I$133="01")*($J$2:$J$133/$K$2:$K$133))
    Les deux premiers critères sont OK, ils fonctionnent ! Par contre, le troisième critère ne fonctionne pas. Peut être parce qu'on ne peut pas faire de calculer ? Mais c'est bizarre !!!

    Y-a-t'il quelqu'un qui peut m'aider ???

    D'avance merci et bonne journée.
    1. Salut FIL,

      Hébé tant mieux si tu as un résultat correct en A15, c'est plutôt étonnant.
      La syntaxe serait plutôt :
      =SOMMEPROD(A1:A10;B1:B10)
      Equivaut à :
      A1*B1 + A2*B2 + ... + A10*B10.
      1. merci Armojax,
        mais en fait je voudrai comptabiliser la somme des cellules se trouvant à droite de chaque chiffre 33. ex :

        45 2
        33 1
        33 2
        33 0
        41 4
        ------
        3 etant la réponse
        merci
      2. La synthaxe de la formule normale, c'est ça:
        =SOMMEPROD((D1:D10=33)*(E1:E10))
        Si tu as ce message, c'est que dans la zone e1:e10 tu as probablement une zon non numérique.
        Excel multiplie alors un "vrai" donc "1" ou un "faux" donc "0" par une zone alpha, ce qui donne une erreur.
    2. Modérateur
      Salut,

      conseils de rédaction
      Bonjour,
      
      question (pas en majuscules)
      Pouvez-vous ..................?
      Merci.

      1. Contributeur
        bonjour

        En fait ce n'est pas sommeprod qu'il faut utiliser dans ton cas.

        =SOMME(SI(A1:A10=33;B1:B10;0))

        Ceci est beaucoup plus adapté et fonctionne en additionnant
        la ligne de la colonne B dont le critère de A est correct.

        Mais pour que cela fonctionne, il faut valider avec "Ctrl + Maj + Entr"
        qui rajoute des crochets à la formule qui devient matricielle.

        Avec la syntaxe =SOMMEPROD(A1:A10=33)*(B1:B10))
        je m'étonne que tu ais un résultat ?

        1. Contributeur
          bonjour

          Tu peux essayer aussi ceci :

          =SOMME((A1:A10=33)*B1:B10)

          qui donne le même résultat en étant plus simple et tu peux rajouter des conditions:

          =SOMME((A1:A10=33)*(D1:D10<"lm")*B1:B10)

          Attention, dans tous les cas, ta matrice à additionner (B1:B10 ici),
          doit être numérique pour ne pas avoir de message erreur !

          bons essais et donnes nous le résultat.
          1. merci gbinforme,

            j'ai trouvé une bonne réponse en tapant :
            =SOMME.SI(A1:A10;33;B1:B10)

            par contre si je veux le resultat sur plusieurs critères, à la place de 33, je voudrai par exemple du 20 au 28, comment faire ??

            je n'ai jamais été aussi près :))

            merci
        2. Hello FIL et gbinforme,

          Faute de mieux pour le moment, en décomposant :
          (critère <=28) - (critère<20)

          =SOMME.SI(A1:A10;"<=28";B1:B10)-SOMME.SI(A1:A10;"<20";B1:B10)

          Y'a peut-être plus simple...
          1. Contributeur
            bonjour à tous

            Comme je l'ai mentionné au poste 4, la formule matricielle est plus simple,
            et on peut facilement combiner les conditions :

            =SOMME((A1:A10>=20)*(A1:A10<=28)*B1:B10)
            (attention Ctrl + Maj + Entr pour valider ! )

            c'est le même résultat avec une simplification... mais chacun peut choisir !
        3. Modérateur
          Salut à tous,

          Un tableau croisé ne sera pas suffisant?

          lami20j
          1. Modérateur
            Re,

            avec une formule matricielle on peut créer des formules avec des conditions multiples comme bien l'a précisé gbinforme, et c'est assez simple.

            En revanche quand le nombre des conditions devient assez considerable taper une mega-formule peut devenir assez ennuyeux.

            Seulement dans l'esprit TIMTOWDI, qui ne fait pas partie du monde Microsoft malheureusement, j'ai proposé la variante avec un tableau croisé qui peut convenir à un utilisateur windows habitué avec la souris.

            https://www.cjoint.com/?howk2o74BV

            lami20j
            1. merci à tous,

              pour la formule =SOMME((A1:A10>=20)*(A1:A10<=28)*B1:B10)
              (attention Ctrl + Maj + Entr pour valider ! ) çà fonctionne par contre quand je veux faire pareil pour deux autres colonnes E et F par exemple il me met #VALEUR!

              GRRRR, c enervant

              par contre si je fais =SOMME.SI(A1:A10;"33";B1:B10)+SOMME.SI(A1:A10;"34";B1:B10)+SOMME.SI(A1:A10;"35";B1:B10) etc... çà fonctionne, mais c un peu long :((

              Encore merci à tous
              1. Modérateur
                Re,

                çà fonctionne, mais c un peu long

                Ben oui, c'est pour ça que j'ai parlé des tableaux croisés

                En revanche quand le nombre des conditions devient assez considerable taper une mega-formule peut devenir assez ennuyeux.

                lami20j
              2. Contributeur
                bonjour

                pour deux autres colonnes E et F par exemple il me met #VALEUR!

                comme mentionné en < 4 >
                Attention, dans tous les cas, ta matrice à additionner (B1:B10 ici),
                doit être numérique pour ne pas avoir de message erreur !


                il doit y avoir des espaces ou d'autres caractères alpha dans tes valeurs !

              3. exact gbinforme dans cette colonne j'ai des cellules qui sont vides !!! donc c'est pour çà que je ne peux pas effectuer la meme opération que pour A et B

                MERCI
            2. Contributeur
              bonjour

              exact dans cette colonne j'ai des cellules qui sont vides !!!

              Ton problème ne vient pas de là, car les cellules vides sont gérées,
              mais tu as dû oublier : (attention Ctrl + Maj + Entr pour valider ! )

              Excel fait toujours ce qu'on lui dit de faire,
              mais jamais, ce qu'on pense lui avoir dit de faire !
              1. JE VEUX AVOIR LA SOMME DES QUANTITES D'UN ARTICLE X QUI SE REPETE DANS UNE COLONNE ET CE EN L'ANNEE 2007 CAR IL Y A D'AUTRES QUANTITES EN L'ANNEE 2008.
                MERCI DE ME REPONDRE
                1. Bonsoir à tous,

                  Je viens de découvrir votre forum, et je pense qu'ici je devrais trouver les réponses qu'il me manque.
                  J'ai lu plus haut que les cellules vides d'une colonne utilisée en sommeprod ne causent pas d'incident sur le résultat de cette même fonction. Pourriez vous me dire s'il celà est exact ou autrement comment résoudre ce problème.
                  Exemple de la formule : SOMMEPROD((GAUCHE(UF;3)=GAUCHE($A$2;3))*((UT=B$3)+(UT=B$4))*(MODENT<>"")*(IPP>0)) --> Résultat = #N/A
                  La colonne MODENT contient 2 cellules vides
                  Merci d'avance
                  JB
                  1. Contributeur
                    bonjour

                    Chaque fonction excel a une syntaxe et sommeprod fonctionne correctement si toutes les plages ont la même longueur.

                    Tant que tu mélangeras des tests avec des "+" et des "*" tu devrais avoir une erreur.

                    Syntaxe
                    
                    SOMMEPROD(matrice1;matrice2;matrice3,...)
                    
                    matrice1, matrice2, matrice3, ...   représentent de 2 à 30 matrices dont vous voulez multiplier les valeurs pour ensuite additionner leur produit. 
                    
                    
                    1. Contributeur
                      bonjour

                      Comme son nom l'indique, SOMMEPROD est prévu pour faire des produits et non des divisions.

                      Ta formule fonctionne tout de même et si sur ton tableau elle ne fonctionne pas c'est que dans ta plage il doit y avoir des cellules non documentées correctement et qui provoquent des divisions par zéro : à vérifier.