Applies ToMicrosoft 365 专属 Access Access 2024 Access 2021 Access 2019 Access 2016

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

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

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

语法

DStDev ( expr ,域 [, criteria] )

DStDevP ( expr 、域 [, criteria] )

DStDevDStDevP 函数具有以下参数:

参数

说明

expr

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

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

条件

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

备注

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

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

可以使用 DStDevDStDevP 函数在选择查询的“条件”行中指定条件。 例如,可以针对“订单”表和“产品”表创建查询,以显示货运成本高于平均值加上货运成本的标准偏差的所有产品。 “货运”字段下的“条件”行将包含以下表达式:

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

可以在查询的计算字段表达式或 更新查询 的“更新到”行中使用 DStDev 和 DStDevP 函数。

注意: 可以在 总计查询 的计算字段表达式中使用 DStDevDStDevP 函数或 StDev 和 StDevP 函数。 如果使用 DStDevDStDevP 函数,则会在对数据进行分组之前计算值。 如果使用 StDevStDevP 函数,则会在计算字段表达式中的值之前对数据进行分组。

如果需要指定条件来限制执行函数的数据范围,请在计算控件中使用 DStDev 和 DStDevP 函数。 例如,若要显示要寄送到加州的订单的标准偏差,请将文本框的 ControlSource 属性设置为以下表达式:

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

如果只想查找 域中所有记录的标准偏差,请使用 StDevStDevP 函数。

提示    如果派生 expr 的字段的数据类型为数字,则 DStDev 和 DStDevP 函数返回 Double 数据类型。 如果在计算控件中使用 DStDev 或 DStDevP 函数,请在表达式中包含数据类型转换函数以提高性能。

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

查询示例

Expression

结果

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”的标准偏差, (考虑给定数据作为示例) ,表“unitprice”大于 140,并在 Expr1 中显示结果。 还计算“UnitPrice”的标准偏差, (将给定数据视为整个总体) 其中“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”的示例) ,其中“unitprice”大于 140,并在 DstDev 中显示结果。 还计算“UnitPrice”的标准偏差 (将给定数据视为整个总体) ,其中“unitprice”小于 140,并在 DstDevP 中显示结果。

VBA 示例

注意: 以下示例演示了如何在 Visual Basic for Applications (VBA) 模块中使用此函数。 有关使用 VBA 的详细信息,请在搜索旁边的下拉列表中选择“开发人员参考”,并在搜索框中输入一个或多个术语。

以下示例返回总体标准偏差的估计值,以及运往英国的订单的总体样本。 域是 Orders 表。 criteria 参数将生成的记录集限制为 ShipCountryRegion 值为 UK 的记录集。

Dim dblX As DoubleDim 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 StringDim dblX As DoubleDim dblY As DoublestrCountryRegion = "UK"dblX = DStDev("[Freight]", "Orders", _    "[ShipCountryRegion] = '" & strCountryRegion & "'")dblY = DStDevP("[Freight]", "Orders", _    "[ShipCountryRegion] = '" & strCountryRegion & "'")

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。