Moyenne pondéré des 10 dernières valeurs sous condition

Bonjour à tous,
Je suis nouveau sur ce forum donc excusez moi si je fais des erreurs dans la façon d’exprimer les choses.
Voilà ma formule :
=SOMMEPROD(DECALER(G3;NBVAL(Piles[Y])-U15+1;;U15;);DECALER(E3;NBVAL(Piles[tons])-U15+1;;U15;)/SOMME(DECALER(E3;NBVAL(Piles[tons])-U15+1;;U15;)))

Je cherche à réaliser une moyenne pondéré sur un nombre de valeurs noté en U15 uniquement avec destination T01 (colonne C) et un gradedest qui est 2EME TO (colonne D), de plus il y a des valeurs nulles qu’il ne faut pas prendre en compte.
J’ai fait des essais : je récupère bien les 10 dernière valeurs mais pas avec les conditions que je souhaite.
Je ne supprime pas les lignes car c’est une base automatique et les lignes reviendrons à chaque mise à jour
Je joint un fichier ou se trouve les essais que j’ai réalisé plutot que de noter toutes les formules, un grand merci à vous qui pouvez m’aider
Classeur1.xlsx (263,4 Ko)

Bonsoir,

Tu es sur quelle version d’Excel, as tu accès à Power Query ? En addon à partir de 2010 et natif dans excel à compter de 2013.
Cordialement.

re,

Un essai avec PQ
Cordialement.
Classeur1.xlsx (258,9 Ko)

Bonjour zebulon,
N’étant pas famillier de Power Query, je préfére une solution par formule ou même VBA avec lequel je travaille un peu.
Sur le pc de chez moi, j’ai essayé d’actualiser ta requête et cela ne fonctionne pas, je suis sur excel 2013.
Je vois çà de plus près Lundi, merci as toi en tous cas pour cette solution qui est déjà un bon début.

Bonjour,

Une version avec l’actualisation par macro. Bien accepter la modification et activer le contenu à l’ouverture du fichier.
Cordialement.
Classeur1.xlsm (265,7 Ko)

Bon zebulon,
Une erreur de ma part, au boulot je suis sur excel 2010.
Je joint également le fichier d’origine ou j’ai essayé des formules car je me suis aperçu qu’elle n’y était pas sur le fichier copié.
Les 2 cases recherchées sont en vert sur le fichier.
Merci pour cette aideanalyse piles.xlsx (395,1 Ko)

Un essais de formule, mais elle me remonte #Valeurs
=SOMMEPROD((Piles[Destination]=S2)*(Piles[GradeDest]=S3;DECALER(G3;NBVAL(Piles[Y])-U15+1;;U15;);DECALER(E3;NBVAL(Piles[tons])-U15+1;;U15;)))

Toujours personnes pour m’aider
Un autre essai :

=SOMMEPROD((Piles[maxTime]=MAX(SI(Piles[Destination]=Données!C5;Piles[maxTime])))*(Piles[Y]*Piles[tons]))

Je récupère la dernière valeur, comment puis je faire pour prendre en considération x valeur; contenu dans une cellule.
Peut être avec décaler, mais je ne suis pas un habitué de celle ci

Bonjour Zebulon,
Je reviens vers toi, j’ai un problème quand j’actualise en VBA et sur le premier fichier également.
Voir les 2 capture ci-dessous.
Capture
Capture1
Ton début de solution était bien, veux tu bien continuer à développer pour que je puisse y arriver.
Dans ta requête est il possible plutôt d’afficher les valeurs obtenues de ne mettre que le pondéré de celles ci somme (tons*Y) de chaque ligne/somme tons

Bonsoir,

Le fichier modifié. A propos des messages d’erreur, Power Query est bien installé sur ton poste ? As tu bien accepter la modification et activer le contenu à l’ouverture du fichier ?
Cordialement.
Classeur1.xlsm (275,4 Ko)

Bonjour Zebulon,
J’ai regardé pour l’installer mais je ne peux rien installer sur mon PC de travail et c’est une projet pour mon boulot.
Je ne peux donc me servir de ta solution, si tu n’as pas d’autre idée je vais rester sur une solution plus basique mais qui fonctionne.
J’ai créé un onglet par silo (25 au total), c’est ce que je voulais éviter mais pas le choix, et la ma formule fonctionne en la dirigeant vers chaque onglet souhaité.
Si tu n’as pas d’autre solutions à me proposer je te remercie

Bonsoir JPP1230,

Une proposition avec un TCD et un calcul matriciel.
Cordialement.
JPP1230.xlsx (417,3 Ko)

Merci Zebulon,
çà me convient, je vais étudier un peu pour me familiariser avec ces formules avant de le mettre en place.

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.