SommeProd

Résolu
Bonjour,
je dispose d'un tableau de ce type
A B
date type de benne
01/01/2012 benne1
02/01/2012 benne2
03/01/2012 benne1
.... .....

j'ai une cellule dans laquelle j'ai appliqué la formule sommeprod((moisA:A)=1)*(B:B="benne1"))

Mais cela m'affiche une erreur valeur
toutefois si je remplace A:A par A1:A8 par ex et pareil pour B cela fonctionne mais je veux selectionner la colonne entière.

Comment je dois faire ?

6 réponses

  1. Contributeur
    Bonjour
    la colonne entière ne fonctionne pas avec SOMMEPROD, il faut des limites de lignes aussi.
    Prévoyez un champ suffisamment grand, par exemple le nombre de ligne d'une feuille Excel

    crdlmnt
    Errare humanum est, perseverare diabolicum
    0
    1. Contributeur
      Bonjour,

      la formule SOMMEPROD() n'est pas compatible avec les référence de colonne (A:A, B:B...). Vous devez absolument passer par une référence du type A1:A3000.

      De plus, les plages sélectionnées doivent être les mêmes dans chaque morceau de la formule.

      Cordialement.
      0
      1. la colonne A comprend la date
        la colonne B le type de benne
        ^^
        0
        1. bonjour

          on ne peut pas utiliser les colonnes entières avec sommeprod

          tu peux définir les plages de façon dynamique (Insertion/Nom/Definir)
          date=DECALER(Feuil1!$A$1;0;NBVAL(Feuil1!$A:$A)-1;1)
          benne=DECALER(Feuil1!$B$1;1;0;NBVAL(Feuil1!$B:$B)-1;1)

          et ta formule devient
          =SOMMEPROD((MOIS(date)=1)*(benne="benne1"))

          bonne journée
          0
          1. Contributeur
            Bonjour tous

            Bien on est tous d'accord à priori, sauf peut être pour mon ami Chossette que je trouve un peu rigoureux dans ses limites des capacités de sommeprod;
            Comme ça peut être intéressant pour tous de connaitre jusqu'où on peut aller avec ce code, sous réserve que chaque item s'adresse à des limites communes:
            cet exemple compte un résultat sur un croisement de ligne / colonne.
            Ça peut servir (à ceux qui ne le savent pas)
            https://www.cjoint.com/?CBCkQG7s9Wd
            crdlmnt

            Errare humanum est, perseverare diabolicum
            0
            1. Contributeur
              Bonjour à toi ami Vaucluse,

              effectivement, je l'ai joué un peu obtus sur ce coup là :D
              0