SSAS(2008R2)&刷新数据时Excel过滤器问题

时间:2014-01-08 14:58:13

标签: sql-server excel ssas olap olap-cube

我们有一个2008 R2的实例,它运行大约6个立方体。我发现的情况如下。

用户使用常规数据源方法通过MS Excel 2010连接到多维数据集。 让我们说他们创建了一个非常简单的数据透视表...在行和帐户上的帐户带有度量的列的月份为我们提供每个帐户的总价值。在用户创建报告时,多维数据集中有11个月的数据可用(Jan> Nov),因此数据透视表在Excel中反映了这一点。用户已在该行上应用了一些过滤器(例如5)以选择某些特定帐户。然后,用户将此文件保存到他的桌面并保留,直到Decembers数据在多维数据集中可用。 12月即将到来,我们刷新了多维数据集,现在它也包含了Decembers数据。用户重新打开Excel文件并右键单击数据透视表并刷新数据,期望看到所选五个帐户的全年数据,但事实并非如此。实际上发生的是,之前存在的所有数据都将丢失,并且数据透视表完全空白。任何人都可以帮助解决这个问题的原因和潜在的解决方案吗?

我有一个想法,我认为Excel正在使用一些唯一标识符存储正在过滤的帐户,并且当新的月份重新处理多维数据集时,新的唯一ID被分配给帐户,因此不会发生匹配。必须要解决这个问题,否则生成的每个报告实际上都是一次性的努力。干杯!

1 个答案:

答案 0 :(得分:0)

在我的情况下,这确实是由糟糕的多维数据集设计引起的:生成的MDX引用了每次重建多维数据集时更改的ID:

WHERE [Log Author].[PM PRIMARYKEY].&[29872574],

我同意解决此问题的最佳方法是更改​​ETL。

PS我查看生成的MDX的方式(感谢Marco Russo)是选择枢轴然后运行此宏(打开VBA,粘贴它,点击F5):

Sub DisplayMDX()
    Dim mdxQuery As String
    Dim pvt As PivotTable
    Dim ws As Worksheet

    Set pvt = ActiveCell.PivotTable
    mdxQuery = pvt.MDX

    ' Add a new worksheet.
    Set ws = Worksheets.Add
    ws.Range("A1") = mdxQuery
End Sub