syntaxe de sommeprod

L

Loulou

Guest
Bonjour,

En essayant openoffice, je me suis rendu compte que la fonction sommeprod sous la forme sommeprod((A1:A3)*(B1:B3=3)) ne marchait pas.
Après recherche j'ai vu que la syntaxe sommeprod(matrice;matrice) marchait sous openoffice. J'ai essayé sommeprod(A1:A3;B1:B3=3) mais le comportement (sous excel aussi) n'est pas le bon !!!

Help !

ou pourrais-je trouver des éléments de compréhension complémentaires ?

Merci d'avance
 
A

andré

Guest
Salut,

Le fonction SOMMEPROD compte le nombre ou additionne les cellules répondant à une ou plusieurs conditions.

La plage A1:A3 ne contient aucune condition : c'est là l'erreur.
Suppose de A1 à A3 : oui - non - si
et de B1 à B3 : 2 - 3 - 4

La formule : =SOMMEPROD((A1:A3="non")*B1:B3) te renverra 3, soit la valeur contenue en colonne B si la cellule correspondante en colonne A contient "non".

SOMMEPROD((A1:A3="non")*(B1:B33=3) te renverras 1, soit une ligne correspondant aux deux critères.

Ândré.
 
L

Loulou

Guest
Cela se complique :)

Je recapitule...

Sous Excel, soit la formule =sommeprod((A1:A3)*(B1:B3=3))
avec A1/A2/A3 = 7/8/9 et B1/B2/B3 = 1/2/3
Le résultat donne 9

J'avais l'impression que l'on pouvait également écrire :
=sommeprod(A1:A3;B1:B3=3)

Je crois comprendre que dans le premier cas il n'y a qu'une matrice dans la formule et qu'il y en a 2 dans le second !

Pour revenir à mon pb initial, sous calc d'openoffice écrire une matrice sous la forme (A1:A3)*(B1:B3=3) ne parait donc pas possible !

Ou trouve-ton de la doc sur ce que l'on peut écrire dans une matrice ?
 
J

JCA06

Guest
Salut Loulou, le Forum,

Si tu veux tout savoir sur SOMMEPROD, en tout cas pour excel, fait un tour dans la partie Leçons et exemple dans Téléchargement.

Tu trouveras de quoi satisfaire ta curiosité.

Aspirine recommandée tout de même !

Si tu comprends presque tout et que tu veux des précisions, Celeda et Monique se feront certainement un plaisir de t'aider.

Voici le lien :
http://www.excel-downloads.com/html/French/fichiers/programmation-date_maj-1.htm

Bon courrage !
 
M

Monique

Guest
Bonjour,

Je récapitule aussi.

=SOMMEPROD((A1:A3)*(B1:B3=3))
fait la somme des cellules de la colonne A dont la cellule située sur la même ligne en colonne B est égale à 3

Même chose mais en mieux car, sous cette forme, A1:A10 peut contenir autre chose que des valeurs numériques :
=SOMMEPROD((A1:A10);(B1:B10=3)*1)

En général, on l'écrit dans l'autre sens, la plage à sommer à la fin :
=SOMMEPROD((B1:B10=3)*1;A1:A10)

Le *1 sert à rendre numérique le résultat de (B1:B10=3)
(on peut mettre aussi /1 ou +0 ou -0)
Sinon, c'est une succession de VRAI et FAUX
=SOMMEPROD(({FAUX;FAUX;VRAI;FAUX;FAUX;FAUX;FAUX;FAUX;FAUX;FAUX})*1;{7;8;9;0;0;0;0;0;0;0})
VRAI pour 1 et FAUX pour 0
=SOMMEPROD(({0;0;1;0;0;0;0;0;0;0});{7;8;9;0;0;0;0;0;0;0})
Si tu valides ces 2 dernières formules, tu obtiens le même résultat qu'avec la formule d'origine.
Les 2 matrices, c'est {0;0;1;0;0;0;0;0;0;0} et {7;8;9;0;0;0;0;0;0;0}

Le VRAI et le FAUX
Si tu tapes dans une cellule =VRAI, tu obtiens VRAI (heureusement)
Si tu tapes =VRAI*1, tu obtiens 1
=VRAI+VRAI, tu obtiens 2
=VRAI+FAUX, tu obtiens 1
=VRAI*FAUX, tu obtiens 0

