Commande SOMMEPROD

Roya Messages postés 45 Date d'inscription   Statut Membre Dernière intervention   -  
Roya Messages postés 45 Date d'inscription   Statut Membre Dernière intervention   -
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.
A voir également:

23 réponses

tontong Messages postés 2572 Date d'inscription   Statut Membre Dernière intervention   1 062
 
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
tontong Messages postés 2572 Date d'inscription   Statut Membre Dernière intervention   1 062
 
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
Gyrus Messages postés 3334 Date d'inscription   Statut Membre Dernière intervention   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
Roya Messages postés 45 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Gyrus.
Merci de m'aider.
J'ai essayer mais j'arrive au même résultat : #VALEUR!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tontong Messages postés 2572 Date d'inscription   Statut Membre Dernière intervention   1 062
 
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
Roya Messages postés 45 Date d'inscription   Statut Membre Dernière intervention  
 
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
Roya Messages postés 45 Date d'inscription   Statut Membre Dernière intervention  
 
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
tontong Messages postés 2572 Date d'inscription   Statut Membre Dernière intervention   1 062
 
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
Roya Messages postés 45 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour.
Les =ESTNUM me renvoient bien vrai. Je pars une semaine en vacances, je recommence après.
0
tontong Messages postés 2572 Date d'inscription   Statut Membre Dernière intervention   1 062
 
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
Roya Messages postés 45 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Tontong.
Si j'utilise ta formule elle me renvoie 0, ce qui est incohérent.
0
tontong Messages postés 2572 Date d'inscription   Statut Membre Dernière intervention   1 062
 
Bonjour,
Peut-on voir le fichier ou un extrait typique?
0
Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438
 
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
Roya Messages postés 45 Date d'inscription   Statut Membre Dernière intervention  
 
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
Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438
 
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
tontong Messages postés 2572 Date d'inscription   Statut Membre Dernière intervention   1 062
 
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
Roya Messages postés 45 Date d'inscription   Statut Membre Dernière intervention  
 
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
Roya Messages postés 45 Date d'inscription   Statut Membre Dernière intervention  
 
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
Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438
 
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
tontong Messages postés 2572 Date d'inscription   Statut Membre Dernière intervention   1 062
 
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
Roya Messages postés 45 Date d'inscription   Statut Membre Dernière intervention  
 
Je n'ai copié la bonne formule dans mon post, je vérifie et je recommence.
0
Roya Messages postés 45 Date d'inscription   Statut Membre Dernière intervention  
 
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
Roya Messages postés 45 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beacoup de votre aide.
Je viens d'essayé mais je ne trouve pas ce qui coince.

https://www.cjoint.com/?CIlls6njr2T
0
Roya Messages postés 45 Date d'inscription   Statut Membre Dernière intervention  
 
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
tontong Messages postés 2572 Date d'inscription   Statut Membre Dernière intervention   1 062
 
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