SOMMEPROD et Matrices Dynamiques
bonjour à toutes et à tous
j'ai souvent trouvé les reponses à mes problemes dans le forum avec les fonctions de recherche, mais là je seche... donc je me resoud à vous soumettre mon probleme
pour faire simple, j'utilise une application qui interroge un cube SSAS et renvoie des plages de données dans Excel.
Ces données renvoyées sont variables selon ce que l'utilisateur a demandé : ainsi dans l'exemple joint, l'utilisateur a selectionné un pays, interrogé le cube, et en retour il y a plus ou moins de sites selon le pays choisi (sites en colonne B)
La longueur des 3 pavés (lignes 2:106 / 108:212 / 214:216) est donc variable en fonction du nombre de sites (3 dans l'exemple) et dynamique, c'est à dire que les formules qui s'appliquent sur un pavé entier changent automatiquement en fonction de la longueur du pavé
-> je dois donc gérer des formules par pavé entier
le systeme que j'utilise repete automatiquement les formules trouvées sur la 1ere ligne d'un pavé, il me faut donc mettre au point une formule sur la ligne 214 pour qu'elle se repete sur les lignes 215 et 216.
la formule à fabriquer dynamiquement est dans les cellules G214 à G216, j'ai reussi à rendre dynamique la partie SOMME en utilisant SOMME.SI pour rechercher les lignes qui correspondent au site traité sur la ligne
par contre je seche completement pour le SOMMEPROD car il faut definir une plage de données dynamiquement pour que la moyenne pondérée s'applique uniquement sur les données du site comme fait sur les lignes G214 à G216, et non pas sur les données du pavé entier ce qui va se passer si je mets SOMMEPROD(G2:G106;G108:G212) dans la formule.
et pourtant pour que mon etat reste dynamique en fonction du nombre de sites, je ne dois faire apparaitre que les plages G2:G106 et G108:G212 dans la formule ...
voilà si vous avez des idées pour resoudre mon probleme, je suis preneur
merci d'avance
Bonjour et bienvenue
Cela fait 1/4 h que je lis et relis ta demande, je n'y comprends rien.
Peux-tu donner le résultat attendu pour FRA00490 ?
Amicalement
Nad
salut et merci de te pencher sur mon probleme
le resultat à trouver est celui qui est dans la ligne G214 / G215 / G216
dans ces cellules, le sommeprod porte sur une partie du bloc (celui qui correspond au site) or il faut absolumment qu'il n'y ait que des blocs entiers qui portent sur la plage 2:106 ou 108:212 dans les formules car ce bloc varie dynamiquement avec le logiciel que j'utilise.
apres qques jours de recherche, je viens de trouver une soluce qui a l'air de fonctionner (sur mon fichier exemple), je ne savais pas qu'on pouvait conditionner la matrice dans un sommeprod
=SI(SOMME.SI($B108:$B212;$B214;G108:G212) <> 0; SOMMEPROD(($B2:$B106=$B214)*G2:G106;($B108:$B212=$B214)*G108:G212) / -SOMME.SI($B108:$B212;$B214;G108:G212);"")ca permet de faire le SOMMEPROD sur les lignes entre G2et G106 qui remplissent la condition = B214, pareil pour les lignes entre G108 et G212 qui remplissent aussi la condition = B214
la division par la somme des lignes G108/G212 qui remplissent la condition = B214 permet simplement d'avoir une moyenne pondérée.
je vais coder cette formule dans mon logiciel et voir si ca marche encore en l'utilisant et en faisant varier dynamiquement la liste de sites.. mais je suis confiant
je viendrai conclure le post si ca marche
-- 14 Déc 2010, 16:34 --
bon ca a l'air de marcher...