Si tu as plusieurs critères :
=SOMMEPROD((B1:B10=3)*(C1:C10="Toto")*(D1:D10=10)*(E1:E10="ok");A1:A10)
fait la somme des cellules de la colonne A, à condition qu'il y ait sur la même ligne :
3 en colonne B,
toto ou TOTO ou tOtO en colonne C,
10 en colonne D,
ok en colonne E
Là, pas besoin de rendre numérique les valeurs entre parenthèses, le * entre chaque critère le fait.

Dans ce genre de formules,
Le * équivaut au ET des formules conditionneles classiques,
le + équivaut au OU
et le moins veut dire "sauf"

=SOMMEPROD(((B1:B10=3)+(B1:B10=2));A1:A10)
fait la somme des cellules de la colonne A dont la cellule située sur la même ligne en colonne B est égale soit à 3 soit à 2

=SOMMEPROD((ESTNUM(B1:B10)-(B1:B10=1));A1:A10)
fait la somme des cellules de la colonne A dont la cellule située sur la même ligne en colonne B contient n'importe quel nombre sauf 1.

Cette impression que tu as que l'on pouvait également écrire :
=SOMMEPROD(A1:A5;B1:B5=3)
ce n'est pas qu'une impression, sauf que "=3" est en trop ou bien je ne vois pas ce que tu veux dire.

Sous cette forme, d'accord :
=SOMMEPROD(A1:A5;B1:B5)
Cette formule fait la somme des produits, ligne par ligne :
=A1*B1+A2*B2+A3*B3+A4*B4+A5*B5

Celle-ci fait la somme des produits, colonne par colonne :
=SOMMEPROD(A12:Z12;A13:Z13)
elle équivaut à :
=A12*A13+B12*B13+C12*C13+etc+etc

Un peu long pour un récapitulatif.…
 
J

Jean-Marie

Guest
Bonjour

Je ne pense pas que Loulou avait besoin de toutes ces explications. Son problème ce situe avec OpenOffice et non avec Excel.

Loulou as-tu essayer une fonction matricielle avec OpenOffice, elles doivent fonctionner avec OpenOffice.

Fait une recherche sous Google à fonction matricielle avec OpenOffice, tu trouveras des fichiers PDF pour les explications.

Monique , quelle démonstration.

@+Jean-Marie
 
J

JCA06

Guest
Bonjour à tous,

Je savais que les noms que j'avais cités étaient des valeurs sures !

Bravo pour le récapitulatif, je l'imprime pour le garder car il remplacera l'aspirine quand je me replongerai dans la leçon que tu as faite avec Celeda.

C'est autre chose que ce que l'on obtient avec l'aide du programme !

Gràce à toi, on comprend que toute la puissance de la fonction SOMMEPROD est obtenue à partir des valeurs VRAI = 1 et FAUX = 0 et des critères *, + et -.

Il faut que je retrouve un post de ce forum que j'ai déjà cité à Thierry et qui disait quelque chose comme "gràce à vous, j'ai l'impression d'être intelligent !"

Merci !
 
L

Loulou

Guest
Merci à tous (et à Monique en particulier:)

Je comprend un peu mieux !

Pour revenir à mon problème initial sous openoffice
Je confirme donc que =SOMMEPROD((A1:A3)*(B1:B3)) ne marche pas.

Bonjour la compatibilité avec Excel :-(

Loulou
 
M

Monique

Guest
Bonjour,

Est-ce que tu as essayé Somme tout court, mais à valider par les 3 touches ctrl, maj et entrée ?
=SOMME((A1:A3)*(B1:B3))

Celle-ci est la même, avec juste ce qu'il faut comme parenthèses :
=SOMME(A1:A3*B1:B3)
Elle fait la somme des produits de tes 3 lignes :
=A1*B1+A2*B2+A3*B3
 
L

Loulou

Guest
Si Jean-Marie, j'avais répondu que mes formules avaient plusieurs critères :)

J'ai donc définitvement besoin de sommeprod à moins de tout réécrire autrement...

Je vais investiguer un peu plus du côté des gourouts d'openoffice si j'en trouve pour voir si un semblant de compatibilité est possible.

Loulou

ps : d'un point de vue méthodologique quantr je vois que si je tape =somme(A1:A3*B1*B3) suivi de CR ou =somme(A1:A3*B1*B3) suivi de Ctrl Maj CR, je n'obtient pas la même chose, je suis un peu effaré :)
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 337
Messages
2 087 391
Membres
103 536
dernier inscrit
komivi