Excel 2013数据透视表,按照来自SQL Server Analysis Service 2008的date进行分组

我正在使用:SSAS版本2008和Excel版本2013

我从Excel连接到SSAS多维数据集,我有4个字段的date维度(我有其他但我不使用它的情况下)。 我创build了4个字段,以testing我能想到的所有可能的场景:

  1. DateKey:

    • types:System.Integer
    • 值:yyyyMMdd
  2. date:

    • types:System.DateTime
  3. DateStr0:

    • types:System.String
    • 价值:dd / MM / yyyy(注意:我没有使用美国文化)
    • 例如:01/11/2015
  4. DateStr1:

    • types:System.String
    • 价值:%d /%M / yyyy(注意:我没有使用美国文化)
    • 例如:1/11/2015

过滤date正常工作:

最初,在Excel中,过滤date不起作用。 但是,在将维度types更改为time并将DataType设置为Date之后(如https://download.microsoft.com/download/7/d/f/7df964aa-08d9-4b65-b952-c9a529fa635b/Excel2007AnalysisServicesCubesPivotTables.docx中所述 )工作正常,你可以在图片中看到。

日期过滤器工作正常

在date分组不工作:

我在date维度有层次结构,我可以基于层次结构,没有问题。 但是用户习惯于预先build立excel的分组function,他想要使用它。 Excel,Group和ungroup的预编译function似乎可用,如下图所示:

群组取消似乎显示正确

但是,当用户点击“组”时,Excel将它分组,就好像它是一个string,这就是问题所在。 用户想要使用数据透视表中可用的预构build分组函数进行分组。

我也发现Power Pivot Table不支持这个excel分组function。 如果我理解的很好,这个excel的预编译分组function需要在运行时进行计算,如果有数百万行,那么这是不可行的解决scheme。 因此,Power数据透视表不支持Excel的预先构build分组function,因此我们需要使用维度层次结构来进行分组。

但是我不使用Power Pivot表,我正在使用简单的数据透视表。 所以我期望分组function工作正常。

然后我试着做简单的testing。 我在Excel中创build了一个简单的数据源。 并将其用作我的数据透视表的来源。 然后分组工作正常。 我能看到的唯一区别是(当双击Excel中的度量值)时,

  1. 对于我的简单testing的date值,Excel将它们视为“date”。

  2. 对于来自多维数据集的数据的date值,Excel将它们视为“常规”

    • 但是这里的价值和简单的testing一样。
    • 'datefilter'工作得很好。
    • 如果我只是select这个单元格,并取消select,然后excel更改types为“date”,但该单元格。
    • 我在date维度中创build了4种不同types的字段,认为我的维度的属性值可能是问题,但是Excel对所有维度都考虑“常规”。
    • 这个值(当双击measure时可以看到)来自属性的“Name Column”。 而且定义的数据types是WChar。 我认为这可能是问题的原因。 我将其更改为“date”。 但SSAS不允许它更改为“date”给出错误:“date”数据types不被允许用于“NameColumn”属性; 应该使用'WChar'。

NameColumn必须是WChar

所以,我不知道,我错过了什么拼图。

  1. datefilter工作,组不起作用
  2. Excel将其视为“常规”string。
  3. SSAS不允许将“NameColumn”更改为“Date”。

你能咨询一下吗?

阿吉特

经过进一步的研究,我得出这样的结论:既不可能,也不可能。 原因是:

使用源数据为普通数据的数据透视表

当我们使用其数据源不是OLAP多维数据集的Pivot表格时,excel负责创build和pipe理多维OLAP多维数据集(在内存中),并且具有创buildOLAP多维数据集所需的所有数据。 当我们点击“date”字段中的组时,Excel正在创build其多维数据集的维度属性(请参阅如何在数据透视表字段中添加新字段)。 因此,在“date”列上的分组工作方式是在普通数据源中的数据透视表中工作。 创build新属性后,它就像是一个普通属性一样工作,我们可以使用它来进行切片和切片。

使用来源为OLAP Cube的数据透视表

当我们使用数据源是OLAP多维数据集的Pivot表时,excel不负责创build或pipe理多维数据集。 它不具有创buildOLAP多维数据集所需的全部数据,它只是获取发送给OLAP的查询的结果(这也是Excel与外部OLAP多维数据集一起处理数十亿行的原因)。 因此,在使用OLAB立方体来源的Pivot表格时,我们有责任在立方体中创build和pipe理这些属性/ heirarcies。

因此,我不能也不应该使用date列(当使用OLAP多维数据集作为我的数据源时)的预先构build的“组”function。

参考: http : //excelcentral.com/excel2013/expert/lessons/06070-understand-olap-pivot-table-limitations.html