U kunt de functies DStDev en DStDevP gebruiken om een schatting te maken van de standaarddeviatie van een reeks waarden in een opgegeven set records (een domein). Gebruik de functies DStDev en DStDevP in een Visual Basic for Applications-module (VBA), een macro, een query-expressie of een berekend besturingselement in een formulier of rapport.
Gebruik StDevP om een populatie te evalueren en StDev om een steekproef van een populatie te evalueren.
U kunt de functie DStDev bijvoorbeeld gebruiken in een module om de standaarddeviatie te berekenen voor een reeks tentamencijfers van studenten.
Syntaxis
DStDev ( expr , domein [, criteria] )
DStDevP ( expr , domein [, criteria] )
De functies DStDev en DStDevP hebben de volgende argumenten:
Argument |
Beschrijving |
expr |
Vereist. Een expressie die het numerieke veld aangeeft waarvoor u de standaarddeviatie wilt bepalen. Dit kan een reeksexpressie zijn waarmee een veld in een tabel of query wordt aangegeven, of een expressie die een berekening uitvoert op de gegevens in dat veld. In expr kunt u de naam van een veld in een tabel opnemen, een besturingselement van een formulier, een constante of een functie. Als expr een functie bevat, kan dit een ingebouwde functie of een door een gebruiker gedefinieerde functie zijn, maar niet nog een statistische domein- of SQL-functie. |
domein |
Vereist. Een tekenreeksexpressie waarmee de set records wordt aangegeven waaruit het domein bestaat. Dit kan de naam van een tabel zijn of de naam van een query waarvoor geen parameter nodig is. |
criteria |
Optioneel. Een tekenreeksexpressie die wordt gebruikt om het bereik van gegevens te beperken waarop de functie DStDev of DStDevP wordt uitgevoerd. Criteria is bijvoorbeeld vaak gelijk aan de WHERE-component in een SQL-expressie, zonder het woord WHERE. Als criteria worden weggelaten, evalueren de functies DStDev en DStDevPexpr op basis van het hele domein. Elk veld dat is opgenomen in criteria , moet ook een veld in het domein zijn; Anders retourneren de functies DStDev en DStDevP een Null. |
Opmerkingen
Als domein verwijst naar minder dan twee records of als er minder dan twee records voldoen aan criteria, retourneren DStDev en DStDevP een Null, waarmee wordt aangegeven dat er geen standaarddeviatie kan worden berekend.
Ongeacht of u de functie DStDev of DStDevP gebruikt in een macro, een module, een query-expressie of een berekend besturingselement, moet u het argument criteria zorgvuldig samenstellen. Alleen dan kan het argument goede resultaten opleveren.
U kunt de functies DStDev en DStDevP gebruiken om criteria op te geven in de criteriarij van een selectiequery. U kunt bijvoorbeeld een query maken op een tabel Orders en een tabel Producten om alle producten weer te geven waarvan de vrachtkosten hoger zijn dan het gemiddelde plus de standaarddeviatie voor vrachtkosten. De criteriarij onder het veld voor de vrachtkosten (Freight) moet dan de volgende expressie bevatten:
>(DStDev("[Freight]", "Orders") + DAvg("[Freight]", "Orders"))
U kunt de functies DStDev en DStDevP ook gebruiken in een expressie voor een berekend veld in een query of in de Update To-rij van een bijwerkquery.
Opmerking: U kunt de functies DStDev en DStDevP of de functies StDev en StDevP gebruiken in een expressie voor een berekend veld van een totalenquery. Als u de functie DStDev of DStDevP gebruikt, worden waarden geëvalueerd voordat de gegevens worden gegroepeerd. Als u de functie StDev of StDevP gebruikt, worden de gegevens gegroepeerd voordat de waarden van de veldexpressie worden geëvalueerd.
Gebruik de functies DStDev en DStDevP in een berekend besturingselement wanneer u criteria wilt opgeven om het gegevensbereik te beperken waarop de functie wordt uitgevoerd. Als u bijvoorbeeld de standaarddeviatie wilt weergeven voor orders die moeten worden verzonden naar Californië, stelt u de eigenschap ControlSource van een tekstvak in op de volgende expressie:
=DStDev("[Freight]", "Orders", "[ShipRegion] = 'CA'")
Als u alleen de standaarddeviatie wilt berekenen voor alle records in domein, gebruikt u de functie StDev of StDevP.
Tip Als het gegevenstype van het veld waaruit expr is afgeleid een getal is, retourneren de functies DStDev en DStDevP het gegevenstype Double. Als u de functie DStDev of DStDevP gebruikt in een berekend besturingselement, kunt u de prestaties verbeteren door een functie voor conversie van het gegevenstype toe te voegen aan de expressie.
Opmerking: Niet-opgeslagen wijzigingen in records in domein worden niet opgenomen wanneer u deze functies gebruikt. Als u de functie DStDev of DStDevP wilt baseren op de gewijzigde waarden, moet u de wijzigingen eerst opslaan door te klikken op Record opslaan onder Records op het tabblad Gegevens , de focus naar een andere record te verplaatsen of door de methode Update te gebruiken.
Queryvoorbeelden
Expression |
Resultaten |
SELECT DStDev("eenheidsprijs","productVerkoop";"eenheidsprijs>140") AS Expr1, DStDevP("eenheidsprijs","productVerkoop","eenheidsprijs<140") AS Expr2 FROM productVerkoop GROEP BY DStDev("eenheidsprijs","productVerkoop","eenheidsprijs","eenheidsprijs>140"), DStDevP("eenheidsprijs","productVerkoop","prijs per eenheid<140"); |
Berekent de standaarddeviatie van 'Prijs per eenheid' (rekening houdend met de gegeven gegevens als voorbeeld) uit de tabel 'ProductVerkoop' waarbij 'prijs per eenheid' groter is dan 140 en het resultaat wordt weergegeven in Expr1. Berekent ook de standaarddeviatie van 'Prijs per eenheid' (waarbij de opgegeven gegevens als volledige populatie worden beschouwd) waarbij 'eenheidsprijs' kleiner is dan 140 en de resultaten worden weergegeven in Expr2. |
SELECT DStDev("eenheidsprijs","productVerkoop","prijs per eenheid>140") AS DstDev, DStDevP("eenheidsprijs","productVerkoop","eenheidsprijs<140") AS DstDevP FROM productVerkoop GROEP BY DStDev("eenheidsprijs","productVerkoop","eenheidsprijs>140"), DStDevP("eenheidsprijs","productVerkoop","eenheidsprijs<140"); |
Berekent de standaarddeviatie van 'Prijs per eenheid' (rekening houdend met de gegeven gegevens als voorbeeld) uit de tabel 'ProductVerkoop' waarbij 'prijs per eenheid' groter is dan 140 en het resultaat wordt weergegeven in DstDev. Berekent ook de standaarddeviatie van 'Eenheidsprijs' (waarbij de opgegeven gegevens als volledige populatie worden beschouwd) waarbij 'eenheidsprijs' kleiner is dan 140 en de resultaten worden weergegeven in DstDevP. |
VBA-voorbeeld
Opmerking: In de volgende voorbeelden wordt het gebruik van deze functie in een VBA-module (Visual Basic for Applications) toegelicht. Meer informatie over het werken met VBA vindt u door in de vervolgkeuzelijst naast Zoeken de optie Referentie voor ontwikkelaars te selecteren en een of meer termen in het zoekvenster te typen.
Het volgende voorbeeld retourneert schattingen van de standaarddeviatie voor een populatie en een steekproef van een populatie voor orders die naar het Verenigd Koninkrijk zijn verzonden. Het domein is de tabel Orders. Het argument criteria beperkt het resultaat tot een recordset waarvan ShipCountryRegion gelijk is aan 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'")
In het volgende voorbeeld worden dezelfde schattingen berekend met behulp van een variabele, strCountryRegion, in het argument criteria . Houd er rekening mee dat enkele aanhalingstekens (') worden opgenomen in de tekenreeksexpressie, zodat wanneer de tekenreeksen worden samengevoegd, de letterlijke UK tussen enkele aanhalingstekens wordt geplaatst.
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 & "'")