Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Calcul somme.si.ens avec critère de date pour chaque nouvelle valeur unique.

alejandro

XLDnaute Nouveau
Bonjour,

J'essaie de calculer une somme de quantités (colonne H du fichier) avec plusieurs critères, jusqu'ici tout va bien et j'utilise la fonction somme.si.ens.

Mais une contrainte s'ajoute à ce calcul simple : Dans mon fichier j'ai une colonne dont les valeurs m'importent peu (colonne E), cependant pour chaque nouvelle valeur de cette colonne, je ne dois sommer qu'une fois les quantités en colonne H. Le critère est de prendre la date la plus ancienne en colonne G.

Exemple : Si dans la colonne E, il y a trois occurrences de la valeur "Cde 1" avec pour dates (colonne G) 12/01, 19/01 et 28/01, je ne dois prendre que la quantité qui a les critères que j'ai demandé mais en plus qui ait la date 12/01, étant la date la plus ancienne parmi ces trois. Le problème est qu'il y a aussi des valeurs "Cde 2", "Cde 3" ...

J'ai pensé à intégrer la fonction petite.valeur dans ma fonction somme.si.ens pour prendre la date la plus ancienne, mais je n'arrive pas à transcrire en fonction la partie
"pour chaque valeur unique de la colonne E, prendre la quantité en colonne H avec la date la plus ancienne dans le colonne G"

J'ai mis un fichier pour essayer d'illustrer mon exemple.

Pourriez-vous m'aider s'il vous plaît ?

Merci d'avance et bonne journée à vous !
 

Pièces jointes

  • Exemple pour forum.xlsx
    12.3 KB · Affichages: 14
Dernière édition:
Solution
Re,

Une fois l'éditeur PowerQuery ouvert,
Trier sur les colonne E et G en ordre croissant
Regouper les lignes sur chacun des premiers champs comme sur l'image suivante


Valider. Cela donne dans la barre de formule de l'éditeur PowerQuery :
= Table.Group(#"Lignes triées", {"Colonne A", "Colonne B", "Colonne C", "Colonne D", "Colonne E"}, {{"Min de G", each List.Min([Colonne G]), type date}, {"Premier de H", each List.Sum([Colonne H]), type number}})

Remplacer List.Sum par List.First et validez qui va récupérer la première ligne de la colonne H correspondant au minimum de la colonne G

Cordialement

alejandro

XLDnaute Nouveau
Bonjour,

Une tentative par Powerquery, d'après ce que j'ai compris.

Cordialement

Bonjour Roblochon, et merci pour ta réponse .

Effectivement ça m'irait très bien ! Je n'aurais plus qu'à faire une fonction somme.si.ens sur ton tableau pour trouver la somme que je cherche.

J'aimerais bien pouvoir le refaire maintenant. Cependant je suis débutant sur PowerQuery ... J'ai mis la base de données sous forme de tableau, sélectionné le tableau puis cliqué sur "A partir d'un tableau ou d'une plage". Pourrais-tu me dire ce que tu as fait sur PowerQuery après s'il te plaît ?
 
Dernière édition:

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

Une fois l'éditeur PowerQuery ouvert,
Trier sur les colonne E et G en ordre croissant
Regouper les lignes sur chacun des premiers champs comme sur l'image suivante


Valider. Cela donne dans la barre de formule de l'éditeur PowerQuery :
= Table.Group(#"Lignes triées", {"Colonne A", "Colonne B", "Colonne C", "Colonne D", "Colonne E"}, {{"Min de G", each List.Min([Colonne G]), type date}, {"Premier de H", each List.Sum([Colonne H]), type number}})

Remplacer List.Sum par List.First et validez qui va récupérer la première ligne de la colonne H correspondant au minimum de la colonne G

Cordialement
 

alejandro

XLDnaute Nouveau

Re,

Merci beaucoup Roblochon pour ton aide, ça marche du tonnerre ! ça a l'air vraiment bien PowerQuery. Je passe le sujet en résolu, en espérant que ça pourra également aider d'autres internautes.

A une prochaine, bonne journée à toi !

Cordialement,
Alexandre.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…