DStDev、DStDevP 函數

套用到
Microsoft 365 Access Access 2024 Access 2021 Access 2019 Access 2016

您可以使用 DStDevDStDevP 函數來估計網域) 指定記錄集內一組值 (標準差。 在 VBA) 模組、巨集、查詢運算式或表單或報表上的計算控制項 (Visual Basic for Applications 中使用 DStDevDStDevP 函數。

使用 DStDevP 函數來評估母體,而使用 DStDev 函數來評估母體樣本。

例如,您可以在模組中使用 DStDev 函數來計算一組學生考試成績的標準差。

語法

DStDev (expr, domain [, criteria] )

DStDevP (expr, domain [, criteria] )

DStDevDStDevP 函數具有下列引數:

引數 描述
expr 必要。 識別您要在其上尋找標準差之數值欄位的運算式。 它可以是識別資料表或查詢之欄位的字串運算式,或可以是在該欄位的資料上執行計算的運算式。 在 expr 中,您可以加入資料表中的欄位名稱、表單上的控制項、常數或函數。 如果 expr 包含函數,它可以是內建或使用者定義,但不得是另一個網域彙總或 SQL 彙總函數。
domain 必要。 識別構成範圍之記錄集的字串運算式。 它可以是資料表名稱,或不需要參數之查詢的查詢名稱。
criteria 可省略。 用來限制執行 DStDevDStDevP 函數的資料範圍的字串運算式。 例如, criteria 通常相當於 SQL 運算式中的 WHERE 子句,但沒有 WHERE 字樣。 如果省略 準則則 DStDevDStDevP 函數會針對整個網域評估 expr 。 準則 中包含的任何 欄位也必須是 範圍內的欄位;否則, DStDevDStDevP 函式會傳回 Null。

註解

如果 domain 參照少於兩筆記錄,或少於兩筆記錄滿足 準則DStDevDStDevP 函數會傳回 Null,表示無法計算標準差。

無論您是在巨集、模組、查詢運算式或計算控制項中使用 DStDevDStDevP 函數,您都必須仔細建構 準則 引數以確保能正確進行評估。

您可以使用 DStDevDStDevP 函數,在選取查詢的 [準則] 列中指定準則。 例如,您可以在 [訂單] 資料表和 [產品] 資料表上建立查詢,以顯示超過平均運費的所有產品,以及運費的標準差。 [運費] 欄位底下的 [準則] 資料列會包含下列運算式:

>(DStDev("[Freight]", "Orders") + DAvg("[Freight]", "Orders"))

您可以在查詢的導出欄位運算式,或在更新查詢的 [更新至] 資料列中使用 DStDevDStDevP 函數。

注意

您可以在合計查詢的導出欄位運算式中使用 DStDevDStDevP 函數或 StDevStDevP 函數。 如果您使用 DStDevDStDevP 函數,值會在資料分組之前進行計算。 如果您使用 StDevStDevP 函數,資料會在評估欄位運算式中的值之前進行分組。

當您需要指定準則以限制執行函數的資料範圍時,請使用計算控制項中的 DStDevDStDevP 函數。 例如,若要顯示要出貨至加州之訂單的標準差,請將文字輸入框的 ControlSource 屬性設定為下列運算式:

=DStDev("[Freight]", "Orders", "[ShipRegion] = 'CA'")

如果您只想尋找 網域中所有記錄的標準差,請使用 StDevStDevP 函數。

秘訣 如果衍生 expr 之欄位的資料類型是數字,則 DStDev 和 DStDevP 函數會傳回 Double 資料類型。 如果您在計算控制項中使用 DStDev 或 DStDevP 函數,請在運算式中包含資料類型轉換函式,以改善效能。

注意

使用這些函數時,不會包括 domain 中未儲存的記錄變更。 如果您希望 DStDevDStDevP 函數以變更的值為基礎,您必須先按一下 [資料] 索引標籤上 [記錄] 底下的 [儲存記錄]、將焦點移至另一筆記錄,或使用 Update 方法來儲存變更。

查詢範例

運算式 結果
SELECT DStDev (“unitprice”,“productSales”,“unitprice>140”) AS Expr1, DStDevP (“unitprice”,“productSales”,“unitprice<140”) AS Expr2 FROM productSales BY DStDev (“unitprice”,“productSales”,“unitprice>140”) , DStDevP (“unitprice”,“productSales”,“unitprice<140”) ; 計算 “UnitPrice” 的Standard差, (將給定資料做為資料表 “ProductSales” 的範例) ,其中 “unitprice” 大於 140,並在運算式1 中顯示結果。 同時計算 “UnitPrice” 的Standard偏差 (將給定資料視為整個母體) 其中 “unitprice” 小於 140,並在運算式2 中顯示結果。
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”) ; 計算 “UnitPrice” 的Standard差, (考慮指定資料做為資料表 “ProductSales” 的範例) ,其中 “unitprice” 大於 140,並在 DstDev 顯示結果。 同時計算 “UnitPrice” 的Standard偏差 (將給定資料視為整個母體) ,其中 “unitprice” 小於 140,並在 DstDevP 中顯示結果。

VBA 範例

注意

下列範例示範如何在 Visual Basic for Applications (VBA) 模組中使用此函數。 如需使用 VBA 的詳細資訊,請在 [搜尋] 旁的下拉式清單中選取 [開發人員參考],並在 [搜尋] 方塊中輸入一個或多個字詞。

下列範例會傳回母體的標準差估計值,以及運送至英國之訂單的母體樣本。 範圍是 [訂單] 資料表。 criteria 引數會將結果限制為 ShipCountryRegion 值為 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'")

下一個範例會在準則引數中使用變數 strCountryRegion,來計算相同的估計值。 請注意,字串運算式中會包含單引號 (') ,因此當字串串連時,字串常值 UK 會以單引號括住。

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 & "'")