Médiane mais pas tout à fait....

Djinna2202 Messages postés 14 Date d'inscription jeudi 19 juin 2008 Statut Membre Dernière intervention 1 juillet 2008 - 1 juil. 2008 à 16:06
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 - 2 juil. 2008 à 08:34
Bonjour,

Est-ce que quelqu'un connait un moyen pour faire apparître les données centrales d'une liste?

Je m'explique: j'ai une liste de prix pour laquelle je cherche le mini, le maxi et le milieu, c'est à dire le prix exact qui est le plus proche de la valeur du milieu.
(j'ai des lignes contenant une trentaine de prix chacune ou plus)

Par exemple si j'utilise la fonction Médiane (en jaune) avec les données suivantes...
       
       A             B             C             D             E              F
<colgroup><col span=\"7\" width=\"80\" /></colgroup>----
100, 150, 200, 250, 300, 500,   225

... ça me donne "225" alors que je voudrais que ça me mette le prix qui est en D qui est de "250"(qui représente un prix existant et non pas une médiane ou une moyenne de prix)

Nat

12 réponses

bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
1 juil. 2008 à 17:14
Salut,

=RECHERCHEH(MEDIANE(A1:F1);A1:F1;1)

A+
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
1 juil. 2008 à 17:31
 (100+150+200+250+300+500)/6= 250 , pas 225

avec de mauvais résultats tu vas avoir des difficultés à faire le bon algo
<hr size ="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
1 juil. 2008 à 17:37
Salut PCPT,

non la fonction mediane ne calcul pas une moyenne mais un milieu, donc 225 est correct
0
Djinna2202 Messages postés 14 Date d'inscription jeudi 19 juin 2008 Statut Membre Dernière intervention 1 juillet 2008
1 juil. 2008 à 17:54
Mais non lol, c la moyenne que tu as calculé là...

Si tu mets les données que j'ai écrite sur excel et que tu rentres la foncion Médiane, tu verras que le résultat et de 225.

Et concernant le moyenne, imaginons (et c même mon cas!) que les données ressemblent à ça:

          A               B            C             D             E             F
<colgroup><col style=\"WIDTH: 60pt\" span=\"6\" width=\"80\" /></colgroup>----
1852, 1966, 1512, 4829, 3654, 4875
La moyenne sera de (A+B+C+D+E+F)/6 3114.66>>> Alors que moi je veux : 3654 (qui est la valeur la plus proche du milieu entre le mini qui est de 1512 et le maxi qui est de 4875.)

=>>> Et en Médiane, sur ce même cas, il me met 2810.

Bref, dans les deux cas, ce n'est pas le résultat que je cherche à obtenir...

Nat
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
1 juil. 2008 à 17:59
ok, merci pour ta rectification

le et non pas une médiane ou une moyenne de prix m'a trompé ^^

donc concrêtement çà nous donne quoi?
(moyenne - (max/2 -min/2)) /2 ?

<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
0
Djinna2202 Messages postés 14 Date d'inscription jeudi 19 juin 2008 Statut Membre Dernière intervention 1 juillet 2008
1 juil. 2008 à 18:05
J'ai essayé ta formule "=RECHERCHEH(MEDIANE(A1:F1);A1:F1;1)" sur le même modèle et ça me donne 200 comme résultat ===>>> le + logique serait 250.

J'ai donc essayé avec les chiffre suivants...

  A       B      C       D
100    69   325   400

... et le résultat et 69 ===>>> alors que c'est mon mini

De plus, mes prix sont séparés et non alignés à la suite les uns des autres. Je dois faire (A1;B1;C1;D1) au lieu de (A1:D1) et en faisant ça avec ta formule, ça me donne :

=RECHERCHEH(MEDIANE(A1;B1;C1;D1);(A1;B1;C1;D1);1) et quand je valide, ça marque #N/A

Nat
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
1 juil. 2008 à 18:10
quelqu'un aurait-il l'amabilité de me dire ce qu'est le calcul de médiane? j'suis pas un matheux ^^

je te donne ensuite un exemple de possibilité ;)
0
Djinna2202 Messages postés 14 Date d'inscription jeudi 19 juin 2008 Statut Membre Dernière intervention 1 juillet 2008
1 juil. 2008 à 18:11
Ca me donne 25 comme résultat

Nat
0
Djinna2202 Messages postés 14 Date d'inscription jeudi 19 juin 2008 Statut Membre Dernière intervention 1 juillet 2008
1 juil. 2008 à 18:21
Définition de Médiane = milieu des deux valeurs centrales de la liste

