IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Stat calculer : Quartile ? Médiane ? ...


Sujet :

Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Avril 2005
    Messages : 43
    Points : 15
    Points
    15
    Par défaut Stat calculer : Quartile ? Médiane ? ...
    Bonjour à tous,

    je cherche à obtenir des fonctions statistiques sous access et notamment à connaitre les quartiles d'un grand nombre d'enregistrements.

    si quelqu'un aurait une solution...

    merci par avance

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    soit à chercher le nénième xtile d'un champ dans une table de 10 000 enregistrements

    supposons 43ème centile
    c'est la valeur du 4300 éme enregistrement si je classe par ordre croissant mes valeurs
    taille*niémé*xtile=10000/100*43
    je fais une requête select top 4300 valeur from ma table order by valeur

    j'utilise cette requête
    select top 1 valeur from ma requête order by valeur desc

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Avril 2005
    Messages : 43
    Points : 15
    Points
    15
    Par défaut
    merci pour la réponse mais je doit effectuer cette opération sur un grand nombre de fois.
    Je m'explique : j'ai 10 secteurs contenant 10 entités pour près de 58000 valeurs et je dois réaliser ce calcul pour chaque entité de chaque secteurs... et bien entendu le nombre de valeurs diffèrent pour chaque entité.

  4. #4
    Membre habitué

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 193
    Points : 171
    Points
    171
    Par défaut
    Si tu as excel, tu peux regarder si ses fonctions sont disponibles...
    Puis tu pourras trouver le code vba (si ca fonctionne sur excel, il y a de forte chose pour qu'on puisse les utiliser sous access).

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Avril 2005
    Messages : 43
    Points : 15
    Points
    15
    Par défaut
    la fonction existe sous excel :QUARTILE (matrice;quart).
    C'est vrai que je préférerais l'utiliser sous access ca m'eviterais de personnaliser en focntion du nombre d'entités.

  6. #6
    Membre habitué

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 193
    Points : 171
    Points
    171
    Par défaut
    Tu l'as essayé sous access ou pas ?

    Tiens moi au courant stp pour voir si ca fonctionne

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Avril 2005
    Messages : 43
    Points : 15
    Points
    15
    Par défaut
    j'ai essayé dès le début mais je n'y suis pas arrivé... (désolé je ne suis pas un pro d'access...)

  8. #8
    Membre habitué

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 193
    Points : 171
    Points
    171
    Par défaut
    Dans une procédure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    dim résultat as integer
    résultat = QUARTILE(variable_matrice;variable_quart)
    msgbox résultat
    un document avec les fonctions excel 97 :
    http://ensg.ign.fr/FAD/FAD_PDF/cpri_pdf/excel97.pdf

  9. #9
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    tu peux essayer cette fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    Function enile(sect As String, enti As String, ile As Integer, rangile As Integer) As Double
    Dim base As DAO.Database
    Dim data As DAO.Recordset
    Dim sql As String
    Dim lequel As Variant
    If rangile > ile Then
    MsgBox ("rang invalide")
    enile = 0
    Exit Function
    End If
    Set base = CurrentDb()
    sql = "SELECT secteur, entité, Count(montant) AS nb FROM matable "
    sql = sql & "GROUP BY secteur, entité "
    sql = sql & "HAVING (secteur='" & sect & "' ) AND (entité='" & enti & "');"
    Set data = base.OpenRecordset(sql)
    If data.RecordCount <> 1 Then
    enile = 0
    MsgBox ("entité ou secteur ko")
    Exit Function
    End If
    lequel = Int(data![nb] / ile * rangile)
    sql = "SELECT TOP " & lequel & " secteur, entité, montant FROM matable "
    sql = sql & "WHERE (secteur = '" & sect & "' ) And (entité = '" & enti & "' ) "
    sql = sql & "ORDER BY secteur, entité, montant;"
    Debug.Print sql
    Set data = base.OpenRecordset(sql)
    data.MoveFirst
    data.MoveLast
    enile = data![montant]
    Set data = Nothing
    Set base = Nothing
    End Function
    bien évidemment il faut modifier matable par le nom de TA table
    secteur par le nom du champ secteur
    et entité par le nom du champ entité

    la fonction s'utilise adressant comme paramètre
    le secteur, l'entité
    ile sous la forme 4 pour quartile 10 pour décile
    rangile pour indiquer le rand du ile

    on pourrait perfectionner la fonction en faisant la moyenne des valeurs limites si le nombre d'enregistrements du ile est pair mais c'est
    pas si mal en utilisation courante

    les performances doivent être assez mauvaises (à lancer de préférence
    à partir d'une table des structures)

Discussions similaires

  1. Calculer une médiane
    Par Au pays des stats dans le forum SAS STAT
    Réponses: 9
    Dernier message: 18/05/2012, 13h22
  2. Arbre ORB et calcul de médiane
    Par Heimdall dans le forum Programmation parallèle, calcul scientifique et de haute performance (HPC)
    Réponses: 0
    Dernier message: 16/01/2012, 23h30
  3. [AC-2000] Erreur "ByRef" pour un calcul de Médiane
    Par Cantalou dans le forum VBA Access
    Réponses: 16
    Dernier message: 24/11/2009, 12h47
  4. [Stat] Calcul matrice
    Par _debutant dans le forum SAS Base
    Réponses: 14
    Dernier message: 18/12/2008, 18h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo