Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel formula 最终用户创建查询SSAS多维数据集的报告时,哪种方法最灵活?_Excel Formula_Report_Ssas_Olap Cube - Fatal编程技术网

Excel formula 最终用户创建查询SSAS多维数据集的报告时,哪种方法最灵活?

Excel formula 最终用户创建查询SSAS多维数据集的报告时,哪种方法最灵活?,excel-formula,report,ssas,olap-cube,Excel Formula,Report,Ssas,Olap Cube,我知道您可以通过从Excel连接到分析数据库,并使用cubevalue()或cubemember()等公式来查询多维数据集 我还知道,在将power pivot转换为公式后,您只能通过编写文本来访问属性和相关值 示例:用于分支维度,而不是写入 cubemember("connections";"[DimBranch].[Name].[All].[London])" ) 您只能在单元格中写入“伦敦”。但是,如果您有一个父子维度,并且希望检索其中一个中间级别的金额,那么这将不起作用 有人知道如何避

我知道您可以通过从Excel连接到分析数据库,并使用
cubevalue()
cubemember()
等公式来查询多维数据集

我还知道,在将power pivot转换为公式后,您只能通过编写文本来访问属性和相关值

示例:用于分支维度,而不是写入

cubemember("connections";"[DimBranch].[Name].[All].[London])" )
您只能在单元格中写入“伦敦”。但是,如果您有一个父子维度,并且希望检索其中一个中间级别的金额,那么这将不起作用


有人知道如何避免最终用户直接编写这些公式吗

我已经做过好几次了。我可以描述我过去使用的方法

您需要定义来自用户的输入,例如会计年度、会计期间等,。。。并为此创建一个具有友好布局的选项卡

然后,根据要查询的多维数据集创建数据透视,并提取所需的数据(很明显,这些数据透视将引用会计年度和会计期间)。为这些轴定义所需的布局(根据需要显示)。完成此操作后,需要将这些轴(包括参数)转换为公式。您将看到,放置在度量框中的值包含一个cubevalue公式,该公式引用连接本身和几个cubeMember。这也为该措施提供了参考

现在最棘手的部分来了,当您需要修改cubemember函数以从输入中获取值时,比如cubemember(“连接”;“[dimbrack].[Name].[All].“+MyReferenceCell+”),您可以从用户输入的值中获取维度

事实上,如果有多个引用通用尺寸标注的数据透视,则需要将该引用设置为受用户输入影响的此修改的立方体成员单元格,否则必须修改转换为公式的数据透视中所有受影响的立方体成员

这有一个非常好的优点:根据excel的版本,如果您在不点击全部刷新按钮的情况下更改用户输入单元格中的值,则会自动重新计算所有轴

另一方面,当excel中的报表包含一个维度的值列表时,缺点就出现了。在将数据透视转换为公式后,这些维度的新值将丢失。这就是为什么无论维度值是多少,如果数据透视中有总值,则始终可以放置控件的原因

我希望这有帮助


问候

谢谢!我将您的想法与我的场景相适应,并做了一些修改。我创建了另一个带有power pivot表的工作表,其中我只检索分支层次结构(所有父级和子级)。然后我将它们转换为公式。在原始工作表中,我创建了一个与转换的工作表相关的下拉列表,因此用户无需编写任何内容,只需从列表中进行选择。最后,所选值将用于cubevalue()公式。再次感谢您的想法!