Commande SOMMEPROD

Roya Messages postés 47 Statut Membre -  
Roya Messages postés 47 Statut Membre -
Bonjour,
je souhaite avoir la somme sur la feuille Synthèse! des nombres de la colonne C de la feuille resultats_2011 qui réponsent à deux critères. La formule :
=SOMMEPROD(ANNEE(resultats_2011!A:A)=Synthèse!B8;resultats_2011!B:B="vélo";resultats_2011!C:C)
me renvoit #VALEUR!
Pourqoi ?

Merci de votre aide.

23 réponses

  • 1
  • 2
  1. tontong Messages postés 2575 Date d'inscription   Statut Membre Dernière intervention   1 064
     
    Bonjour,
    Bonjour,
    Seulement 2 erreurs pour le critère MOIS: le champ n'est pas en colonne I mais en colonne A et F1 contient un texte.La fonction MOIS renvoie un nombre de 1 à 12 donc dans le critère (MOIS(resultats_2011!I$2:I$1759)=F1) il faudrait que F1 contienne un nombre... comme je l'avais déjà précisé au #19.

    Pour arranger ça je propose d'ajouter en ligne 2: E2 =1 ,F2=2,.........P2=12 en dessous de Janvier, Février,......et de recopier en E3 la formule
    =SOMMEPROD((resultats_2011!$B$2:$B$1759="vélo")*(ANNEE(resultats_2011!$A$2:$A$1759)=$B3)*(MOIS(resultats_2011!$A$2:$A$1759)=E$2);(resultats_2011!$C$2:$C$1759))
    Les quelques $ de plus la rende recopiable!!! ;-)
    1
  2. tontong Messages postés 2575 Date d'inscription   Statut Membre Dernière intervention   1 064
     
    Bonjour,
    On va y arriver, ne désespérez pas.
    En E4 vous avez =SOMMEPROD((resultats_2011!B$2:B$1759="vélo")*(ANNEE(resultats_2011!A$2:A$1759)=B4)*(MOIS(resultats_2011!A$2:A$1759)=E1)*(resultats_2011!C$2:C$1759))
    Il faudrait ..*(MOIS(resultats_2011!A$2:A$1759)=E2)..

    En F4 vous avez ...*(MOIS(resultats_2011!I$2:I$1759)=F2)
    Il faudrait ..*(MOIS(resultats_2011!A$2:A$1759)=F2)..

    Faites, en E4, un copier/coller de cette formule:
    =SOMMEPROD((resultats_2011!$B$2:$B$1759="vélo")*(ANNEE(resultats_2011!$A$2:$A$1759)=$B4)*(MOIS(resultats_2011!$A$2:$A$1759)=E$2)*(resultats_2011!$C$2:$C$1759))
    et recopiez sur la ligne 4.
    1
  3. Gyrus Messages postés 3360 Statut Membre 526
     
    Bonjour,

    Tu peux essayer comme cela
    =SOMMEPROD((resultats_2011!A:A=Synthèse!B8)*(resultats_2011!B:B="vélo")*(resultats_2011!C:C))

    A+
    0
  4. Roya Messages postés 47 Statut Membre
     
    Bonjour Gyrus.
    Merci de m'aider.
    J'ai essayer mais j'arrive au même résultat : #VALEUR!
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. tontong Messages postés 2575 Date d'inscription   Statut Membre Dernière intervention   1 064
     
    Bonjour,
    Avec les versions anciennes (antérieures à 2007 je crois ) on ne peut pas utiliser des colonnes entières avec Sommeprod. Il faut borner les champs A2:A500 au lieu de A:A, il faut de plus que tous les champs aient la même taille.
    0
  7. Roya Messages postés 47 Statut Membre
     
    Merci Tontong.
    J'ai la suite bureautique de windows 7. J'ai essayer aussi en bornant les colonnes, sans plus de succès. Ce sont mes tests qui ne fonctionnent pas.
    0
  8. Roya Messages postés 47 Statut Membre
     
    Bonjour.
    J'ai identifié le problème c'est ce test qui ne fonctionne pas :
    ANNEE(resultats_2011!A$2:A$4000)=B8

    Il y 2008 dans B8 et des dates de la forme 01/05/200X dans la colonne A.
    0
  9. tontong Messages postés 2575 Date d'inscription   Statut Membre Dernière intervention   1 064
     
    Bonjour,
    Il faut vérifier si on a bien des nombres et des dates (alignés par défaut à droite).
    Dans une cellule libre tapez =ESTNUM(B8) la formule validée doit revoyer la valeur VRAI.
    Faites de même avec A2,A3.....
    Le 01/05/2008 doit devenir 39569 si on passe la cellule au format Standard.
    0
  10. Roya Messages postés 47 Statut Membre
     
    Bonjour.
    Les =ESTNUM me renvoient bien vrai. Je pars une semaine en vacances, je recommence après.
    0
  11. tontong Messages postés 2575 Date d'inscription   Statut Membre Dernière intervention   1 064
     
    Bonjour,
    S'il y a des valeurs de texte dans le champ dont il faut faire la somme ( colonne C) il convient d'adopter cette syntaxe:
    =SOMMEPROD((resultats_2011!A2:A500=Synthèse!B8)*(resultats_2011!B2:B500="vélo");(resultats_2011!C2:C500))
    avec l'opérateur ; à la place du * pour le champ "à sommer".
    Bonnes vacances.
    0
  12. Roya Messages postés 47 Statut Membre
     
    Bonjour Tontong.
    Si j'utilise ta formule elle me renvoie 0, ce qui est incohérent.
    0
  13. tontong Messages postés 2575 Date d'inscription   Statut Membre Dernière intervention   1 064
     
    Bonjour,
    Peut-on voir le fichier ou un extrait typique?
    0
  14. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Bonjour
    si la formule renvoie valeur, c'est que vous avez dans une colonne traitée des valeurs qui ne sont pas numériques.
    IUl semblerait d'"après vos messages que ce soit dans la colonne des dates.
    Vérifier que toutes les valeurs dates soient bien numériques (formater la colonne en standard et voyez si toutes les dates deviennent des nombres)
    crdlmnt
    0
  15. Roya Messages postés 47 Statut Membre
     
    Bonjour.
    effectivement, il doit y avoir des problèmes avec les dates.
    Pour la SI"vélo" qui me renvoie 0 case C4 de la feuille Synthèse du fichier ci-joint, je ne comprends pas.

    https://www.cjoint.com/?CIel57gZbZi
    0
    1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      Je crois que votre formule n'est pas écrite correctement:
      le premier item ne tient pas compte du code ANNEE, il n'y a donc aucune valeur du champ égale à B4!
      la limite du champ de A1 à A500 n'inclut pas d'année 2013, et donc vous aurez forcément 0
      le signe entre les deux derniers item doit être * pas ;
      crdlmnt
      0
    2. tontong Messages postés 2575 Date d'inscription   Statut Membre Dernière intervention   1 064
       
      Bonjour,
      Pour appliquer les remarques de Vaucluse il faut modifier la formule de Feuil3!G5
      =SOMMEPROD((resultats_2011!A2:A500=Synthèse!B8)*(resultats_2011!B2:B500="vélo");(resultats_2011!C2:C500))
      en ajoutant la fonction Annee, en allongeant les champs de 500 à 1700 et en remplaçant B8 par B4 (B8 est vide dans le fichier joint)
      La formule devient
      =SOMMEPROD((ANNEE(resultats_2011!A2:A1700)=Synthèse!B4)*(resultats_2011!B2:B1700="vélo");(resultats_2011!C2:C1700))
      ou
      =SOMMEPROD((ANNEE(resultats_2011!A2:A1700)=Synthèse!B4)*(resultats_2011!B2:B1700="vélo")*(resultats_2011!C2:C1700))

      Avec l'opérateur ; SommeProd sera effectué même si dans le champ C2:C1700 une cellule contient du texte. C'est un choix!

      Nota: Les totaux de la ligne 1761 pourraient être présentés en haut de la feuille.
      0
  16. Roya Messages postés 47 Statut Membre
     
    Merci à tous les deux.
    Ca prend forme. Pour "Nota: Les totaux de la ligne 1761 pourraient être présentés en haut de la feuille.", je ne sais plus comment me débarrasser des totaux.
    Maintenant, je vais essayer de faire pareil mais par mois.
    0
  17. Roya Messages postés 47 Statut Membre
     
    Pas concluant.
    Est ce que j'ai oublié quelque chose dans la syntaxe :
    =SI((resultats_2011!J$2:J$1759="vélo");SOMMEPROD(ET(ANNEE(resultats_2011!I$2:I$1759)=J3;MOIS(resultats_2011!I$2:I$1759))=K2)*(resultats_2011!K$2:K$1759))

    Comment me débarrasser des totaux "Nota: Les totaux de la ligne 1761 pourraient être présentés en haut de la feuille.".
    0
    1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      Bonjour
      votre formule n'est pas cohérente
      il faut des produits pour que sommeprod fonctionne.
      La condition SI n'est pas utile, de plus elle ne peut s'adresser à un champ complet (hors mis en matricielle, pas utile ici
      et il y a quelques parenthèses posées au hasard!
      écrivez

      =SOMMEPROD((resultats_2011!J$2:J$1759="vélo")*(ANNEE(resultats_2011!I$2:I$1759)=J3)*(MOIS(resultats_2011!I$2:I$1759)=K2)*(resultats_2011!K$2:K$1759))

      crdlmnt
      0
    2. tontong Messages postés 2575 Date d'inscription   Statut Membre Dernière intervention   1 064
       
      Bonjour,
      Comment me débarrasser des totaux:
      Clic droit sur une cellule >> Liste >> clic sur ligne de total.

      En complément au #17 de Vaucluse K2 doit contenir un nombre de 1 à 12.
      0
  18. Roya Messages postés 47 Statut Membre
     
    Je n'ai copié la bonne formule dans mon post, je vérifie et je recommence.
    0
  19. Roya Messages postés 47 Statut Membre
     
    Bonjour.
    J'ai réessayé mais j'ai du oublier quelque chose.
    Ma formule feuille "synthèse" case F3 encadrée en rouge ne fonctionne pas
    =SOMMEPROD((resultats_2011!B$2:B$1759="vélo")*(ANNEE(resultats_2011!A$2:A$1759)=B3)*(MOIS(resultats_2011!I$2:I$1759)=F1);(resultats_2011!C$2:C$1759))

    https://www.cjoint.com/?CIjpQnAoa9X
    0
  20. Roya Messages postés 47 Statut Membre
     
    Merci tontong,
    Ca fonctionne.
    Dommage que les copier-glisser fonctionnent mal avec ma formule et que je ne puisse pas selectionner des colonnes entières (présence de mots en début de colonne).
    En tous cas, merci de votre patience.
    0
    1. tontong Messages postés 2575 Date d'inscription   Statut Membre Dernière intervention   1 064
       
      La formule proposée à la fin du #23 permet un copier/glisser, mais on obtient des 0 pour les lignes vides où l'année n'est pas renseignée.

      Rappel résumé:
      Le $ bloque la partie de la référence devant laquelle il est placé.
      $A$2 la ligne et la colonne sont bloquées c'est une référence absolue.
      $A2 la colonne est bloquée c'est une référence mixte. La ligne s'incrémente lors de la recopie.
      A$2 la ligne est bloquée c'est une référence mixte. La colonne s'incrémente lors de la recopie.
      A2 rien n'est bloquée c'est une référence relative. La ligne et la colonne s'incrémentent lors de la recopie.

      La liste ne serait pas complète si on ne citait pas les références nommées où un nom remplace une référence de cellule ou de champ.
      0
  • 1
  • 2