DStDev 和 DStDevP 函数

可以使用 DStDevDStDevP 函数估算指定记录集内一组值的标准偏差, ( 域 ) 。 在 Visual Basic for Applications (VBA) 模块、 宏 、查询表达式或窗体或报表上的 计算控件 中,使用 DStDevDStDevP 函数。

使用 DStDevP 函数评估总体,使用 DStDev 函数评估总体样本。

例如,可以使用模块中的 DStDev 函数计算一组学生的测验分数的标准偏差。

语法

DStDev ( expr , domain [ ,criteria] )

DStDevP ( expr , domain [ ,criteria] )

DStDev 和 DStDevP函数具有以下参数:

参数

说明

expr

必需。 一个表达式,用于标识要计算其标准偏差的数字字段。 它可以是一 字符串表达式 或查询中标识字段的一个表达式,或者是对该字段中数据执行计算的表达式。 在 expr中,可以包括表中的字段名称、窗体上的控件、常量或函数。 如果 expr 包含函数,则它可以是内置函数或用户定义的函数,但不能是另一个域聚合或SQL函数。

必需。 一个字符串表达式,标识构成域的记录集。 它可以是不需要参数的查询的表名或查询名称。

条件

可选。 一个字符串表达式,用于限制执行 DStDev 或 DStDevP函数的数据范围。 例如, 条件 通常等效于 SQL 表达式中的 WHERE 子句,不带 WHERE 一词。 如果省略条件,DStDevDStDevP函数将针对整个域计算expr。 条件中包含的任何 字段 也必须是域中的 字段;否则 ,DStDevDStDevP 函数将返回 Null。

备注

如果域引用的记录少于两条,或者如果满足条件的记录少于两条,则DStDevDStDevP函数将返回Null,指示无法计算标准偏差。

无论是在宏、模块、查询表达式还是计算控件中使用 DStDevDStDevP 函数,都必须仔细构造 条件 参数,以确保正确计算该参数。

可以使用 DStDevDStDevP 函数在选择查询的"条件"行中指定条件。 例如,可以在"订单"表和"产品"表上创建查询,以显示运费超过平均值加上运费标准偏差的所有产品。 Freight 字段下方的"条件"行将包含以下表达式:

>(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 函数,数据类型表达式中包括一个转换函数以提高性能。

注意: 使用这些函数时,不会包含对域中记录的未保存更改。 如果希望DStDevDStDevP函数基于更改的值,必须先单击"数据"选项卡上的"记录"下的"保存记录",将焦点移动到另一条记录,或者使用Update方法保存更改。

查询示例

表达式

结果

SELECT DStDev ("unitprice"、"productSales"、"unitprice>140") AS Expr1, DStDevP ("单价","productSales","单价<140") AS Expr2 FROM productSales GROUP BY DStDev ("单价","productSales","单价>140") , DStDevP ("单价"、"产品销售"、"单价<140") ;

计算"单价"的标准偏差 (将给定数据视为样本) (来自"ProductSales"表,其中"单价"大于 140)并显示 Expr1 中的结果。 此外, (将给定数据视为整个总体) (其中"单价"小于 140)并会在 Expr2 中显示结果,计算"单价"值的标准偏差。

SELECT DStDev ("单价"、"productSales"、"unitprice>140") AS DstDev, DStDevP ("单价","productSales","单价<140") AS DstDevP FROM productSales GROUP BY DStDev ("单价","productSales","单价>140") , DStDevP ("单价"、"产品销售"、"单价<140") ;

计算"单价"标准偏差 (将给定数据视为样本) (来自"ProductSales"表,其中"单价"大于 140)并显示 DstDev 中的结果。 此外,将给定数据视为整个总体) 其中"单价"小于 140 时,计算"单价"值的标准偏差 (并显示 DstDevP 中的结果。

VBA 示例

注意: 以下示例演示了在 VBA Visual Basic for Applications (模块) 函数。 有关使用 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 预览体验计划