SUMPRODUCT avec des conditions optionnelles

Bonjour,

J'ai une table qui se présente de cette manière: Trois variables avec des identifiants différents (1, 2 et 3) et deux variables avec des métriques.

ID1ID2ID3Var1Var2
1110,4397,628
1120,4401,614
1130,4405,610
1210,4413,120
1220,4417,261
1230,4421,413
1310,26547,017
1320,26612,651
1330,26678,449

Dans une autre table, j'aimerais faire un résumé de la table présenté ci-dessus. En fonction des identifiants souhaités, les utilisateurs pourraient obtenir la somme-produit des deux variables métriques. Ainsi, dans trois zones nommées (ChoiceID1, ChoiceID2 et ChoiceID3), les utilisateurs peuvent sélectionner, via une liste déroulante, les identifiants qui les intéresse.

Pour faire cela, j'utilise donc la fonction sumproduct qui réalise très très bien cette opération tel que :

=SUMPRODUCT(Var1;Var2;(ID1=ChoiceID1)*(ID2=ChoiceID2))*(ID3ChoiceID3))

Le problème survient à l'étape ultérieur où j'aimerais ajouter la possibilité de sélectionner une option "all". S'ils sélectionne ceci, j'aimerais que la somme-produit ne prenne pas en compte la condition appliquée sur l'identifiant. Autrement dit, que la somme-produit s'applique à tous les enregistrements sur la colonne considérée.

Voici la formule actuelle que j'ai :

=SUMPRODUCT(Var1;Var2;(ID1=IF(ChoiceID1="all";;ChoiceID1))*(ID2=IF(ChoiceID2="all";;ChoiceID2))*(ID3=IF(ChoiceID3="all";;ChoiceID3))

Dans cette approche, je ne sais quoi mettre dans la valeur si vraie du IF, pour dire simplement de sélectionner toutes les valeurs. J'ai déjà essayé la wildcard "*" sans succès.

Une autre approche pourrait de générer textuellement la condition à travers d'un if mais il s'agirait alors d'une approche macro-code et je ne sais pas comment intégrer cela dans les fonctions exels. La fonction Indirect() n'a l'air de fonctionner uniquement pour des références, et non pour un texte de code à générer.

La marche serait alors quelque chose du style:

=SUMPRODUCT(Var1;Var2;(if(ChoiceID1="all";ID1=var3;ID1=ChoiceID1))*(if(ChoiceID2="all";ID2=var3;ID2=ChoiceID2))*(if(ChoiceID3="all";ID3=var3;ID3=ChoiceID3)))

avec l'ajout d'une variable 3 constituée uniquement de 1.

Il existe sans doute d'autres approches auxquelles je n'ai pas pensé.
Si vous avez des suggestions, elles sont largement bienvenues

Un tout grand merci d'avance pour votre lecture et votre temps.

Bonjour,

Je ne sais pas :

  1. si j'ai compris
  2. si la proposition couvre tous les cas de figure
  3. si, intellectuellement, je n'énonce pas une ineptie impardonnable

Par contre, il y a sans doute plus simple :

=SOMMEPROD((SI(IDChoice1="all";A2:A10>0;A2:A10=IDChoice1))*(SI(IDChoice2="all";B2:B10>0;B2:B10=IDChoice2))*(SI(IDChoice3="all";C2:C10>0;C2:C10=IDChoice3))*(D2:D10)*(E2:E10))

Pas d'inepties à recenser!
Merci! Ca fonctionne bien en effet. Je ne sais pas pourquoi, j'ai plus de facilité avec VBA qu'avec les fonctions excels .

Rechercher des sujets similaires à "sumproduct conditions optionnelles"