sous excel 2010 et versions antérieure, la fonction SOMMEPROD ne semble
pas se comporter correctement avec la fonction TROUVE (ou CHERCHE)
Soit en A1:C6
1 bob 10
2 bobette 21
3 toto 32
1 bil 43
1 abobette 54
3 titi 60
E1=bob
e2=1
Sous Libre Office, les fonctions suivante donnent le même résultat
(correct) à savoir "64"
=SOMMEPROD((A1:A6=$E$2)*(C1:C6)*(SI(ESTERREUR(TROUVE($E$1;B1:B6));0;1)))
{=SOMME((A1:A6=$E$2)*(C1:C6)*(SI(ESTERREUR(TROUVE($E$1;B1:B6));0;1)))}
Sous Excel,
=SOMMEPROD((A1:A6=$E$2)*(C1:C6)*(SI(ESTERREUR(TROUVE($E$1;B1:B6));0;1)))
donne 107 (la clause sur la recherche de chaine est toujours considérée
comme égale à 1...)
mais
{=SOMME((A1:A6=$E$2)*(C1:C6)*(SI(ESTERREUR(TROUVE($E$1;B1:B6));0;1)))}
fonctionne correctelebt
Y a il une explication logique à ce problème existe t-il une liste des
fonctions qui ne sont pas "compatibles" avec sommeprod sous excel
Note : dans les exemple, SI(ESTERREUR(... est utilisé au lieu de
SIERREUR(... pour une compatibilité avec les anciennes versions)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Michd
Bonjour, Pour Excel : Dans cette formule : =SOMMEPROD((A1:A6=$E$2)*(C1:C6)*(SI(ESTERREUR(TROUVE($E$1;B1:B6));0;1))) Cette section est trouble : SI(ESTERREUR(TROUVE($E$1;B1:B6));0;1) Cet élément de l'ensemble est possible seulement dans le cas d'une formule matricielle recevant une validation matricielle. Pour preuve, si tu valides l'ensemble de la formule par Ctrl + Maj + Enter, tu auras le même résultat que l'autre formule utilisant Somme. Au lieu d'utiliser un SI, transforme ta formule comme ceci : =SOMMEPROD((A1:A6=$E$2)*(C1:C6)*(ESTNUM(TROUVE($E$1;B1:B6)))) Et là, le résultat est bon. Comme je n'ai jamais ouvert "Libre Office" je m'abstiendrai de faire un commentaire. MichD ,
Bonjour,
Pour Excel :
Dans cette formule :
=SOMMEPROD((A1:A6=$E$2)*(C1:C6)*(SI(ESTERREUR(TROUVE($E$1;B1:B6));0;1)))
Cette section est trouble :
SI(ESTERREUR(TROUVE($E$1;B1:B6));0;1)
Cet élément de l'ensemble est possible seulement dans le cas d'une formule
matricielle recevant une validation matricielle. Pour preuve, si tu valides
l'ensemble de la formule par Ctrl + Maj + Enter, tu auras le même résultat
que l'autre formule utilisant Somme.
Au lieu d'utiliser un SI, transforme ta formule comme ceci :
=SOMMEPROD((A1:A6=$E$2)*(C1:C6)*(ESTNUM(TROUVE($E$1;B1:B6))))
Et là, le résultat est bon.
Comme je n'ai jamais ouvert "Libre Office" je m'abstiendrai de faire un
commentaire.
Bonjour, Pour Excel : Dans cette formule : =SOMMEPROD((A1:A6=$E$2)*(C1:C6)*(SI(ESTERREUR(TROUVE($E$1;B1:B6));0;1))) Cette section est trouble : SI(ESTERREUR(TROUVE($E$1;B1:B6));0;1) Cet élément de l'ensemble est possible seulement dans le cas d'une formule matricielle recevant une validation matricielle. Pour preuve, si tu valides l'ensemble de la formule par Ctrl + Maj + Enter, tu auras le même résultat que l'autre formule utilisant Somme. Au lieu d'utiliser un SI, transforme ta formule comme ceci : =SOMMEPROD((A1:A6=$E$2)*(C1:C6)*(ESTNUM(TROUVE($E$1;B1:B6)))) Et là, le résultat est bon. Comme je n'ai jamais ouvert "Libre Office" je m'abstiendrai de faire un commentaire. MichD ,
bobj
Bonjour, Merci pour l'astuce. Du coup cela aurait aussi fonctionné avec "NON(ESTERREUR(...." En fait c'est le "SI" qui n'est pas compatible avec SOMMEPROD sous Excel. La question est pourquoi (je suis bien conscient qu'il toujours possible de reproduire l'équivalent d'un SI avec les éléments à l'intérieur du SOMMEPROD mais pas forcément avec la même lisibilité) Y aurait-il d'autres fonctions concernées par cette incompatibilité. L'idée de fond et de bien prendre en compte les fonctions qui ne fonctionnent pas de la même façon sous Excel et sou LibreOffice (afin de les éviter si possible). L'idée de l'utilisation du SOMMEPROD est de pouvoir éviter la validation Ctrl+Maj+Enter (et je suis par ailleurs surpris que sommeprod puisse avoir un résultat différent suivant le type de validation sous Excel. Ce n'est pas le cas (de mon expérience) sous LibreOffice) Ces premiers éléments sont instructifs. Merci, Le 17/02/2018 à 14:00, Michd a écrit :
Bonjour, Pour Excel : Dans cette formule : =SOMMEPROD((A1:A6=$E$2)*(C1:C6)*(SI(ESTERREUR(TROUVE($E$1;B1:B6));0;1))) Cette section est trouble : SI(ESTERREUR(TROUVE($E$1;B1:B6));0;1) Cet élément de l'ensemble est possible seulement dans le cas d'une formule matricielle recevant une validation matricielle. Pour preuve, si tu valides l'ensemble de la formule par Ctrl + Maj + Enter, tu auras le même résultat que l'autre formule utilisant Somme. Au lieu d'utiliser un SI, transforme ta formule comme ceci : =SOMMEPROD((A1:A6=$E$2)*(C1:C6)*(ESTNUM(TROUVE($E$1;B1:B6)))) Et là, le résultat est bon. Comme je n'ai jamais ouvert "Libre Office" je m'abstiendrai de faire un commentaire. MichD ,
Bonjour,
Merci pour l'astuce. Du coup cela aurait aussi fonctionné avec
"NON(ESTERREUR(...."
En fait c'est le "SI" qui n'est pas compatible avec SOMMEPROD sous Excel.
La question est pourquoi (je suis bien conscient qu'il toujours possible
de reproduire l'équivalent d'un SI avec les éléments à l'intérieur du
SOMMEPROD mais pas forcément avec la même lisibilité)
Y aurait-il d'autres fonctions concernées par cette incompatibilité.
L'idée de fond et de bien prendre en compte les fonctions qui ne
fonctionnent pas de la même façon sous Excel et sou LibreOffice (afin de
les éviter si possible).
L'idée de l'utilisation du SOMMEPROD est de pouvoir éviter la validation
Ctrl+Maj+Enter (et je suis par ailleurs surpris que sommeprod puisse
avoir un résultat différent suivant le type de validation sous Excel. Ce
n'est pas le cas (de mon expérience) sous LibreOffice)
Ces premiers éléments sont instructifs.
Merci,
Le 17/02/2018 à 14:00, Michd a écrit :
Bonjour,
Pour Excel :
Dans cette formule :
=SOMMEPROD((A1:A6=$E$2)*(C1:C6)*(SI(ESTERREUR(TROUVE($E$1;B1:B6));0;1)))
Cette section est trouble :
SI(ESTERREUR(TROUVE($E$1;B1:B6));0;1)
Cet élément de l'ensemble est possible seulement dans le cas d'une
formule matricielle recevant une validation matricielle. Pour preuve, si
tu valides l'ensemble de la formule par Ctrl + Maj + Enter, tu auras le
même résultat que l'autre formule utilisant Somme.
Au lieu d'utiliser un SI, transforme ta formule comme ceci :
=SOMMEPROD((A1:A6=$E$2)*(C1:C6)*(ESTNUM(TROUVE($E$1;B1:B6))))
Et là, le résultat est bon.
Comme je n'ai jamais ouvert "Libre Office" je m'abstiendrai de faire un
commentaire.
Bonjour, Merci pour l'astuce. Du coup cela aurait aussi fonctionné avec "NON(ESTERREUR(...." En fait c'est le "SI" qui n'est pas compatible avec SOMMEPROD sous Excel. La question est pourquoi (je suis bien conscient qu'il toujours possible de reproduire l'équivalent d'un SI avec les éléments à l'intérieur du SOMMEPROD mais pas forcément avec la même lisibilité) Y aurait-il d'autres fonctions concernées par cette incompatibilité. L'idée de fond et de bien prendre en compte les fonctions qui ne fonctionnent pas de la même façon sous Excel et sou LibreOffice (afin de les éviter si possible). L'idée de l'utilisation du SOMMEPROD est de pouvoir éviter la validation Ctrl+Maj+Enter (et je suis par ailleurs surpris que sommeprod puisse avoir un résultat différent suivant le type de validation sous Excel. Ce n'est pas le cas (de mon expérience) sous LibreOffice) Ces premiers éléments sont instructifs. Merci, Le 17/02/2018 à 14:00, Michd a écrit :
Bonjour, Pour Excel : Dans cette formule : =SOMMEPROD((A1:A6=$E$2)*(C1:C6)*(SI(ESTERREUR(TROUVE($E$1;B1:B6));0;1))) Cette section est trouble : SI(ESTERREUR(TROUVE($E$1;B1:B6));0;1) Cet élément de l'ensemble est possible seulement dans le cas d'une formule matricielle recevant une validation matricielle. Pour preuve, si tu valides l'ensemble de la formule par Ctrl + Maj + Enter, tu auras le même résultat que l'autre formule utilisant Somme. Au lieu d'utiliser un SI, transforme ta formule comme ceci : =SOMMEPROD((A1:A6=$E$2)*(C1:C6)*(ESTNUM(TROUVE($E$1;B1:B6)))) Et là, le résultat est bon. Comme je n'ai jamais ouvert "Libre Office" je m'abstiendrai de faire un commentaire. MichD ,