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 聚合函数。

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

条件

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

备注

如果引用的记录少于两个或两个以上的记录满足条件, 则DStDevDStDevP函数将返回Null, 表示不能计算标准偏差。

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

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

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

可以在查询的计算字段表达式中, 或在 更新查询 的 "更新到" 行中使用DStDevDStDevP函数。

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

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

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

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

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

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

查询示例

表达式

结果

选择 "DStDev" ("单价", "productSales", "单价>140") 作为表达式1、DStDevP ("单价", "productSales", "单价<140") 作为从 productSales GROUP BY DStDev ("单价", "productSales", "单价>140"), DStDevP ("单价", "productSales "," 单价<140 ");

计算表 "ProductSales" 中 "单价" (考虑以数据为样本) 的标准偏差, 其中 "单价" 大于140并在表达式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 的详细信息, 请在 "搜索" 旁边的下拉列表中选择 "开发人员引用", 然后在搜索框中输入一个或多个字词。

以下示例返回运往英国的订单的总体和总体抽样的标准偏差的估计值。 域是 "订单" 表。 条件参数将结果集的记录限制为 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 支持专员。

×