Sie können die Funktionen DStDev und DStDevP verwenden, um die Standardabweichung über eine Gruppe von Werten in einer bestimmten Gruppe von Datensätzen (einer Domäne) zu schätzen. Verwenden Sie die Funktionen DStDev und DStDevP in einem Visual Basic for Applications (VBA)-Modul, einem Makro, einem Abfrageausdruck oder einem berechneten Steuerelement in einem Formular oder Bericht.
Verwenden Sie die StDevP-Funktion, um eine Grundgesamtheit auszuwerten, und die StDev-Funktion, um eine Stichprobe der Grundgesamtheit auszuwerten.
Sie könnten z. B. die DStDev-Funktion in einem Modul zur Berechnung der Standardabweichung in einer Reihe von Prüfungsergebnissen von Kursteilnehmern verwenden.
Syntax
DStDev(expr, domain [, criteria] )
DStDevP(expr, domain [, criteria] )
Die Funktionen DStDev und DStDevP verwenden die folgenden Argumente:
| Argument | Beschreibung |
|---|---|
| Ausdruck | Erforderlich. Ein Ausdruck, der das numerische Feld angibt, für das Sie die Standardabweichung ermitteln möchten. Hierbei kann es sich um einen Zeichenfolgenausdruck handeln, der ein Feld aus einer Tabelle oder Abfrage identifiziert, oder um einen Ausdruck, der eine Berechnung der Daten in diesem Feld durchführt. In Ausdruck können Sie den Namen eines Felds in einer Tabelle, eines Steuerelements in einem Formular, einer Konstante oder einer Funktion einfügen. Wenn Ausdr eine Funktion enthält, kann sie entweder integriert oder benutzerdefiniert sein, aber keine andere Domänenaggregat- oder SQL-Aggregatfunktion. |
| Domäne | Erforderlich. Ein Zeichenfolgenausdruck, der die Gruppe von Datensätzen angibt, die die Domäne bilden. Es kann sich um einen Tabellennamen oder um einen Abfragenamen für eine Abfrage handeln, die keinen Parameter erfordert. |
| Kriterien | Optional. Ein Zeichenfolgenausdruck, der zum Einschränken des Datenbereichs verwendet wird, für den die Funktion DStDev oder DStDevP ausgeführt wird. Kriterien entsprechen z. B. häufig der WHERE-Klausel in einem SQL-Ausdruck ohne das Wort WHERE. Wenn Kriterien weggelassen werden, werten die Funktionen DStDev und DStDevPexpr für die gesamte Domäne aus. Jedes Feld, das in den Kriterien enthalten ist, muss auch ein Feld in der Domäne sein. Andernfalls geben die Funktionen DStDev und DStDevP einen Null-Wert zurück. |
Hinweise
Wenn sich die Domäne auf weniger als zwei Datensätze bezieht oder wenn weniger als zwei Datensätze die Kriterien erfüllen, geben die Funktionen DStDev und DStDevP den Wert Null zurück, was angibt, dass eine Standardabweichung nicht berechnet werden kann.
Unabhängig davon, ob Sie die DStDev - oder DStDevP-Funktion in einem Makro, Modul, Abfrageausdruck oder berechneten Steuerelement verwenden, müssen Sie das Argument Kriterien sorgfältig erstellen, um sicherzustellen, dass es richtig ausgewertet wird.
Sie können die Funktionen DStDev und DStDevP verwenden, um Kriterien in der Zeile Kriterien einer Auswahlabfrage anzugeben. Sie können z. B. eine Abfrage für die Tabelle "Bestellungen" und die Tabelle "Artikel" erstellen, um alle Produkte anzuzeigen, bei denen die Frachtkosten den Mittelwert überschritten haben. Außerdem wird die Standardabweichung der Frachtkosten angezeigt. Die Zeile Kriterien unter dem Feld Fracht würde den folgenden Ausdruck enthalten:
>(DStDev("[Freight]", "Orders") + DAvg("[Freight]", "Orders"))
Sie können die Funktionen DStDev und DStDevP in einem berechneten Feldausdruck einer Abfrage oder in der Zeile "Aktualisieren nach" einer Aktualisierungsabfrage verwenden.
Hinweis
Sie können die Funktionen DStDev und DStDevP oder die Funktionen StDev und StDevP in einem berechneten Feldausdruck einer Gesamtsummenabfrage verwenden. Wenn Sie die Funktion DStDev oder DStDevP verwenden, werden die Werte berechnet, bevor die Daten gruppiert werden. Wenn Sie die Funktion StDev oder StDevP verwenden, werden die Daten gruppiert, bevor Werte im Feldausdruck ausgewertet werden.
Verwenden Sie die Funktionen DStDev und DStDevP in einem berechneten Steuerelement, wenn Sie Kriterien zum Beschränken des Datenbereichs angeben möchten, für den die Funktion ausgeführt wird. Zum Anzeigen einer Standardabweichung für nach Kalifornien gelieferte Bestellungen, legen Sie z. B. die Eigenschaft ControlSource eines Textfelds auf den folgenden Ausdruck fest:
=DStDev("[Freight]", "Orders", "[ShipRegion] = 'CA'")
Wenn Sie einfach die Standardabweichung aller Datensätze in der Domäne ermitteln möchten, verwenden Sie die Funktion StAbw oder StAbwP .
Tipp Wenn der Datentyp des Felds, von dem Ausdr abgeleitet wird, eine Zahl ist, geben die Funktionen DStDev und DStDevP einen Double-Datentyp zurück. Wenn Sie die Funktion "DStDev" oder "DStDevP" in einem berechneten Steuerelement verwenden, fügen Sie zur Leistungsverbesserung eine Konvertierungsfunktion für den Datentyp in den Ausdruck ein.
Hinweis
Bei Verwendung dieser Funktionen werden nicht gespeicherte Änderungen an Datensätzen in Domäne nicht berücksichtigt. Wenn die Funktion DStDev oder DStDevP auf den geänderten Werten basieren soll, müssen Sie die Änderungen zunächst speichern, indem Sie auf der Registerkarte Daten unter Datensätze auf Datensatz speichern klicken, damit der Fokus zu einem anderen Datensatz wechselt, oder indem Sie die Methode Aktualisieren verwenden.
Abfragebeispiele
| Ausdruck | Ergebnisse |
|---|---|
| SELECT DStDev("unitprice","productSales","unitprice>140") AS Expr1, DStDevP("unitprice","productSales","unitprice<140") AS Ausdr2 FROM productSales GROUP BY DStDev("unitprice","productSales","unitprice>140"), DStDevP("unitprice","productSales","unitprice<140"); | Berechnet die Standardabweichung von "Einzelpreis" (unter Berücksichtigung der angegebenen Daten als Stichprobe) von der Tabelle "ProduktUmsatz", wobei "Einzelpreis" größer als 140 ist, und zeigt das Ergebnis in Ausdr1 an. Berechnet auch die Standardabweichung von "Einzelpreis" (wobei die angegebenen Daten als Grundgesamtheit betrachtet werden), wobei "Einzelpreis" kleiner als 140 ist, und zeigt die Ergebnisse in Ausdr2 an. |
| 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"); | Berechnet die Standardabweichung von "Einzelpreis" (unter Berücksichtigung der angegebenen Daten als Stichprobe) von der Tabelle "ProduktUmsatz", wobei "Einzelpreis" größer als 140 ist, und zeigt das Ergebnis in Sommerzeit an. Berechnet auch die Standardabweichung von "Einzelpreis" (unter Berücksichtigung der angegebenen Daten als gesamte Grundgesamtheit), wobei "Einzelpreis" kleiner als 140 ist, und zeigt die Ergebnisse in Sommerzeit anAbw. |
VBA-Beispiel
Hinweis
Die folgenden Beispiele zeigen die Verwendung dieser Funktion in einem VBA-Modul (Visual Basic for Applications). Wenn Sie weitere Informationen zum Arbeiten mit VBA wünschen, wählen Sie Entwicklerreferenz in der Dropdownliste neben Suchen aus, und geben Sie einen oder mehrere Begriffe in das Suchfeld ein.
Im folgenden Beispiel werden Schätzungen der Standardabweichung für eine Grundgesamtheit und eine Stichprobe der Grundgesamtheit für nach Großbritannien (United Kingdom, UK) gelieferte Bestellungen zurückgegeben. Als Domäne wird die Tabelle "Orders" verwendet. Das Argument Kriterien schränkt die resultierende Gruppe von Datensätzen auf diejenigen ein, für die der Wert "VersandlandRegion" "GB" ist.
Dim dblX As Double
Dim dblY As Double
' Sample estimate.
dblX = DStDev("[Freight]", "Orders", _
"[ShipCountryRegion] = 'UK'")
' Population estimate.
dblY = DStDevP("[Freight]", "Orders", _
"[ShipCountryRegion] = 'UK'")
Im nächsten Beispiel werden dieselben Schätzungen berechnet, strCountryRegionindem die Variable , im Argument Kriterien verwendet wird. Beachten Sie, dass einfache Anführungszeichen (') in den Zeichenfolgenausdruck eingeschlossen sind, sodass beim Verketten der Zeichenfolgen das Zeichenfolgenliteral UK in einfache Anführungszeichen eingeschlossen wird.
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 & "'")