您可以使用 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 & "'")

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Office Insiders

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?

Thank you for your feedback!

×