La fonction SOMMEPROD associée à SI dans une plage

Résolu/Fermé
DM - 19 nov. 2019 à 11:27
 DM - 21 nov. 2019 à 15:10
Bonjour,
Je voudrais employer la fonction SOMMEPROD dans une condition SI, qui s'appliquerait sur une plage de la même dimension. La formule utilisée est suivante, mais je reçois un message d'erreur. Quelqu'un peut m'aider à la corriger?
SI(AY17:AY2533=0; SOMMEPROD(AI17:AI2533;AS17:AS2533); SOMMEPROD(AI17:AI2533;AY17:AI2533))

2 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
19 nov. 2019 à 12:23
Bonjour

que veux tu dire avec
AY17:AY2533=0 ? pour chaque ligne ou la somme de la colonne ?

dans le 2° sommeprod tu écris SOMMEPROD(AI17:AI2533;AY17:AI2533))
c'est la colonne AI ou AY ?
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié le 19 nov. 2019 à 14:20
Si tu traites ligne par ligne
maquette sur 6 lignes Et 3 colonnes (A,B,C) en considérant que la colonne est AY

=SOMME(SI(A4:A10=0;B4:B10*C4:C10;B4:B10*A4:A10))
Formule matricielle à valider par « ctrl+maj+entrée » (et non directement par « entrée »), le curseur clignotant dans la barre de formule. La formule est alors encadrée automatiquement par des accolades : { formule }

la maquette
https://mon-partage.fr/f/QNsvnILs/

Maintenant, avec sommeprod ou une matricielle sur 2500 lignes, tu as largement le temps d'aller siroter très doucement un café...
0
Ceci est exactement ce que je voulais, mais il semble que cela n'est pas possible de le faire avec SOMMEPROD et SI. Toutefois Ta solution donne le résultat attendu. Merci infiniment.
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
19 nov. 2019 à 16:49
Sommeprod est en fait une matricielle masquée !
0
Ce que je remarque avec la formule matricielle comme aussi avec SOMMEPROD, le résultat affiche toujours #VALEUR!, au lieu de donner une valeur fixe? Quand je réduis le nombre des lignes à 200 par exemple, il affiche le résultat
0
Cette forme matricielle est donc limitée en nombre de lignes? Que doit-on faire pour élargir le nombre des lignes?
0
AY c'est la colonne qui va de la ligne 17 à 2533. Je peux simplifier la formule en ceci:
Si(M17:M2533=0; SOMMEPROD(B17:B2533;C17:C2533); SOMMEPROD(B17:B2533;M17:M2533)). Je voudrais que quand chaque cellule de la colonne M, de la ligne 17 à 2533 a pour valeur 0, on calcule le 1er SOMMEPROD et dans le cas contraire, on calcule le 2e SOMMEPROD.
0