Excel 中的多维数据集函数使用 Powerpivot 在工作表中显示特定行值

Cube function in Excel using Powerpivot to display specific row values in worksheet

这是一个高度专业化的问题,我已经在网上搜索过但没有找到答案,但运气不佳。我正在使用连接到 SQL 数据库的 Powerpivot 来创建本质上可以与 Web 应用程序进行比较的东西。我经常使用 cubevalue 函数来获取工作簿中与特定查询参数相关的总和和其他输出。我正在寻找一种方法来查询具有某个键值的行并输出数据库中同一行上的一些不同列的值。如果我只是从 sheet 到 sheet 并且数据不是很大以至于必须存储在 powerpivot 中,这基本上就像 vlookup 一样简单。

这是我正在看的内容。

鉴于对 applicantid 的查询,我想要 learner_id 的输出。

这是我希望能奏效的方法,但它给出了#N/A

=CUBEMEMBERPROPERTY("ThisWorkbookDataModel","[MasterStartQuery].[applicantid].[1119195]","[learner_id]")

任何见解将不胜感激,或者如果您认识可能知道的人。谢谢。

坏消息是 CUBEMEMBERPROPERTY() 不适用于 PowerPivot - http://www.mrexcel.com/forum/power-bi/730287-function-cubememberproperty-always-return-n.html

这不是解决此问题的唯一方法,如果我们谈论的是两个字段之间的简单、独特的一对一关系,那么您可以简单地创建一个度量 return learner_id例如类似于:

get_learner_id = MAX(MasterStartQuery[learner_id])

然后调用:

=CUBEVALUE("ThisWorkbookDataModel",
           CUBEMEMBER("ThisWorkbookDataModel","[MasterStartQuery].[applicantid].[1119195]"),
           CUBEMEMBER("ThisWorkbookDataModel","[Measures].[get_learner_id]")
           )

有更优雅的方式来构建这个......

这很简单,因为它是一个数字字段,基于文本的字段应该在 VALUES() 而不是 MAX() 中工作,但是如果你有多个结果(不是坏事),你会得到一个错误。