[Excel] Médiane à deux dimensions
Fermé
parly
-
6 déc. 2011 à 10:28
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 - 7 déc. 2011 à 16:20
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 - 7 déc. 2011 à 16:20
A voir également:
- Médiane pondérée excel
- Liste déroulante excel - Guide
- Moyenne pondérée excel - Guide
- Formule excel - Guide
- Si et excel - Guide
- Aller à la ligne excel - Guide
4 réponses
eriiic
Messages postés
24569
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
28 décembre 2023
7 211
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