[Excel] Médiane à deux dimensions
Fermé
parly
-
6 déc. 2011 à 10:28
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 - 7 déc. 2011 à 16:20
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 - 7 déc. 2011 à 16:20
A voir également:
- Médiane pondérée excel
- Moyenne pondérée excel - Guide
- Liste déroulante excel - Guide
- Si et excel - Guide
- Aller à la ligne excel - Guide
- Word et excel gratuit - Guide
4 réponses
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 247
7 déc. 2011 à 10:17
7 déc. 2011 à 10:17
Bonjour,
une proposition avec une fonction personnalisée en vba :
J'ai testé, ça parait correct mais contrôle bien sur plusieurs exemples car j'ai les yeux qui se croisent un peu...
En particulier tester les cas pairs et impairs, avec la médiane au milieu d'un paquet ou à cheval sur 2 paquets.
Les données peuvent être non triées, si elles le sont tu peux supprimer le tri pour gagner qcq microsecondes.
https://www.cjoint.com/?ALhknQd3I9T
eric
une proposition avec une fonction personnalisée en vba :
Function medianeMat(plage As Range) As Double Dim tablo, nbIndividu, nb, cpt, cpt2 As Boolean Dim I%, J%, K%, tmp tablo = plage ' trier tablo, à désactiver si tablo déjà trié For I = LBound(tablo) To UBound(tablo) J = I For K = J + 1 To UBound(tablo) If tablo(K, 1) <= tablo(J, 1) Then J = K Next K If I <> J Then tmp = tablo(J, 1): tablo(J, 1) = tablo(I, 1): tablo(I, 1) = tmp tmp = tablo(J, 2): tablo(J, 2) = tablo(I, 2): tablo(I, 2) = tmp End If Next I ' médiane For I% = 1 To UBound(tablo) nbIndividu = nbIndividu + tablo(I%, 2) Next I% While nb < nbIndividu / 2 cpt = cpt + 1 nb = nb + tablo(cpt, 2) Wend cpt2 = nb = nbIndividu / 2 If nbIndividu Mod 2 Then ' impair medianeMat = tablo(cpt, 1) Else 'pair medianeMat = IIf(cpt2, (tablo(cpt, 1) + tablo(cpt + 1, 1)) / 2, tablo(cpt, 1)) End If End Function
J'ai testé, ça parait correct mais contrôle bien sur plusieurs exemples car j'ai les yeux qui se croisent un peu...
En particulier tester les cas pairs et impairs, avec la médiane au milieu d'un paquet ou à cheval sur 2 paquets.
Les données peuvent être non triées, si elles le sont tu peux supprimer le tri pour gagner qcq microsecondes.
https://www.cjoint.com/?ALhknQd3I9T
eric