Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

automatisation extraction de mediane?

3 réponses
Avatar
ylc
Bonsoir à tous!

Je cherche un moyen "élégant" d'automatiser le calcul d'une mediane sur un
"extrait de liste excel".
Je m'explique :
J'ai une liste excel qui contient 4 champs: nom lieu couleur et
poids....et quelques centaines de lignes...
Je souhaiterais calculer "automatiquement" la médiane des poids d'un
échantillon extrait en fonction d'un triplé "nom/lieu/couleur"

Je le fais actuellement "a la main" en utilisant le "filtre élaboré"
Une idée pour construire une formule ou une fonction qui renvoie le résultat
en fonction de 3 arguments?
Je cale!

Remerciements Anticipés,
Bonne soirée à tous
Yves

3 réponses

Avatar
Nicolas B.
Bonsoir,

Renvoie la médiane pour le triplet (Nom, Lieu, Couleur) donné :
=MEDIANE(SI((Plage_Noms=Nom)*(Plage_Lieu=Lieu)*(Plage_Couleur=Couleur);Plage_Poids;""))

(En formule matricielle : valider par CTRL+MAJ+ENTRÉE.)


Nicolas

Bonsoir à tous!

Je cherche un moyen "élégant" d'automatiser le calcul d'une mediane sur un
"extrait de liste excel".
Je m'explique :
J'ai une liste excel qui contient 4 champs: nom lieu couleur et
poids....et quelques centaines de lignes...
Je souhaiterais calculer "automatiquement" la médiane des poids d'un
échantillon extrait en fonction d'un triplé "nom/lieu/couleur"

Je le fais actuellement "a la main" en utilisant le "filtre élaboré"
Une idée pour construire une formule ou une fonction qui renvoie le résultat
en fonction de 3 arguments?
Je cale!

Remerciements Anticipés,
Bonne soirée à tous
Yves




Avatar
Tatanka
Bonsoir,

Si tu veux obtenir des échantillons au hasard et sans répétitions,
cette macro pourrait peut-être te convenir.
Sélectionne la colonne contenant les poids (sans l'en-tête),
et appelle la macro. Elle te donnera n échantillons de taille t
pour des noms-lieux-couleurs tous différents.
Tu n'as plus qu'à entrer la formule =MEDIANE(échantillon)
en bas du premier échantillon et la tirer vers la droite.

Sub SansRemise()
Dim Arr, i As Integer, J As Integer, t As Integer, Temp
Dim n As Integer, taille As Integer
On Error GoTo 100
If Selection.Columns.Count <> 1 Then Exit Sub
Arr = Selection
t = UBound(Arr)
If t <= 1 Then Exit Sub
taille = Application.InputBox("Taille de l'échantillon:", , , , , , , 1)
If taille = False Then Exit Sub
If taille > t Or taille < 1 Then
MsgBox "La taille de l'échantillon doit être plus petite" _
& Chr(10) & "ou égale à " & t & " et plus grande que 0." _
& Chr(10) & "Recommencez.", 64, "Attention !"
Exit Sub
End If
n = Application.InputBox("Combien d'échantillons?", , , , , , , 1)
If n = False Then Exit Sub
If n < 1 Then Exit Sub
200:
Set ici = Application.InputBox("Sélectionnez une seule cellule." _
& " Vos échantillons apparaîtront sur une seule colonne à partir" _
& Chr(10) & "de la cellule sélectionnée.", , , , , , , 8)
If ici.Cells.Count <> 1 Then
rep = MsgBox("Une seule cellule, on a dit ", vbRetryCancel, "Attention !")
If rep = 2 Then
Exit Sub
Else
GoTo 200
End If
End If
Application.ScreenUpdating = False
For g = 1 To n
Randomize Timer
For i = 1 To t
J = Int(Rnd * (t - i + 1)) + i
Temp = Arr(i, 1)
Arr(i, 1) = Arr(J, 1)
Arr(J, 1) = Temp
k = k + 1
If k > taille Then Exit For
ici.Offset(k - 1, g - 1).Value = Arr(i, 1)
Next i
k = 0
Next g
Exit Sub
100:
End Sub

Serge


"ylc" a écrit dans le message de news: 4810ef0e$0$846$
Bonsoir à tous!

Je cherche un moyen "élégant" d'automatiser le calcul d'une mediane sur un
"extrait de liste excel".
Je m'explique :
J'ai une liste excel qui contient 4 champs: nom lieu couleur et
poids....et quelques centaines de lignes...
Je souhaiterais calculer "automatiquement" la médiane des poids d'un
échantillon extrait en fonction d'un triplé "nom/lieu/couleur"

Je le fais actuellement "a la main" en utilisant le "filtre élaboré"
Une idée pour construire une formule ou une fonction qui renvoie le résultat
en fonction de 3 arguments?
Je cale!

Remerciements Anticipés,
Bonne soirée à tous
Yves




Avatar
ylc
Merci beaucoup!

J'avais tenté un truc avec formule matricielle et somme prod mais sans
succès;
là cela ne peut que marcher!
merci encore