使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

本文介绍 Microsoft Excel 中 CUBEVALUE 函数的公式语法和用法。

说明

从多维数据集中返回汇总值。

语法

CUBEVALUE(connection, [member_expression1], [member_expression2], …)

CUBEVALUE 函数语法具有以下参数:

  • Connection    必需。 一个表示多维数据集的连接名称的文本字符串。

  • Member_expression    可选。 多维表达式 (MDX) 的文本字符串,用来计算出多维数据集内的成员或元组。 另外,member_expression 可以是由 CUBESET 函数定义的集合。 使用 member_expression 作为切片器来定义要返回其汇总值的多维数据集部分。 如果 member_expression 中未指定度量值,则使用该多维数据集的默认度量值。

备注

  • 当 CUBEVALUE 函数求值时,它会在检索到所有数据之前在单元格中暂时显示“#GETTING_DATA…”消息。

  • 如果 member_expression 使用单元格引用,并且该单元格引用包含 CUBE 函数,则 member_expression 使用引用的单元格中的项目的 MDX 表达式,而不是显示在该引用的单元格中的值。

  • 如果连接名称不是存储在工作簿中的有效工作簿连接,则 CUBEVALUE 函数返回 #NAME? 错误值。 如果联机分析处理 (OLAP) 服务器未运行、不可用或返回错误消息,则 CUBEVALUE 函数返回 #NAME? 错误值。

  • 如果元组中至少有一个元素是无效的,则 CUBEVALUE 函数返回 #VALUE! 错误值。

  • 当遇到以下情况时,CUBEVALUE 函数返回错误值 #N/A:

    • member_expression 语法不正确。

    • member_expression 所指定的成员在多维数据集中不存在。

    • 元组无效,因为指定的值没有交集。 (同一层次结构中的多个元素可能会发生这种情况。)

    • 集合至少包含一个其维数与其他成员都不同的成员。

    • 如果在共享连接时在数据透视表中引用基于会话的对象(如计算成员或命名集),并且该数据透视表被删除或将数据透视表转换为公式,则 CUBEVALUE 可能会返回一个 #N/A 错误值。 (在“ 选项” 选项卡上的“ 工具 ”组中,单击“ OLAP 工具”,然后单击“ 转换为 Formulas”。)

问题:Null 值转换为零长度字符串

在 Excel 中,如果某个单元格没有数据(由于您从未更改它或已删除其内容),该单元格将包含一个空值。 在许多数据库系统中,空值被称为 Null 值。 空值或 Null 值的字面意思就是“没有值”。 但是,公式始终不会返回空字符串或 Null 值。 公式通常返回以下三种值中的一种:数值、文本值(可能是零长度字符串)或者错误值(如 #NUM! 或 #VALUE)。

如果公式中包含连接到联机分析处理 (OLAP) 数据库的 CUBEVALUE 函数,并且对此数据库的查询的结果为 Null 值,Excel 会将此 Null 值转换成一个零长度字符串,即使该公式本来将返回一个数值也是如此。 这会造成这样的情况:某个单元格区域中既包含数字又包含零长度字符串值,而这种情况会影响其他引用该单元格区域的公式的结果。 例如,如果 A1 和 A3 包含数值,而 A2 包含带有返回零长度字符串的 CUBEVALUE 函数的公式,则以下公式会返回 #VALUE! 错误:

=A1+A2+A3

为了防止发生这种情况,可以使用 ISTEXT 函数来测试是否存在零长度字符串,并使用 IF 函数将零长度字符串替换成 0(零),如下面的示例所示:

=IF(ISTEXT(A1),0,A1)+IF(ISTEXT(A2),0,A2)+IF(ISTEXT(A3),0,A3)

或者,如果 CUBEVALUE 函数计算结果为零长度字符串,则您还可以在返回 0 值的 IF 条件中嵌套 CUBEVALUE 函数,如下面的示例所示:

=IF (CUBEVALUE("Sales","[Measures].[Profit]","[Time].[2004]","[All Product].[Beverages]")="", 0, CUBEVALUE("Sales","[Measures].[Profit]","[Time].[2004]","[All Product].[Beverages]"))

请注意,SUM 函数不需要进行这样的零长度字符串测试,因为它在计算返回值时将自动忽略零长度字符串。

示例

=CUBEVALUE("Sales","[Measures].[Profit]","[Time].[2004]","[All Product].[Beverages]")

=CUBEVALUE($A$1,"[Measures].[Profit]",D$12,$A23)

=CUBEVALUE("Sales",$B$7,D$12,$A23)

需要更多帮助?

需要更多选项?

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

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

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?
按“提交”即表示你的反馈将用于改进 Microsoft 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×