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

使用 DStDevP 函數評估一個人口和 DStDev 函數來評估一個人口樣本。

例如,您可以在模組中使用 DStDev 函數來計算一組學生測驗分數的標準差。

語法

DStDev ( expr, domain [, criteria ])

DStDevP ( expr, domain [, criteria ])

DStDev 和 DStDevP函數具有這些引數:

引數

描述

expr

必要。 用來識別要找出標準差之數值欄位的運算式。 它可以是一 字串運算式 資料表或查詢中識別欄位的資料,或者可以是對該欄位資料執行計算的運算式。 在 expr 中,您可以加入資料表中的欄位名稱、表單上的控制項、常數或函數。 expr 可包含內建或使用者定義的函數,但不得是另一個網域彙總或 SQL 彙總函數。

domain

必要。 識別構成範圍之記錄集的字串運算式。 它可以是資料表名稱,或不需要參數之查詢的查詢名稱。

criteria

可省略。 用來限制執行 DStDevDStDevP 函數之資料範圍的字串運算式。 例如, 準則 通常相當於 SQL 運算式中的 WHERE 子句,不含 WHERE 一詞。 如果省略準則,DStDevDStDevP函數會針對整個網域評估expr。 準則中包含的任何 欄位 也必須是網域中的 欄位;否則 ,DStDev 和DStDevP 函數會返回 Null。

註解

如果域參照的記錄少於兩個,或少於兩個記錄符合準則,DStDev 和DStDevP函數會返回Null,表示無法計算標準差。

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

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

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

您可以在查詢的計算欄位運算式或查詢的更新到資料列使用 DStDevDStDevP 函數 更新查詢。

附註: 您可以在函數的計算欄位運算式中,使用 DStDevDStDevP 函數或 StDevStDevP 函數 合計查詢。 如果您使用 DStDev 或DStDevP 函數,值會先計算,再將資料分組。 如果您使用 StDevStDevP 函數,資料會先分組,然後再評估域運算式中的值。

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

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

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

提示    如果匯出 expr 之欄位的資料類型是數位,則 DStDev 和 DStDevP 函數會返回 Double 資料類型。 如果您在計算控制項中使用 DStDev 或 DStDevP 函數,在運算式中納入資料類型轉換函數以改善績效。

附註: 當您使用這些函數時,不會包含網域中記錄的未保存變更。 如果您希望DStDevDStDevP函數以變更的值為基礎,您必須先按一下資料標籤上的記錄下的儲存記錄、將焦點移動到另一個記錄,或是使用更新方法來儲存變更。

查詢範例

運算式

結果

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") ;

計算 "UnitPrice" 的標準差 (將 "ProductSales" 資料表 "unitprice" 大於 140 的資料視為樣本) ,並顯示 Expr1 中的結果。 同時計算「UnitPrice」的標準差 (將給定資料視為整個人口) 其中"單價"小於 140,並顯示在 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") ;

計算 "UnitPrice" 的標準差 (考慮從 "ProductSales" 資料表 "ProductSales" "unitprice" 大於 140 的資料做為樣本) ,並顯示 DstDev 中的結果。 也計算「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 & "'")

需要更多協助?

擴展您的技能
探索訓練
優先取得新功能
加入 Microsoft 測試人員

這項資訊有幫助嗎?

您對翻譯品質的滿意度為何?

會影響您使用體驗的因素為何?

是否還有其他的意見反應? (選填)

感謝您的意見反應!

×