XL 2013 Petite valeur entre deux dates sans formule matricielle

jbf64

XLDnaute Nouveau
Bonjour,

Je ne parviens pas à trouver la plus petite valeur entre deux dates ainsi que la moyenne.
Je sais le faire avec une formule matricielle mais dans la cas présent cette formule est dupliquée dans 576 cellules. Avec ma formule matricielle ça ralentit énormément tout mon fichier qui est déjà très lourd. Je cherche donc une solution avec une formule "classique" (pas de VBA non plus). Je tourne en rond avec des sommeprod(petite.valeur() sans y arriver.

Que pourriez-vous me proposer pour m'en sortir, svp?
(Voir fichier d'exemple)

Merci d'avance.
 

Pièces jointes

  • petite valeur.xlsx
    9.3 KB · Affichages: 13

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Jbf,
Pour la moitié du problème, la moyenne, testez ceci ça à l'air de marcher. En K5 :
VB:
=SOMME.SI.ENS($B:$B;$A:$A;">"&FIN.MOIS(K4;-1);$A:$A;"<" & FIN.MOIS(K4;0))/NB.SI.ENS($A:$A;">"&FIN.MOIS(K4;-1);$A:$A;"<" & FIN.MOIS(K4;0))
Pour la plus petite valeur, je sèche. Sorry.
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour @jbf64, @sylvanu

Dans le fichier joint une possible solution par TCD et une autre avec la fonction Agregat calculant Petite.Valeur

Les deux donnent le même résultat. A voir les temps de calcul sur de nombreuses données.

Cordialement
 

Pièces jointes

  • petite valeur.xlsx
    15 KB · Affichages: 10
Dernière édition:

jbf64

XLDnaute Nouveau
Bonjour Jbf,
Pour la moitié du problème, la moyenne, testez ceci ça à l'air de marcher. En K5 :
VB:
=SOMME.SI.ENS($B:$B;$A:$A;">"&FIN.MOIS(K4;-1);$A:$A;"<" & FIN.MOIS(K4;0))/NB.SI.ENS($A:$A;">"&FIN.MOIS(K4;-1);$A:$A;"<" & FIN.MOIS(K4;0))
Pour la plus petite valeur, je sèche. Sorry.

Bonjour Sylvanu,

Votre solution fonctionne parfaitement. Merci beaucoup!
Pour d'autres qui auraient le même problème que moi je mets ci dessous en rouge les quelques petites modifs que j'ai faites pour que ça colle pile à mon besoin.

=SOMME.SI.ENS($B:$B;$A:$A;">="&FIN.MOIS(K4;-1)+1;$A:$A;"<=" & FIN.MOIS(K4;0))/NB.SI.ENS($A:$A;">="&FIN.MOIS(K4;-1)+1;$A:$A;"<=" & FIN.MOIS(K4;0))
 

jbf64

XLDnaute Nouveau
Bonjour @jbf64, @sylvanu

Dans le fichier joint une possible solution par TCD et une autre avec la fonction Agregat calculant Petite.Valeur

Les deux donnent le même résultat. A voir les temps de calcul sur de nombreuses données.

Cordialement

Bonjour Roblochon,

Superbe solution. Merci beaucoup! J'ai découvert cette formule Agregat() et ses nombreuses options grâce à vous.
Malheureusement son "poids" est aussi lourd que ma formule matricielle.
J'ai tout de même tenté de dupliquer cette formule dans mes 576 cellules en la modifiant de sorte à obtenir également la valeur maxi entre deux dates, la moyenne et donc la valeur mini.

Du coup je vais continuer à utiliser mon sommeprod(max() pour la valeur max, la solution ci-dessus de Sylvanu pour la moyenne et la votre pour le mini.

Si quelqu'un connaît une solution plus light pour trouver la plus petite valeur entre deux dates que celle proposée ici par Roblochon, je suis preneur.

Merci encore.

PS : je n'ai pas encore regardé la solution TCD. Je n'ai jamais pratiqué les TCD. On peut faire un tableau avec de 36 colonnes et 16 lignes pour afficher à la fois les mini, maxi et la moyenne sans formules lourdes?
 

Hasco

XLDnaute Barbatruc
Repose en paix
Re,
je n'ai pas encore regardé la solution TCD. Je n'ai jamais pratiqué les TCD. On peut faire un tableau avec de 36 colonnes et 16 lignes pour afficher à la fois les mini, maxi et la moyenne sans formules lourdes?

Essayez et revenez nous voir si vous avez des problèmes. Les TCD sont très performants en termes de calcul et de rapidité.

Bonne soirée
 

jbf64

XLDnaute Nouveau
Bonjour Roblochon,

Y a-t-il une solution pour ne pas considérer les valeurs à 0 dans votre formule Agregat() de sorte à ce que la plus petite valeur indiquée soit 2 lorsque dans ma colonne j'ai 0 et 2?

Merci d'avance.
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 943
Membres
101 849
dernier inscrit
florentMIG