DStDev、DStDevP 函數

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

使用DStDevP函數來評估總體與DStDev函數, 以評估總體樣本。

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

語法

DStDev ( expr , domain [, criteria] )

DStDevP ( expr , domain [, criteria] )

DStDevDStDevP函數具有下列引數:

引數

描述

expr

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

domain

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

criteria

可省略。 字串運算式, 用於限制執行DStDevDStDevP函數的資料範圍。 例如,準則通常相當於 SQL 運算式中的 WHERE 子句, 沒有這個字。 如果省略準則, DStDevDStDevP函數會針對整個網域評估expr 。 [準則] 中包含的任何欄位, 都必須是網域中的欄位;否則, DStDevDStDevP函數會傳回Null。

註解

如果網域所參照的記錄少於兩個, 或是兩個以上的記錄符合準則, DStDevDStDevP函數會傳回Null, 表示不能計算標準差。

不論您是在宏、模組、查詢運算式或計算控制項中使用DStDevDStDevP函數, 都必須仔細構造criteria引數, 以確保能夠正確地進行評估。

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

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

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

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

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

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

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

提示    如果從其衍生 expr 的欄位的資料類型是數位, DStDev 和 DStDevP 函數會傳回 Double 資料類型。 如果您在計算控制項中使用 DStDev 或 DStDevP 函數, 請在運算式中包含資料類型轉換函數, 以提升效能。

附註: 當您使用這些函數時, domain 中不會包含對domain記錄所做的未儲存變更。 如果您想要讓DStDevDStDevP函數根據變更的值而定, 您必須先按一下 [資料] 索引標籤上 [記錄] 底下的 [儲存記錄], 將焦點移到另一個記錄, 或使用Update方法。

查詢範例

運算式

結果

選取 [DStDev] ("單價", "productSales", "單價>140") 作為運算式1、""、"productSales"、"單價<140"), 做為從 productSales GROUP BY DStDev ("單價", "productSales", "單價>140"), DStDevP ("單價", "productSales "," 單價<140 ");

從資料表 "ProductSales" (在 [單價] 大於 140) 中計算「單價」的標準差 (假設資料為 sample), 並將結果顯示為運算式1。 此外, 也會計算 "單價" 的標準差 (考慮整個人口的指定資料), 其中 "單價" 小於 140, 並在運算式2中顯示結果。

選取 [DStDev ("單價]、" productSales "、" 單價>140 ") 作為 DstDev, DStDevP (" 單價 "," productSales "," 單價<140 ") 作為 DstDevP 來自 productSales GROUP BY DStDev (" 單價 "," productSales "," 單價>140 "), DStDevP (" 單價 ","productSales", "單價<140");

從資料表 "ProductSales" (在 [單價] 大於 140) 中計算「單價」的標準差 (考慮將資料視為樣本), 並將結果顯示為 DstDev。 此外, 也會計算 "單價" (在整個人口中考慮指定資料) 的標準差, 其中 "單價" 小於 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'")

下一個範例會在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 & "'")

附註:  本頁面是經由自動翻譯而成,因此文中可能有文法錯誤或不準確之處。 讓這些內容對您有所幫助是我們的目的。 告訴我們這項資訊是否有幫助? 這裡是供您參考的英文文章

增進您的 Office 技巧
探索訓練
優先取得新功能
加入 Office 測試人員

這項資訊有幫助嗎?

感謝您的意見反應!

感謝您的意見反應! 我們將協助您與我們的其中一個 Office 支援專員連絡以深入了解您的意見。

×