刷新数据时,SSAS(2008R2)和Excel筛选问题

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

用户使用正常的数据源方法通过MS Excel 2010连接到多维数据集。 比方说,他们创build了一个非常简单的数据透视表…行上的帐户和列上的月份,每个帐户都有一个度量给我们的总价值。 在用户创build报表时,在立方体(Jan> Nov)中有11个月的数据可用,所以数据透视表在Excel中反映了这一点。 用户在行上应用一些filter(比如说5)来select一些帐户。 用户然后将此文件保存到他的桌面上,并保留到多维数据集中的Decembers数据可用。 十二月在我们身边,我们刷新立方体,现在它也包含了十二月份的数据。 用户重新打开Excel文件并右键点击数据透视表并刷新数据,期望看到所选五个账户的全年数据,但事实并非如此。 实际情况是,所有前面的数据都丢失了,数据透视表是完全空白的。 任何人都可以帮助为什么这是发生和潜在的解决scheme?

我脑海中有一个想法,就是Excel使用一些唯一的标识符来存储正在过滤的帐户,而当多维数据集重新处理新的月份时,新的唯一ID将被分配给帐户,因此不会发生匹配。 必须有一个工作,否则所产生的每个报告实际上是一个扔掉的努力。 干杯!

在我的情况下,这确实是由可怕的多维数据集devise引起的:生成的MDX引用了一个ID,每次重build立方体时都会改变它:

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

我同意解决这个问题的最好方法是更改​​ETL。

PS我查看生成的MDX的方法(感谢Marco Russo )是通过select数据透视表,然后运行这个macros(打开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