欢迎光临散文网 会员登陆 & 注册

将Excel Power Pivot模型数据取值到单元格中

2023-04-21 08:43 作者:wujunmin  | 我要投稿

在Excel中,使用Power Pivot搭建的模型通常用透视表展现结果,如下图所示。

除了透视表,还可以是表格样式:



在《将透视表伪装成表格的两种方式》这篇文章中,我讲解了如何制作表格样式的透视表。


无论是表格还是透视表展现,都不够灵活。本文介绍一个更加天马行空的方式:CUBEVALUE函数输出模型结果,取值到单元格中。感谢微博枫雨2020网友的分享。



该函数语法如下:

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

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

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

微软官网

那么如何使用呢?我们以一个有三个数据源的销售模型为例。


1.取单个模型中的数值


假设需要获取姓名为胡大花的销售额,任意单元格输入以下公式:

=CUBEVALUE("ThisWorkbookDataModel","[销售员].[销售员].[胡大花]","[Measures].[M_销售额]")

分步对该公式进行讲解。


输入CUBEVALUE函数后,第一个参数先输入双引号,会自动弹出“本工作簿模型”,选择该模型。


第二个参数再次输入双引号,会提示选择表格或者度量值,此处我们需要提取销售员表中的姓名,因此选择销售员表。


选择销售员表后,输入一个".",弹出该表中的所有列,选择销售员列。


再次输入一个".",弹出ALL,即默认数据是所有销售员,此处我们将ALL手工更改为胡大花。


最后一个参数选择度量值中的销售额。

这样,胡大花的业绩体现在了单元格中。这个公式的内容全部来自模型,那么如何与单元格内容互动?比方如下B30单元格是胡大花,B31是完颜朵。


2.与单元格互动取值


与单元格互动,需要将上述公式中的[胡大花]更改为单元格位置。如C30单元格公式为:

=CUBEVALUE("ThisWorkbookDataModel","[销售员].[销售员].["&B30&"]","[Measures].[M_销售目标]")


本案例只使用了一个条件对值进行计算,即销售业员姓名,如果有多个条件也可逗号隔开并列书写公式。这种方法特别适合复杂报表格式的自动化,例如各种合并单元格,各种表头层级:



除了CUBEVALUE,CUBE家族还有其他函数,读者可以自行体验。


将Excel Power Pivot模型数据取值到单元格中的评论 (共 条)

分享到微博请遵守国家法律