Bonjour,
J'ai une base de données contenant des codes de professions (520) et des
taux de salaire horaire.
Je dois calculer la moyenne réduite pour chaque profession. J'ai fait une
requête qui élimine les enrigistrements incohérent et tri ceux restant par
code de profession et taux de salaire. Ex. :
Dernier emploi Tx horaire
12 10,00 $
12 11,18 $
12 12,48 $
12 13,63 $
12 14,80 $
12 15,00 $
12 15,96 $
12 16,83 $
12 17,28 $
12 20,71 $
12 20,74 $
12 21,79 $
12 23,62 $
12 26,43 $
12 32,27 $
12 40,00 $
Chaque profession a un nombre d'enregistrements différents.
Est-il possible de calculer la moyenne en ne tenant pas compte de 10% des
enregistrements inférieurs et supérieurs ?
J'ai pensé à quelque chose qui :
1) compte le nombre d'enregistrements pour chaque professions (count);
2) trouve le nombre d'enregistrements à ne pas ternir compte (count*0,1);
3) fait la moyenne des enregistrements restant.
Mais comment écrire cette requête ?
Merci
Bonjour,
J'ai une base de données contenant des codes de professions (520) et des
taux de salaire horaire.
Je dois calculer la moyenne réduite pour chaque profession. J'ai fait une
requête qui élimine les enrigistrements incohérent et tri ceux restant par
code de profession et taux de salaire. Ex. :
Dernier emploi Tx horaire
12 10,00 $
12 11,18 $
12 12,48 $
12 13,63 $
12 14,80 $
12 15,00 $
12 15,96 $
12 16,83 $
12 17,28 $
12 20,71 $
12 20,74 $
12 21,79 $
12 23,62 $
12 26,43 $
12 32,27 $
12 40,00 $
Chaque profession a un nombre d'enregistrements différents.
Est-il possible de calculer la moyenne en ne tenant pas compte de 10% des
enregistrements inférieurs et supérieurs ?
J'ai pensé à quelque chose qui :
1) compte le nombre d'enregistrements pour chaque professions (count);
2) trouve le nombre d'enregistrements à ne pas ternir compte (count*0,1);
3) fait la moyenne des enregistrements restant.
Mais comment écrire cette requête ?
Merci
Bonjour,
J'ai une base de données contenant des codes de professions (520) et des
taux de salaire horaire.
Je dois calculer la moyenne réduite pour chaque profession. J'ai fait une
requête qui élimine les enrigistrements incohérent et tri ceux restant par
code de profession et taux de salaire. Ex. :
Dernier emploi Tx horaire
12 10,00 $
12 11,18 $
12 12,48 $
12 13,63 $
12 14,80 $
12 15,00 $
12 15,96 $
12 16,83 $
12 17,28 $
12 20,71 $
12 20,74 $
12 21,79 $
12 23,62 $
12 26,43 $
12 32,27 $
12 40,00 $
Chaque profession a un nombre d'enregistrements différents.
Est-il possible de calculer la moyenne en ne tenant pas compte de 10% des
enregistrements inférieurs et supérieurs ?
J'ai pensé à quelque chose qui :
1) compte le nombre d'enregistrements pour chaque professions (count);
2) trouve le nombre d'enregistrements à ne pas ternir compte (count*0,1);
3) fait la moyenne des enregistrements restant.
Mais comment écrire cette requête ?
Merci
Bonjour,
J'ai une base de données contenant des codes de professions (520) et des
taux de salaire horaire.
Je dois calculer la moyenne réduite pour chaque profession. J'ai fait une
requête qui élimine les enrigistrements incohérent et tri ceux restant par
code de profession et taux de salaire. Ex. :
Dernier emploi Tx horaire
12 10,00 $
12 11,18 $
12 12,48 $
12 13,63 $
12 14,80 $
12 15,00 $
12 15,96 $
12 16,83 $
12 17,28 $
12 20,71 $
12 20,74 $
12 21,79 $
12 23,62 $
12 26,43 $
12 32,27 $
12 40,00 $
Chaque profession a un nombre d'enregistrements différents.
Est-il possible de calculer la moyenne en ne tenant pas compte de 10% des
enregistrements inférieurs et supérieurs ?
J'ai pensé à quelque chose qui :
1) compte le nombre d'enregistrements pour chaque professions (count);
2) trouve le nombre d'enregistrements à ne pas ternir compte (count*0,1);
3) fait la moyenne des enregistrements restant.
Mais comment écrire cette requête ?
Merci
Bonjour,
J'ai une base de données contenant des codes de professions (520) et des
taux de salaire horaire.
Je dois calculer la moyenne réduite pour chaque profession. J'ai fait une
requête qui élimine les enrigistrements incohérent et tri ceux restant par
code de profession et taux de salaire. Ex. :
Dernier emploi Tx horaire
12 10,00 $
12 11,18 $
12 12,48 $
12 13,63 $
12 14,80 $
12 15,00 $
12 15,96 $
12 16,83 $
12 17,28 $
12 20,71 $
12 20,74 $
12 21,79 $
12 23,62 $
12 26,43 $
12 32,27 $
12 40,00 $
Chaque profession a un nombre d'enregistrements différents.
Est-il possible de calculer la moyenne en ne tenant pas compte de 10% des
enregistrements inférieurs et supérieurs ?
J'ai pensé à quelque chose qui :
1) compte le nombre d'enregistrements pour chaque professions (count);
2) trouve le nombre d'enregistrements à ne pas ternir compte (count*0,1);
3) fait la moyenne des enregistrements restant.
Mais comment écrire cette requête ?
Merci
Bonjour,
J'ai une base de données contenant des codes de professions (520) et des
taux de salaire horaire.
Je dois calculer la moyenne réduite pour chaque profession. J'ai fait une
requête qui élimine les enrigistrements incohérent et tri ceux restant par
code de profession et taux de salaire. Ex. :
Dernier emploi Tx horaire
12 10,00 $
12 11,18 $
12 12,48 $
12 13,63 $
12 14,80 $
12 15,00 $
12 15,96 $
12 16,83 $
12 17,28 $
12 20,71 $
12 20,74 $
12 21,79 $
12 23,62 $
12 26,43 $
12 32,27 $
12 40,00 $
Chaque profession a un nombre d'enregistrements différents.
Est-il possible de calculer la moyenne en ne tenant pas compte de 10% des
enregistrements inférieurs et supérieurs ?
J'ai pensé à quelque chose qui :
1) compte le nombre d'enregistrements pour chaque professions (count);
2) trouve le nombre d'enregistrements à ne pas ternir compte (count*0,1);
3) fait la moyenne des enregistrements restant.
Mais comment écrire cette requête ?
Merci
Merci
J'ai essayé mais cela ne fonctionne pas.
Une des premières étapes que j'ai fait a été d'éliminer les codes de
professions qui avaient moins de 12 enregistrements par cette formule
comme
critère :
In (SELECT [Dernier emploi] FROM [Guide Tx Salaire] As Tmp GROUP BY
[Dernier
emploi] HAVING Count(*)>12)
En fait, dans l'exemple pour la profession 12, comme il y a 16
enregistrements : il faut ne pas tenir compe de deux enregistrements (le
premier et le dernier), donc le 10$ et et 40$. La moyenne des 16
enregistrements est de 19.55$ alors qu'avec la moyenne réduite on obtient
18.77$.
La fonction existe dans Excel : MOYENNE.REDUITE(plage;% de valeurs à ne
pas
tenir compte). En anglais, il s'agit de TRIMMEAN.Bonjour,
J'ai une base de données contenant des codes de professions (520) et des
taux de salaire horaire.
Je dois calculer la moyenne réduite pour chaque profession. J'ai fait
une
requête qui élimine les enrigistrements incohérent et tri ceux restant
par
code de profession et taux de salaire. Ex. :
Dernier emploi Tx horaire
12 10,00 $
12 11,18 $
12 12,48 $
12 13,63 $
12 14,80 $
12 15,00 $
12 15,96 $
12 16,83 $
12 17,28 $
12 20,71 $
12 20,74 $
12 21,79 $
12 23,62 $
12 26,43 $
12 32,27 $
12 40,00 $
Chaque profession a un nombre d'enregistrements différents.
Est-il possible de calculer la moyenne en ne tenant pas compte de 10%
des
enregistrements inférieurs et supérieurs ?
J'ai pensé à quelque chose qui :
1) compte le nombre d'enregistrements pour chaque professions
(count);
2) trouve le nombre d'enregistrements à ne pas ternir compte
(count*0,1);
3) fait la moyenne des enregistrements restant.
Mais comment écrire cette requête ?
Merci
Merci
J'ai essayé mais cela ne fonctionne pas.
Une des premières étapes que j'ai fait a été d'éliminer les codes de
professions qui avaient moins de 12 enregistrements par cette formule
comme
critère :
In (SELECT [Dernier emploi] FROM [Guide Tx Salaire] As Tmp GROUP BY
[Dernier
emploi] HAVING Count(*)>12)
En fait, dans l'exemple pour la profession 12, comme il y a 16
enregistrements : il faut ne pas tenir compe de deux enregistrements (le
premier et le dernier), donc le 10$ et et 40$. La moyenne des 16
enregistrements est de 19.55$ alors qu'avec la moyenne réduite on obtient
18.77$.
La fonction existe dans Excel : MOYENNE.REDUITE(plage;% de valeurs à ne
pas
tenir compte). En anglais, il s'agit de TRIMMEAN.
Bonjour,
J'ai une base de données contenant des codes de professions (520) et des
taux de salaire horaire.
Je dois calculer la moyenne réduite pour chaque profession. J'ai fait
une
requête qui élimine les enrigistrements incohérent et tri ceux restant
par
code de profession et taux de salaire. Ex. :
Dernier emploi Tx horaire
12 10,00 $
12 11,18 $
12 12,48 $
12 13,63 $
12 14,80 $
12 15,00 $
12 15,96 $
12 16,83 $
12 17,28 $
12 20,71 $
12 20,74 $
12 21,79 $
12 23,62 $
12 26,43 $
12 32,27 $
12 40,00 $
Chaque profession a un nombre d'enregistrements différents.
Est-il possible de calculer la moyenne en ne tenant pas compte de 10%
des
enregistrements inférieurs et supérieurs ?
J'ai pensé à quelque chose qui :
1) compte le nombre d'enregistrements pour chaque professions
(count);
2) trouve le nombre d'enregistrements à ne pas ternir compte
(count*0,1);
3) fait la moyenne des enregistrements restant.
Mais comment écrire cette requête ?
Merci
Merci
J'ai essayé mais cela ne fonctionne pas.
Une des premières étapes que j'ai fait a été d'éliminer les codes de
professions qui avaient moins de 12 enregistrements par cette formule
comme
critère :
In (SELECT [Dernier emploi] FROM [Guide Tx Salaire] As Tmp GROUP BY
[Dernier
emploi] HAVING Count(*)>12)
En fait, dans l'exemple pour la profession 12, comme il y a 16
enregistrements : il faut ne pas tenir compe de deux enregistrements (le
premier et le dernier), donc le 10$ et et 40$. La moyenne des 16
enregistrements est de 19.55$ alors qu'avec la moyenne réduite on obtient
18.77$.
La fonction existe dans Excel : MOYENNE.REDUITE(plage;% de valeurs à ne
pas
tenir compte). En anglais, il s'agit de TRIMMEAN.Bonjour,
J'ai une base de données contenant des codes de professions (520) et des
taux de salaire horaire.
Je dois calculer la moyenne réduite pour chaque profession. J'ai fait
une
requête qui élimine les enrigistrements incohérent et tri ceux restant
par
code de profession et taux de salaire. Ex. :
Dernier emploi Tx horaire
12 10,00 $
12 11,18 $
12 12,48 $
12 13,63 $
12 14,80 $
12 15,00 $
12 15,96 $
12 16,83 $
12 17,28 $
12 20,71 $
12 20,74 $
12 21,79 $
12 23,62 $
12 26,43 $
12 32,27 $
12 40,00 $
Chaque profession a un nombre d'enregistrements différents.
Est-il possible de calculer la moyenne en ne tenant pas compte de 10%
des
enregistrements inférieurs et supérieurs ?
J'ai pensé à quelque chose qui :
1) compte le nombre d'enregistrements pour chaque professions
(count);
2) trouve le nombre d'enregistrements à ne pas ternir compte
(count*0,1);
3) fait la moyenne des enregistrements restant.
Mais comment écrire cette requête ?
Merci
Bonjour,
J'ai une base de données contenant des codes de professions (520) et des
taux de salaire horaire.
Je dois calculer la moyenne réduite pour chaque profession. J'ai fait une
requête qui élimine les enrigistrements incohérent et tri ceux restant par
code de profession et taux de salaire. Ex. :
bonjour,
Dernier emploi Tx horaire
12 10,00 $
12 11,18 $
12 12,48 $
12 13,63 $
12 14,80 $
12 15,00 $
12 15,96 $
12 16,83 $
12 17,28 $
12 20,71 $
12 20,74 $
12 21,79 $
12 23,62 $
12 26,43 $
12 32,27 $
12 40,00 $
Chaque profession a un nombre d'enregistrements différents.
Est-il possible de calculer la moyenne en ne tenant pas compte de 10% des
enregistrements inférieurs et supérieurs ?
J'ai pensé à quelque chose qui :
1) compte le nombre d'enregistrements pour chaque professions (count);
2) trouve le nombre d'enregistrements à ne pas ternir compte (count*0,1);
3) fait la moyenne des enregistrements restant.
Mais comment écrire cette requête ?
Merci
Bonjour,
J'ai une base de données contenant des codes de professions (520) et des
taux de salaire horaire.
Je dois calculer la moyenne réduite pour chaque profession. J'ai fait une
requête qui élimine les enrigistrements incohérent et tri ceux restant par
code de profession et taux de salaire. Ex. :
bonjour,
Dernier emploi Tx horaire
12 10,00 $
12 11,18 $
12 12,48 $
12 13,63 $
12 14,80 $
12 15,00 $
12 15,96 $
12 16,83 $
12 17,28 $
12 20,71 $
12 20,74 $
12 21,79 $
12 23,62 $
12 26,43 $
12 32,27 $
12 40,00 $
Chaque profession a un nombre d'enregistrements différents.
Est-il possible de calculer la moyenne en ne tenant pas compte de 10% des
enregistrements inférieurs et supérieurs ?
J'ai pensé à quelque chose qui :
1) compte le nombre d'enregistrements pour chaque professions (count);
2) trouve le nombre d'enregistrements à ne pas ternir compte (count*0,1);
3) fait la moyenne des enregistrements restant.
Mais comment écrire cette requête ?
Merci
Bonjour,
J'ai une base de données contenant des codes de professions (520) et des
taux de salaire horaire.
Je dois calculer la moyenne réduite pour chaque profession. J'ai fait une
requête qui élimine les enrigistrements incohérent et tri ceux restant par
code de profession et taux de salaire. Ex. :
bonjour,
Dernier emploi Tx horaire
12 10,00 $
12 11,18 $
12 12,48 $
12 13,63 $
12 14,80 $
12 15,00 $
12 15,96 $
12 16,83 $
12 17,28 $
12 20,71 $
12 20,74 $
12 21,79 $
12 23,62 $
12 26,43 $
12 32,27 $
12 40,00 $
Chaque profession a un nombre d'enregistrements différents.
Est-il possible de calculer la moyenne en ne tenant pas compte de 10% des
enregistrements inférieurs et supérieurs ?
J'ai pensé à quelque chose qui :
1) compte le nombre d'enregistrements pour chaque professions (count);
2) trouve le nombre d'enregistrements à ne pas ternir compte (count*0,1);
3) fait la moyenne des enregistrements restant.
Mais comment écrire cette requête ?
Merci
Bonjour,
Autre solution, se coder une fonction. Par exemple, à copier dans un
module global :
Function fnMoyenneReduite(NomTable As String, _
NomChampCalcul As String, _
Pourcent As Single, NomChampWhere As String, _
ChampWhere As Double) As Double
Dim rst As DAO.Recordset, Total As Double, cpt As Long
Dim Exclu As Integer
Dim strSQL As String, varArray
strSQL = "select [" & NomChampCalcul & "] From [" & NomTable & "] " _
& "Where [" & NomChampWhere & "]=" & ChampWhere
Set rst = CurrentDb.OpenRecordset(strSQL)
rst.MoveLast: rst.MoveFirst
cpt = rst.RecordCount
Exclu = Int(Pourcent * cpt / 2)
varArray = rst.GetRows(cpt)
For i = LBound(varArray, 2) + Exclu To UBound(varArray, 2) - Exclu
Total = Total + varArray(0, i)
Next i
fnMoyenneReduite = Total / (cpt - 2 * Exclu)
Set rst = Nothing
End Function
Et dans la requête, en suppposant la table nommée Feuil1:
champ1:Dernier emploi
Opération : Regroupement
Champ2 : Moyenne Réduite: fnMoyenneReduite("Feuil1";"Tx
Horaire";0,2;"Dernier Emploi";[Dernier Emploi])
Opération : Expression
Champ3 : [Tx Horaire]
Opération : Moyenne
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour,
Autre solution, se coder une fonction. Par exemple, à copier dans un
module global :
Function fnMoyenneReduite(NomTable As String, _
NomChampCalcul As String, _
Pourcent As Single, NomChampWhere As String, _
ChampWhere As Double) As Double
Dim rst As DAO.Recordset, Total As Double, cpt As Long
Dim Exclu As Integer
Dim strSQL As String, varArray
strSQL = "select [" & NomChampCalcul & "] From [" & NomTable & "] " _
& "Where [" & NomChampWhere & "]=" & ChampWhere
Set rst = CurrentDb.OpenRecordset(strSQL)
rst.MoveLast: rst.MoveFirst
cpt = rst.RecordCount
Exclu = Int(Pourcent * cpt / 2)
varArray = rst.GetRows(cpt)
For i = LBound(varArray, 2) + Exclu To UBound(varArray, 2) - Exclu
Total = Total + varArray(0, i)
Next i
fnMoyenneReduite = Total / (cpt - 2 * Exclu)
Set rst = Nothing
End Function
Et dans la requête, en suppposant la table nommée Feuil1:
champ1:Dernier emploi
Opération : Regroupement
Champ2 : Moyenne Réduite: fnMoyenneReduite("Feuil1";"Tx
Horaire";0,2;"Dernier Emploi";[Dernier Emploi])
Opération : Expression
Champ3 : [Tx Horaire]
Opération : Moyenne
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour,
Autre solution, se coder une fonction. Par exemple, à copier dans un
module global :
Function fnMoyenneReduite(NomTable As String, _
NomChampCalcul As String, _
Pourcent As Single, NomChampWhere As String, _
ChampWhere As Double) As Double
Dim rst As DAO.Recordset, Total As Double, cpt As Long
Dim Exclu As Integer
Dim strSQL As String, varArray
strSQL = "select [" & NomChampCalcul & "] From [" & NomTable & "] " _
& "Where [" & NomChampWhere & "]=" & ChampWhere
Set rst = CurrentDb.OpenRecordset(strSQL)
rst.MoveLast: rst.MoveFirst
cpt = rst.RecordCount
Exclu = Int(Pourcent * cpt / 2)
varArray = rst.GetRows(cpt)
For i = LBound(varArray, 2) + Exclu To UBound(varArray, 2) - Exclu
Total = Total + varArray(0, i)
Next i
fnMoyenneReduite = Total / (cpt - 2 * Exclu)
Set rst = Nothing
End Function
Et dans la requête, en suppposant la table nommée Feuil1:
champ1:Dernier emploi
Opération : Regroupement
Champ2 : Moyenne Réduite: fnMoyenneReduite("Feuil1";"Tx
Horaire";0,2;"Dernier Emploi";[Dernier Emploi])
Opération : Expression
Champ3 : [Tx Horaire]
Opération : Moyenne
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour Éric,
Ta solution m'inspirait, j'ai donc commencé par la tienne.
J'ai essayé avec tes indications mais j'obtient ce message d'erreur :
"Erreur de compilation :
Type défini par l'utilisateur no défini"
Avec cet élément en surbrillance dans la fonction :
"rst As DAO.Recordset"
Dans la requête, au lieu d'une table je fait référence à une requête. Est-ce
cela le problèeme ?
Bonne journéeBonjour,
Autre solution, se coder une fonction. Par exemple, à copier dans un
module global :
Function fnMoyenneReduite(NomTable As String, _
NomChampCalcul As String, _
Pourcent As Single, NomChampWhere As String, _
ChampWhere As Double) As Double
Dim rst As DAO.Recordset, Total As Double, cpt As Long
Dim Exclu As Integer
Dim strSQL As String, varArray
strSQL = "select [" & NomChampCalcul & "] From [" & NomTable & "] " _
& "Where [" & NomChampWhere & "]=" & ChampWhere
Set rst = CurrentDb.OpenRecordset(strSQL)
rst.MoveLast: rst.MoveFirst
cpt = rst.RecordCount
Exclu = Int(Pourcent * cpt / 2)
varArray = rst.GetRows(cpt)
For i = LBound(varArray, 2) + Exclu To UBound(varArray, 2) - Exclu
Total = Total + varArray(0, i)
Next i
fnMoyenneReduite = Total / (cpt - 2 * Exclu)
Set rst = Nothing
End Function
Et dans la requête, en suppposant la table nommée Feuil1:
champ1:Dernier emploi
Opération : Regroupement
Champ2 : Moyenne Réduite: fnMoyenneReduite("Feuil1";"Tx
Horaire";0,2;"Dernier Emploi";[Dernier Emploi])
Opération : Expression
Champ3 : [Tx Horaire]
Opération : Moyenne
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour Éric,
Ta solution m'inspirait, j'ai donc commencé par la tienne.
J'ai essayé avec tes indications mais j'obtient ce message d'erreur :
"Erreur de compilation :
Type défini par l'utilisateur no défini"
Avec cet élément en surbrillance dans la fonction :
"rst As DAO.Recordset"
Dans la requête, au lieu d'une table je fait référence à une requête. Est-ce
cela le problèeme ?
Bonne journée
Bonjour,
Autre solution, se coder une fonction. Par exemple, à copier dans un
module global :
Function fnMoyenneReduite(NomTable As String, _
NomChampCalcul As String, _
Pourcent As Single, NomChampWhere As String, _
ChampWhere As Double) As Double
Dim rst As DAO.Recordset, Total As Double, cpt As Long
Dim Exclu As Integer
Dim strSQL As String, varArray
strSQL = "select [" & NomChampCalcul & "] From [" & NomTable & "] " _
& "Where [" & NomChampWhere & "]=" & ChampWhere
Set rst = CurrentDb.OpenRecordset(strSQL)
rst.MoveLast: rst.MoveFirst
cpt = rst.RecordCount
Exclu = Int(Pourcent * cpt / 2)
varArray = rst.GetRows(cpt)
For i = LBound(varArray, 2) + Exclu To UBound(varArray, 2) - Exclu
Total = Total + varArray(0, i)
Next i
fnMoyenneReduite = Total / (cpt - 2 * Exclu)
Set rst = Nothing
End Function
Et dans la requête, en suppposant la table nommée Feuil1:
champ1:Dernier emploi
Opération : Regroupement
Champ2 : Moyenne Réduite: fnMoyenneReduite("Feuil1";"Tx
Horaire";0,2;"Dernier Emploi";[Dernier Emploi])
Opération : Expression
Champ3 : [Tx Horaire]
Opération : Moyenne
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour Éric,
Ta solution m'inspirait, j'ai donc commencé par la tienne.
J'ai essayé avec tes indications mais j'obtient ce message d'erreur :
"Erreur de compilation :
Type défini par l'utilisateur no défini"
Avec cet élément en surbrillance dans la fonction :
"rst As DAO.Recordset"
Dans la requête, au lieu d'une table je fait référence à une requête. Est-ce
cela le problèeme ?
Bonne journéeBonjour,
Autre solution, se coder une fonction. Par exemple, à copier dans un
module global :
Function fnMoyenneReduite(NomTable As String, _
NomChampCalcul As String, _
Pourcent As Single, NomChampWhere As String, _
ChampWhere As Double) As Double
Dim rst As DAO.Recordset, Total As Double, cpt As Long
Dim Exclu As Integer
Dim strSQL As String, varArray
strSQL = "select [" & NomChampCalcul & "] From [" & NomTable & "] " _
& "Where [" & NomChampWhere & "]=" & ChampWhere
Set rst = CurrentDb.OpenRecordset(strSQL)
rst.MoveLast: rst.MoveFirst
cpt = rst.RecordCount
Exclu = Int(Pourcent * cpt / 2)
varArray = rst.GetRows(cpt)
For i = LBound(varArray, 2) + Exclu To UBound(varArray, 2) - Exclu
Total = Total + varArray(0, i)
Next i
fnMoyenneReduite = Total / (cpt - 2 * Exclu)
Set rst = Nothing
End Function
Et dans la requête, en suppposant la table nommée Feuil1:
champ1:Dernier emploi
Opération : Regroupement
Champ2 : Moyenne Réduite: fnMoyenneReduite("Feuil1";"Tx
Horaire";0,2;"Dernier Emploi";[Dernier Emploi])
Opération : Expression
Champ3 : [Tx Horaire]
Opération : Moyenne
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Salut,
"Sylvain Labbé"
[...]
| La fonction existe dans Excel : MOYENNE.REDUITE(plage;% de valeurs à ne pas
| tenir compte). En anglais, il s'agit de TRIMMEAN.
Essaies ceci :
Public Function fnTrimMean(argPercent As Double, _
ParamArray argA() As Variant) As Double
Dim voXlApp As Excel.Application
Set voXlApp = New Excel.Application
fnTrimMean = voXlApp.WorksheetFunction.TrimMean(argA(), argPercent)
voXlApp.Quit
Set voXlApp = Nothing
End Function
--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Salut,
"Sylvain Labbé"
[...]
| La fonction existe dans Excel : MOYENNE.REDUITE(plage;% de valeurs à ne pas
| tenir compte). En anglais, il s'agit de TRIMMEAN.
Essaies ceci :
Public Function fnTrimMean(argPercent As Double, _
ParamArray argA() As Variant) As Double
Dim voXlApp As Excel.Application
Set voXlApp = New Excel.Application
fnTrimMean = voXlApp.WorksheetFunction.TrimMean(argA(), argPercent)
voXlApp.Quit
Set voXlApp = Nothing
End Function
--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Salut,
"Sylvain Labbé"
[...]
| La fonction existe dans Excel : MOYENNE.REDUITE(plage;% de valeurs à ne pas
| tenir compte). En anglais, il s'agit de TRIMMEAN.
Essaies ceci :
Public Function fnTrimMean(argPercent As Double, _
ParamArray argA() As Variant) As Double
Dim voXlApp As Excel.Application
Set voXlApp = New Excel.Application
fnTrimMean = voXlApp.WorksheetFunction.TrimMean(argA(), argPercent)
voXlApp.Quit
Set voXlApp = Nothing
End Function
--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/