这是最终用户创建查询 SSAS 多维数据集的报表的最灵活方法



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

我还知道,将电源枢轴转换为公式后,您只能通过编写文本来访问相关的属性和值。

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

cubemember("connections";"[DimBranch].[Name].[All].[London])" )

您只能在单元格中写入"London".但是,如果您有父子维度并希望检索其中一个中间级别的金额,则此操作不起作用。

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

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

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

之后,针对要使用所需数据提取进行查询的多维数据集创建数据透视表(请注意,这些透视表将指会计年度和期间)。为这些透视表定义所需的布局(如您所愿,则会显示它们)。完成此操作后,您需要将这些透视表(包括参数)转换为公式。您将看到放置在度量值框中的值包含一个公式 cubevalue,该公式引用连接本身和多个多维数据集成员。它也提到了该措施。

现在最棘手的部分是,当你需要修改你的cubemember函数以从输入中获取值时,比如cubemember("connections";"[暗淡分支]。[名称]。[全部]。["+MyReferenceCell+")" ),然后从用户输入的值中选取维度。

如果您实际上具有引用常见维度的服务器透视,则需要使引用此修改后的立方体成员单元格受用户输入的影响,否则您必须修改转换为公式的透视中所有受影响的多维数据集成员。

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

另一方面,当 excel 中的报表包含来自可以增长的维度的值列表时,就会出现缺点。将透视转换为公式后,维度的这些新值将丢失。这就是为什么无论维度值如何,如果透视表中具有总值,则始终可以放置控件。

我希望这有所帮助。

问候

最新更新