ex: 100  150  200   250  300  500

les deux valeurs centrales sont : 200 et 250
donc la médiane est le milieu entre ces deux valeurs, soit 225

alors que la moyenne c'est 250
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
1 juil. 2008 à 18:38
eh bah voila

exemple en VB6, il doit être possible de passer tes cellules en argument mais je ne fais pas de VBA

Private Type tValues
    Letter As String
    Value As Long
End Type
Dim atArray(5) As tValues

Sub Test()
    Dim i As Long      'boucle
    Dim lMin As Long   'index
    Dim lMax As Long   'index
    Dim lMoy As Long   'valeur
    Dim lNear As Long  'index
    Dim lRet1 As Long  'valeur temp
    Dim lRet2 As Long  'valeur temp

''   tableau de
test
'    atArray(0).Letter = "A":
atArray(0).Value = 100'    atArray(1).Letter "B": atArray(1).Value 150
'    atArray(2).Letter
"C": atArray(2).Value 200'    atArray(3).Letter "D": atArray(3).Value
250'    atArray(4).Letter "E": atArray(4).Value
300
'    atArray(5).Letter = "F":
atArray(5).Value = 500
    
    atArray(0).Letter = "A": atArray(0).Value = 1852
    atArray(1).Letter = "B": atArray(1).Value = 1966
    atArray(2).Letter = "C": atArray(2).Value = 1512
    atArray(3).Letter = "D": atArray(3).Value = 4829
    atArray(4).Letter = "E": atArray(4).Value = 3654
    atArray(5).Letter = "F": atArray(5).Value = 4875

'   valeur MIN
    lMin = 0
    For i = 1 To UBound(atArray)
        If atArray(i).Value < atArray(lMin).Value Then lMin = i
    Next i
    MsgBox "le plus petit : " & atArray(lMin).Letter & "  -> " & CStr(atArray(lMin).Value)

'  
valeur MAX
    lMax = 0
    For i = 1 To UBound(atArray)
        If atArray(i).Value > atArray(lMax).Value Then lMax = i
    Next i
    MsgBox "le plus grand : " & atArray(lMax).Letter & "  -> " & CStr(atArray(lMax).Value)

'  
SOMME
    lMoy = 0
    For i = 0 To UBound(atArray)
        lMoy = lMoy + atArray(i).Value
    Next i
    MsgBox "somme : " & CStr(lMoy)

'  
MOYENNE
    lMoy = lMoy / (UBound(atArray) + 1)
    MsgBox "moyenne : " & CStr(lMoy)

'   MEDIANE = nombre
du milieu pour impaire, moyenne des 2 du milieu si paire
    lRet1 = UBound(atArray) + 1
    If (lRet1 And 1) = 0 Then
'      
pair
        lRet1 = (lRet1 / 2) - 1
        lRet2 = atArray(lRet1).Value
        lRet2 = lRet2 + atArray(lRet1 + 1).Value
        lRet2 = lRet2 / 2
    Else
'      
impair
        lRet2 = atArray(lRet1 / 2).Value
    End If
    MsgBox "médiane : " & CStr(lRet2)
    

'   LE PLUS PROCHE
    lNear = lMax
    lRet2 = Abs(atArray(lMax).Value)
    For i = 0 To UBound(atArray)
        lRet1 = Abs(Abs(lMoy) - Abs(atArray(i).Value))
        If lRet1 < lRet2 Then
            lRet2 = lRet1
            lNear = i
        End If
    Next i
    lRet1 = Abs(Abs(lMoy) - Abs(atArray(lNear).Value))
    MsgBox "le plus proche : " & atArray(lNear).Letter & "  -> " & CStr(atArray(lNear).Value) & "   avec
" & CStr(lRet1) & " de différence par
rapport à la moyenne"
End Sub

++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
2 juil. 2008 à 08:27
Bonjour,

à ma connaissance :

1) on trie par ordre croissant = ==>> tableau ordonné de N éléments
2) on extrait l'indice I résultat  entier de la division par 2 de N ===>>  I =N\2
3)
 Si N impair ===>> médiane = tableau(I+1)
 Si N pair ===>> médiane = (tableau(I-1) + tableau(I+1))/2
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
2 juil. 2008 à 08:34
Correction (excuses) :
 Si N pair ===>> médiane = (tableau(I) + tableau(I+1))/2
0
Rejoignez-nous