您可以使用 DStDev 和 DStDevP 函數來估計指定記錄集中一組值的標準偏差, ( 範圍) 。 在 Visual Basic for Applications (VBA) 模組、 巨集、查詢表達式或窗體或報表上的 計算控制項 中使用 DStDev 和 DStDevP 函數。
使用 DStDevP 函數來評估母體和 DStDev 函數,以評估母體樣本。
例如,您可以在模組中使用 DStDev 函數來計算一組學生考試成績的標準偏差。
語法
DStDev ( expr , domain [, criteria] )
DStDevP ( expr , domain [, criteria] )
DStDev 和 DStDevP 函數具有下列自變數:
引數 |
描述 |
expr |
必要。 用來識別要尋找標準偏差之數值欄位的表達式。 它可以是從數據表或查詢識別欄位的 字串運算式 ,也可以是對該欄位中的數據執行計算的運算式。 在 expr 中,您可以加入資料表中的欄位名稱、表單上的控制項、常數或函數。 expr 可包含內建或使用者定義的函數,但不得是另一個網域彙總或 SQL 彙總函數。 |
domain |
必要。 識別構成範圍之記錄集的字串運算式。 它可以是資料表名稱,或不需要參數之查詢的查詢名稱。 |
criteria |
可省略。 用來限制 執行 DStDev 或 DStDevP 函數之數據範圍的字串表達式。 例如, criteria 通常等同於 SQL 運算式中的 WHERE 子句,而沒有 WHERE 一詞。 如果省略 criteria,DStDev 和 DStDevP 函數會針對整個網域評估 expr。 準則 中包含 的任何欄位也必須是網 域中的欄位;否則, DStDev 和 DStDevP 函數會傳回 Null。 |
註解
如果 網域 參照少於兩筆記錄,或少於兩筆記錄符合 準則, 則 DStDev 和 DStDevP 函數會傳回 Null,表示無法計算標準偏差。
無論您是在宏、模組、查詢表達式或計算控件中使用 DStDev 或 DStDevP 函數,您都必須仔細建構 criteria 自變數,以確保能正確評估。
您可以使用 DStDev 和 DStDevP 函數,在選取查詢的 [準則] 列中指定準則。 例如,您可以在 [訂單] 數據表和 [產品] 數據表上建立查詢,以顯示運費超出平均值的所有產品,再加上運費的標準偏差。 [Freight] 字段底下的 [準則] 列會包含下列運算式:
>(DStDev("[Freight]", "Orders") + DAvg("[Freight]", "Orders"))
您可以在查詢的匯出欄位表示式或 更新查詢的 [更新至] 列中使用 DStDev 和 DStDevP 函數。
附註: 您可以在 合計查詢的導出字段表示式中使用 DStDev 和 DStDevP 函數,或 StDev 和 StDevP 函數。 如果您使用 DStDev 或 DStDevP 函數,值會在資料分組之前進行計算。 如果您使用 StDev 或 StDevP 函數,數據會先分組,然後再評估欄位運算式中的值。
當您需要指定準則來限制執行函數的數據範圍時,請在計算控件中使用 DStDev 和 DStDevP 函數。 例如,若要顯示要運送至加州訂單的標準偏差,請將文本框的 ControlSource 屬性設為下列表達式:
=DStDev("[Freight]", "Orders", "[ShipRegion] = 'CA'")
如果您只想找出 網域中所有記錄的標準偏差,請使用 StDev 或 StDevP 函數。
祕訣 如果衍生 expr 之字段的數據類型是數位,則 DStDev 和 DStDevP 函數會傳回 Double 資料類型。 如果您在計算控件中使用 DStDev 或 DStDevP 函數,請在運算式中包含資料類型轉換函數以改善效能。
附註: 當您使用這些函數時,不會包含 網域 中未儲存的記錄變更。 如果您希望 DStDev 或 DStDevP 函數是以變更的值為基礎,您必須先在 [資料] 索引標籤的 [記錄] 底下按兩下 [儲存記錄],將焦點移至另一筆記錄,或使用更新方法來儲存變更。
查詢範例
Expression |
結果 |
SELECT DStDev (“unitprice”,“productSales”,“unitprice>140”) AS 表達式1, DStDevP (“unitprice”,“productSales”,“unitprice<140”) AS Expr2 FROM productSales GROUP BY DStDev (“unitprice”,“productSales”,“unitprice>140”) , DStDevP (“unitprice”,“productSales”,“unitprice<140”) ; |
計算 「UnitPrice」 的標準偏差 (將 te 指定的數據視為 「ProductSales」數據表的樣本) ,其中 “unitprice” 大於 140,並在表達式1 中顯示結果。 此外,也會將指定的數據視為整個母體) “unitprice” 小於 140,並以表達式2 顯示結果,來計算 “UnitPrice” 的標準偏差 (。 |
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”) ; |
計算「單價」 (將 te 指定數據視為「ProductSales」數據表中“unitprice” 大於 140 的樣本) ,並將結果顯示為 DstDev。 同時也會計算 「UnitPrice」 (將指定數據視為整個母體) 其中 「unitprice」 小於 140 且會在 DstDevP 中顯示結果的標準偏差。 |
VBA 範例
附註: 下列範例示範如何在 Visual Basic for Applications (VBA) 模組中使用此函數。 如需使用 VBA 的詳細資訊,請在 [搜尋] 旁的下拉式清單中選取 [開發人員參考],並在 [搜尋] 方塊中輸入一個或多個字詞。
下列範例會傳回母體的標準偏差估計值,以及出貨至英國之訂單的母體樣本。 網域是 [訂單] 數據表。 criteria 自變數會將產生的記錄集限制為 ShipCountryRegion 值為英國的數據集。
Dim dblX As Double
Dim dblY As Double ' Sample estimate. dblX = DStDev("[Freight]", "Orders", _ "[ShipCountryRegion] = 'UK'") ' Population estimate. dblY = DStDevP("[Freight]", "Orders", _ "[ShipCountryRegion] = 'UK'")
下一個範例會使用 criteria 自變數中的變數 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 & "'")