Scritto da Cinzia Pagani
|
Domenica 23 Settembre 2007 20:37 |
Calcolare la Media troncata in una tabella di Access
In Access non esiste un equivalente della funzione Excel Media.Troncata, ho scritto questa funzione VBA per sopperire alla mancanza.
La media troncata è una funzione statistica che calcola la media su un insieme di valori ordinati escludendo dal calcolo una certa percentuale X di valori agli estremi.
Function MediaTroncata(ByVal nomeTabella As String, ByVal nomeCampo As String, ByVal percento As Single) As Double Dim rs As DAO.Recordset Dim numRecordTotali As Long Dim numRecToSkip As Single Dim lNumRecToSkip As Long Dim Totalone As Double Dim i As Long If percento < 0 Or percento > 1 Then MsgBox ("Percento deve essere compreso tra 0 e 1!") MediaTroncata = 0 Exit Function End If Set rs = CurrentDb.OpenRecordset("Select * FROM " & nomeTabella & " ORDER BY " & nomeCampo) rs.MoveLast numRecordTotali = rs.RecordCount numRecToSkip = numRecordTotali * percento / 2 lNumRecToSkip = Fix(numRecToSkip) rs.MoveFirst Totalone = 0 For i = 1 To numRecordTotali If i > lNumRecToSkip And i <= numRecordTotali - lNumRecToSkip Then Totalone = Totalone + Nz(rs.Fields(nomeCampo)) End If rs.MoveNext Next i MediaTroncata = Totalone / (numRecordTotali - lNumRecToSkip * 2) MediaTroncata_Exit: rs.Close Set rs = Nothing Exit Function MediaTroncata_Err: MsgBox(“Err.Description”) Resume Media Troncata_Exit End Function
Esempio di utilizzo:
In finestra immediata
?MediaTroncata(“TabellaValori”, “CampoValore”, 0.2)
Calcolerà la media eliminando il 20% dei valori inseriti nella tabella.
Sistema operativo: WIN32
Applicazioni: Access 97, Access 2000, Access 2002/XP, Access 2003, Access 2007
|
Ultimo aggiornamento Giovedì 02 Luglio 2009 12:01 |