Applies ToMicrosoft 365 专属 Excel Microsoft 365 Mac 版专属 Excel Excel 网页版 Excel 2024 Excel 2024 for Mac Excel 2021 Excel 2021 for Mac Excel 2019 Excel 2019 for Mac Excel 2016 Excel for iPad Excel Web App Excel for iPhone Excel for Android 平板电脑版 Excel for Android 手机版

本文介绍 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)

需要更多帮助?

需要更多选项?

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

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