Valeur! avec sommeprod

Bonjour à tous,

Je n'arrive pas à me dépatouiller avec une formule sommeprod.

J'utilise sommeprod pour faire une somme avec condition.

J'ai réussi à obtenir mon temps de prod par centre en recherchant le centre dans un onglet :

manuellement : =SOMME('P66'!G12:G19)

Avec la recherche du centre : =SOMMEPROD(('P66'!$B$5:$B$199='Chantier Global'!B14)*('P66'!$G$5:$G$199))

Par contre j'ai un #valeur! pour le calcul de mon % d'avancement de déroulage :

En manuel : =SOMMEPROD('P66'!H12:H19;'P66'!P12:P19)/SOMME('P66'!H12:H19)

En auto =SOMMEPROD(('P66'!$B$5:$B$199='Chantier Global'!B14)*('P66'!H5:H199;'P66'!P5:P199)/SOMME('P66'!H5:H199))

J'ai décomposé la formule avec deux sommeprod : =SOMMEPROD('P66'!$B$5:$B$199='Chantier Global'!B14)*SOMMEPROD('P66'!H5:H199;'P66'!P5:P199)/SOMME('P66'!H5:H199) mais je ne retourne pas le bon résultat

J'anticipe la question de pk je n'utilise pas la formule manuel c'est par ce que au final je l'utilise en VBA sous cette forme

ActiveCell.FormulaR1C1 = _

"=SUMPRODUCT('" & zone & "'!R5C2:R199C2='Chantier Global'!RC[-13])*SUMPRODUCT('" & zone & "'!R5C8:R199C8,'" & zone & "'!R5C16:R199C16)/SUM('" & zone & "'!R5C8:R199C8)"

Là je sèche, j'ai essayé avec un INDIRECT mais je n'arrive pas non plus.

Si une âme charitable passe par là, il aura toute mon estime.

10test2.xlsx (328.26 Ko)

bonjour,

essaie ceci

ActiveCell.FormulaR1C1 = _
"=SUMPRODUCT(('" & zone & "'!R5C2:R199C2='Chantier Global'!RC[-13])*SUMPRODUCT('" & zone & "'!R5C8:R199C8)*('" & zone & "'!R5C16:R199C16))/SUM('" & zone & "'!R5C8:R199C8)"

tu auras encore le cas de la division par zéro à gérer

ActiveCell.FormulaR1C1 = _
"=IFERROR(SUMPRODUCT(('" & zone & "'!R5C2:R199C2='Chantier Global'!RC[-13])*SUMPRODUCT('" & zone & "'!R5C8:R199C8)*('" & zone & "'!R5C16:R199C16))/SUM('" & zone & "'!R5C8:R199C8),0)"

Bonjour h2so4,

Merci pour ton retour rapide, malheureusement je n'obtiens pas le résultat souhaité, que des 0% alors que ce n'est pas le cas dans les onglets concernés. j'ai l'impression qu'il n'aime pas la décomposition avec les deux sommeprod. Je me demande si ça veut dire la même chose

Bonjour,

je n'ai pas pu tester la modification proposée pour ton code, puisque tu n'as pas mis le code dans le classeur.

par contre la formule fonctionne en manuel.

=SOMMEPROD(('P66'!$B$5:$B$199='Chantier Global'!B14)*('P66'!H5:H199)*('P66'!P5:P199))/SOMME('P66'!H5:H199)

On est pas loin

Par contre moi je n'ai pas le bon résultat 37% au lieu de 80% j'ai l'impression qu'il divise par toute la plage et non juste le nombre d'items dans le centre voir fichier

8test2.xlsx (328.98 Ko)

bonjour,

j'ai corrigé le problème de #valeur, je ne pouvais pas deviner le résultat que tu attendais

voici la correction de la formule

=SUMPRODUCT(('P66'!$B$5:$B$199='Chantier Global'!B14)*('P66'!H5:H199)*('P66'!P5:P199))/SUMPRODUCT(('P66'!$B$5:$B$199='Chantier Global'!B14)*('P66'!H5:H199))

Il est bien vrai que tu ne pouvais le deviner

Et tu as confirmé mon doute de division par une sélection trop grande...

en VBA j'ai donc

ActiveCell.FormulaR1C1 = _

"=IFERROR(SUMPRODUCT(('" & zone & "'!R5C2:R199C2='Chantier Global'!RC[-13])*('" & zone & "'!R5C8:R199C8)*('" & zone & "'!R5C16:R199C16))/SUMPRODUCT(('" & zone & "'!R5C2:R199C2='Chantier Global'!RC[-13])*('" & zone & "'!R5C8:R199C8)),0)"

Qui marche nickel !

Un grand merci pour ton aide

Rechercher des sujets similaires à "valeur sommeprod"