Minimum/Moyenne/percentiles/maximum sous conditions

orphelion

XLDnaute Occasionnel
Bonjour a tous, Bonjour le forum,

je cherche a traiter les donnees de plusieurs mois d'enregistrement de capteurs utilises dans le traitement de l'eau.

Les donnees sont regulierement accumulees, un mois apres l'autre dans une feuille commune.
Je souhaite pouvoir realiser par formule et modifiant la date de debut et la date de fin, les calculs de minimum/maximum/moyenne et percentile sur cette periode.

le fichier joint devrait j'espere suffir a eclairir mes explications.
Le calcul de la moyenne est realise grace a la fonction averageifs, malheureusement Minimum, maximum et percentile n'ont pas cet equivalent et c'est la que je viens faire appelle a votre aide :D

en esperant vous lire tres prochainement, je vous souhaite un tres bon week end!

Merci d'avance!
Orphelion
 

Pièces jointes

  • Calcul si.xls
    60.5 KB · Affichages: 99
  • Calcul si.xls
    60.5 KB · Affichages: 99
  • Calcul si.xls
    60.5 KB · Affichages: 117

Vorens

XLDnaute Occasionnel
Re : Minimum/Moyenne/percentiles/maximum sous conditions

Hello,


Par formule je sais pas si c'est possible (suis une bille en formule) mais voila une solution VBA.

Attention, les colonne ne doivent pas être vide. si t'as aucun relever, le mieu est de mettre des 0 partout. Il y a surement moyen de palier a ce prob mais suis un peut limite question temps.

Par contre, c'est quoi "percentile" (je sais je suis un ignorant)

Les résultat sont en colonne AE a AW

Tu entre la plage de date dans tes cellule de ton fichier, si la date existe pas, il y aura un message d'erreur.

Meilleures salutations

Le code en cas de prob avec le fichier


Code:
Sub rechercheMinMax()




Dim valMin As Date
Dim valMax As Date


valMin = Sheets("Sheet1").Range("AF4").Value
valMax = Sheets("Sheet1").Range("AF5").Value




With ActiveWorkbook.Worksheets("Sheet1").Range("A:A")
Set c = .Find(valMin)
Set F = .Find(valMax)

If c Is Nothing Or F Is Nothing Then

MsgBox "Cette date n'existe pas"

Exit Sub

Else


A = c.Row
r = F.Row

o = Split(F.Address, "$")(1)
b = Split(c.Address, "$")(1)

'b = c.Address


End If


End With

Sheets("Sheet1").Range("C" & A & ":" & "C" & r).Select 'la plage (sa sers a rien)



Sheets("Sheet1").Range("AF9").Value = WorksheetFunction.Average(Range("C" & A & ":" & "C" & r))

Sheets("Sheet1").Range("AG9").Value = WorksheetFunction.Average(Range("D" & A & ":" & "D" & r))

Sheets("Sheet1").Range("AH9").Value = WorksheetFunction.Average(Range("E" & A & ":" & "E" & r))

Sheets("Sheet1").Range("AI9").Value = WorksheetFunction.Average(Range("F" & A & ":" & "F" & r))

Sheets("Sheet1").Range("AJ9").Value = WorksheetFunction.Average(Range("G" & A & ":" & "G" & r))

Sheets("Sheet1").Range("AK9").Value = WorksheetFunction.Average(Range("H" & A & ":" & "H" & r))

Sheets("Sheet1").Range("AK9").Value = WorksheetFunction.Average(Range("I" & A & ":" & "I" & r))

Sheets("Sheet1").Range("AM9").Value = WorksheetFunction.Average(Range("J" & A & ":" & "J" & r))

Sheets("Sheet1").Range("AN9").Value = WorksheetFunction.Average(Range("K" & A & ":" & "K" & r))

Sheets("Sheet1").Range("AO9").Value = WorksheetFunction.Average(Range("L" & A & ":" & "L" & r))

Sheets("Sheet1").Range("AP9").Value = WorksheetFunction.Average(Range("M" & A & ":" & "M" & r))


Sheets("Sheet1").Range("AQ9").Value = WorksheetFunction.Average(Range("N" & A & ":" & "N" & r))

Sheets("Sheet1").Range("AR9").Value = WorksheetFunction.Average(Range("O" & A & ":" & "O" & r))

Sheets("Sheet1").Range("AS9").Value = WorksheetFunction.Average(Range("P" & A & ":" & "P" & r))

Sheets("Sheet1").Range("AT9").Value = WorksheetFunction.Average(Range("Q" & A & ":" & "Q" & r))

Sheets("Sheet1").Range("AU9").Value = WorksheetFunction.Average(Range("R" & A & ":" & "R" & r))

Sheets("Sheet1").Range("AV9").Value = WorksheetFunction.Average(Range("S" & A & ":" & "S" & r))

Sheets("Sheet1").Range("AW9").Value = WorksheetFunction.Average(Range("T" & A & ":" & "T" & r))


End Sub

A copier dans ThisWorkbook

Alt F11 pour acceder au code

Meilleures salutations
 

Pièces jointes

  • Calcul.xlsm
    33.1 KB · Affichages: 67
  • Calcul.xlsm
    33.1 KB · Affichages: 72
  • Calcul.xlsm
    33.1 KB · Affichages: 77

Bebere

XLDnaute Barbatruc
Re : Minimum/Moyenne/percentiles/maximum sous conditions

bonjour Orphelion,Vorens
mis des formules dans le dernier bloc et une liste de validation en Y26
pour choisir le mois
 

Pièces jointes

  • Calcul si.xls
    62.5 KB · Affichages: 99
  • Calcul si.xls
    62.5 KB · Affichages: 101
  • Calcul si.xls
    62.5 KB · Affichages: 113

orphelion

XLDnaute Occasionnel
Re : Minimum/Moyenne/percentiles/maximum sous conditions

Bonjour Vorens, Bonjour Bebere,
Je vous remercie pour votre aide, les deux solutions fonctionnent super bien. je vais prefere la macro pour le moment car je peux choisir avec un precision au jour pres.

Pour repondre a ta question Vorens, Percentile en anglais correspond au centile en francais. je n'ai pas le nom de la fonction en francais.
cela correspond a diviser les donnees en 100 echantillons de part egal et a ressortir la valeur representant le centile defini ie

la formule correspond a centile(5%) = N =5/100*nbre d'element dans l'echantillon+1/2.
alors le nombre de Nieme dans la liste sera le centile 5%.

en esperant que l'explication ait ete claire =)

merci bcp pour votre aide!
a bientot!
 

Discussions similaires

K
Réponses
1
Affichages
6 K
C

Statistiques des forums

Discussions
312 492
Messages
2 088 938
Membres
103 988
dernier inscrit
Feonix