在 Excel Powerpivot 中使用 CUBEMEMBER 获取更高级别的元素

Get higher-level element with CUBEMEMBER in Excel Powerpivot

我有一个会计科目表,根据对数据库 table 的 SQL 查询加载到 PowerPivot 中;连接名为 "ThisWorkbookDataModel",PowerPivot 中的 table 名为 [Accounts]。

会计科目表的结构如下:

例如:

我希望能够通过简单地动态指定代码提取组、类别和描述

例如,假设单元格 D1 记录帐户代码 1001,则公式:

CUBEMEMBER("ThisWorkbookDataModel","[Accounts].[Account Code].&["&D1&"]") 

会 return “1001”。这很好,但是我不能 "up the line" 从帐户代码中导出帐户描述、类别和组。

你能帮忙吗?

首先将 4 个字段添加到 Power Pivot 加载项的层次结构中 window,如 here 所述。

然后您可以使用 .Parent 轻松向上导航层次结构,如下所示:

CUBEMEMBER("ThisWorkbookDataModel","[Accounts].[Hierarchy Name].[Account Code].&["&D1&"].Parent") 

请注意,您应该将层次结构名称替换为新层次结构的名称。

在帐户上使用层次结构table(Greg 指出):

  • 提取账户名称(基于账户代码):

CUBEMEMBER("ThisWorkbookDataModel",[账户].[GLAccount].[账户代码].&["&$D1&"].Parent")

  • 提取账户类别(基于账户描述):

CUBEMEMBER("ThisWorkbookDataModel",[账户].[GLAccount].[账户描述].&["&$E1&"].Parent")

  • 提取帐户组(基于帐户类别):

CUBEMEMBER("ThisWorkbookDataModel","[帐户].[GLAccount].[类别].&["&$C1&"].Parent")

其中:

  • GLAccount 是层次结构的名称;
  • 单元格 D1 托管帐户代码
  • 单元格 E1 托管帐户说明;
  • 单元格 C1 托管帐户类别

很好很简单。非常感谢!