Vous pouvez utiliser les fonctions DStDev et DStDevP pour estimer l’écart type sur un ensemble de valeurs dans un jeu d’enregistrements spécifié (un domaine ). Utilisez les fonctions DStDev et DStDevP dans un module Visual Basic pour Applications (VBA), un macro, une expression de requête ou un contrôle calculé sur un formulaire ou un état.
Utilisez la fonction DStDevP pour évaluer une population et la fonction DStDev pour évaluer un échantillon de population.
Par exemple, vous pouvez utiliser la fonction DStDev dans un module pour calculer l’écart type sur un ensemble de notes de test des étudiants.
Syntaxe
DStDev ( expr , domain [, criteria] )
DStDevP ( expr , domain [, criteria] )
Les fonctions DStDev et DStDevP ont les arguments suivants :
Argument |
Description |
expr |
Obligatoire. Expression qui identifie le champ numérique sur lequel vous souhaitez trouver l’écart type. Il peut s’agir d’un expression de chaîne identifiant un champ à partir d’une table ou d’une requête, ou d’une expression qui effectue un calcul sur les données de ce champ. Dans expr, vous pouvez inclure le nom d’un champ dans une table, un contrôle sur un formulaire, une constante ou une fonction. Si expr inclut une fonction, elle peut être intégrée ou définie par l’utilisateur, mais pas une autre fonction d’agrégation de domaine ou SQL. |
domaine |
Obligatoire. Expression de chaîne identifiant le jeu d’enregistrements qui constitue le domaine. Il peut s’agir d’un nom de table ou d’un nom de requête pour une requête qui ne nécessite pas de paramètre. |
critères |
Facultatif. Expression de chaîne utilisée pour restreindre la plage de données sur laquelle la fonction DStDev ou DStDevP est exécutée. Par exemple, les critères sont souvent équivalents à la clause WHERE dans une expression SQL, sans le mot WHERE. Si critères est omis , les fonctions DStDev et DStDevPévaluent expr par rapport à l’ensemble du domaine. Tout champ inclus dans les critères doit également être un champ dans le domaine ; sinon, les fonctions DStDev et DStDevP retournent une valeur Null. |
Notes
Si le domaine fait référence à moins de deux enregistrements ou si moins de deux enregistrements répondent à des critères, les fonctions DStDev et DStDevP renvoient une valeur Null, indiquant qu’un écart type ne peut pas être calculé.
Que vous utilisiez la fonction DStDev ou DStDevP dans une macro, un module, une expression de requête ou un contrôle calculé, vous devez construire l’argument critère avec soin pour vous assurer qu’il sera évalué correctement.
Vous pouvez utiliser les fonctions DStDev et DStDevP pour spécifier des critères dans la ligne Critères d’une requête select. Par exemple, vous pouvez créer une requête sur une table Orders et une table Products pour afficher tous les produits pour lesquels le coût de transport est passé au-dessus de la moyenne, plus l’écart type pour le coût de transport. La ligne Critères sous le champ Freight contient l’expression suivante :
>(DStDev("[Freight]", "Orders") + DAvg("[Freight]", "Orders"))
Vous pouvez utiliser les fonctions DStDev et DStDevP dans une expression de champ calculé d’une requête ou dans la ligne Mettre à jour vers d’un requête Mise à jour.
Remarque : Vous pouvez utiliser les fonctions DStDev et DStDevP ou les fonctions StDev et StDevP dans une expression de champ calculé d’un requête Opérations. Si vous utilisez la fonction DStDev ou DStDevP , les valeurs sont calculées avant le regroupement des données. Si vous utilisez la fonction StDev ou StDevP , les données sont regroupées avant que les valeurs de l’expression de champ soient évaluées.
Utilisez les fonctions DStDev et DStDevP dans un contrôle calculé lorsque vous devez spécifier des critères pour restreindre la plage de données sur laquelle la fonction est exécutée. Par exemple, pour afficher l’écart type pour les commandes à expédier en Californie, définissez la propriété ControlSource d’une zone de texte sur l’expression suivante :
=DStDev("[Freight]", "Orders", "[ShipRegion] = 'CA'")
Si vous souhaitez simplement trouver l’écart type sur tous les enregistrements du domaine, utilisez la fonction StDev ou StDevP .
Conseil Si le type de données du champ dont expr est dérivé est un nombre, les fonctions DStDev et DStDevP retournent un type de données Double. Si vous utilisez la fonction DStDev ou DStDevP dans un contrôle calculé, incluez une fonction de conversion de type de données dans l’expression pour améliorer les performances.
Remarque : Les modifications non enregistrées apportées aux enregistrements dans le domaine ne sont pas incluses lorsque vous utilisez ces fonctions. Si vous souhaitez que la fonction DStDev ou DStDevP soit basée sur les valeurs modifiées, vous devez d’abord enregistrer les modifications en cliquant sur Enregistrer l’enregistrement sous l’onglet Enregistrements sous l’onglet Données , en déplaçant le focus vers un autre enregistrement ou en utilisant la méthode Update .
Exemples de requêtes
Expression |
Résultats |
SELECT DStDev(« unitprice »,"productSales »,"unitprice>140 ») AS Expr1, DStDevP(« unitprice »,"productSales »,"unitprice<140 ») AS Expr2 FROM productSales GROUP BY DStDev(« unitprice »,"productSales »,"unitprice>140 »), DStDevP(« unitprice »,"productSales »,"unitprice<140 ») ; |
Calcule l’écart type de « UnitPrice » (en tenant compte des données données comme échantillon) à partir de la table « ProductSales » où « unitprice » est supérieur à 140 et affiche le résultat dans Expr1. Calcule également l’écart type de « UnitPrice » (en tenant compte des données données comme la population entière) où « unitprice » est inférieur à 140 et affiche les résultats dans Expr2. |
SELECT DStDev(« unitprice »,"productSales »,"unitprice>140 ») AS DstDev, DStDevP(« unitprice »,"productSales »,"unitprice<140 ») AS DstDevP FROM productSales GROUP BY DStDev(« unitprice »,"productSales »,"unitprice>140 »), DStDevP(« unitprice »,"productSales »,"unitprice<140 ») ; |
Calcule l’écart type de « UnitPrice » (en tenant compte des données données comme échantillon) à partir de la table « ProductSales » où « unitprice » est supérieur à 140 et affiche le résultat dans DstDev. Calcule également l’écart type de « UnitPrice » (en considérant les données données comme une population entière) où « unitprice » est inférieur à 140 et affiche les résultats dans DstDevP. |
Exemple VBA
Remarque : Les exemples suivants illustrent l’utilisation de cette fonction dans un module Visual Basic pour Applications (VBA). Pour plus d’informations sur l’utilisation de VBA, sélectionnez Référence du développeur dans la liste déroulante en regard de Rechercher et entrez un ou plusieurs termes dans la zone de recherche.
L’exemple suivant retourne des estimations de l’écart type pour une population et un échantillon de population pour les commandes expédiées au Royaume-Uni. Le domaine est une table Orders. L’argument critère limite le jeu d’enregistrements obtenu à ceux pour lesquels la valeur ShipCountryRegion est UK.
Dim dblX As Double
Dim dblY As Double ' Sample estimate. dblX = DStDev("[Freight]", "Orders", _ "[ShipCountryRegion] = 'UK'") ' Population estimate. dblY = DStDevP("[Freight]", "Orders", _ "[ShipCountryRegion] = 'UK'")
L’exemple suivant calcule les mêmes estimations à l’aide d’une variable, strCountryRegion, dans l’argument critère . Notez que les guillemets simples (') sont inclus dans l’expression de chaîne, de sorte que lorsque les chaînes sont concaténées, le littéral de chaîne UK est placé entre guillemets simples.
Dim strCountryRegion As String
Dim dblX As Double Dim dblY As Double strCountryRegion = "UK" dblX = DStDev("[Freight]", "Orders", _ "[ShipCountryRegion] = '" & strCountryRegion & "'") dblY = DStDevP("[Freight]", "Orders", _ "[ShipCountryRegion] = '" & strCountryRegion & "'")