我正在使用:SSAS版本2008和Excel版本2013
我从Excel连接到SSAS多维数据集,我有4个字段的日期维度(我有其他但我不在这种情况下使用它)。我创建了4个字段,以测试我能想到的所有可能情况:
DateKey:
日期:
DateStr0:
DateStr1:
过滤日期工作正常:
最初,在excel中,过滤日期不起作用。但是,在将维度类型更改为时间并将数据类型设置为日期后,如https://download.microsoft.com/download/7/d/f/7df964aa-08d9-4b65-b952-c9a529fa635b/Excel2007AnalysisServicesCubesPivotTables.docx中所述,过滤器工作正常,如图所示。
按日期分组无效:
我的日期维度中有层次结构,我可以根据层次结构进行分组,没问题。 但是用户习惯于预先构建excel的分组功能,并且他想使用它。 Excel,Group和ungroup的预构建函数似乎可用,如下图所示:
但是当用户点击“群组”时,Excel会将其分组,就好像它是一个字符串一样,这就是问题。用户希望使用数据透视表中提供的预构建分组功能进行分组。
我还发现 Power Pivot Table 不支持此excel分组功能。如果我理解的话,excel的这种预构建分组功能需要在运行时进行计算,如果你有数百万行,那就不是可行的解决方案。因此Power pivot表不支持excel的预构建分组功能,因此我们需要使用维度层次结构来进行分组。
但我没有使用Power Pivot表,我使用简单的数据透视表。所以我希望分组功能能够正常工作。
然后我尝试做简单的测试。我在excel中创建了一个简单的数据源。并将其用作我的Pivot表的源。然后分组工作正常。我能看到的唯一区别是(当双击Excel中的Measure值时),
对于我的简单测试的日期值,excel将其视为“日期”。
对于来自多维数据集的数据的日期值,excel将其视为 '一般'
所以,我不知道,我错过了什么拼图。
阿吉特
答案 0 :(得分:0)
经过进一步的研究,我得出的结论是既不可能,也不可能。原因是:
使用源表为普通数据的数据透视表
当我们使用数据源不是OLAP多维数据集的Pivot表时,excel负责创建和管理多维OLAP多维数据集(在内存中),并且excel具有创建OLAP多维数据集所需的所有数据。当我们在“日期”字段中单击组时,excel正在其多维数据集的维度中创建一个属性(请参阅它如何在数据透视表字段中添加新字段)。因此,分组日期' column在Pivot表中的工作方式工作,其源代码在普通数据中。在创建新属性之后,它就像是普通属性一样,我们可以将它用于切片和切块。
使用源表为OLAP多维数据集的数据透视表
当我们使用数据源为OLAP cube的Pivot表时,excel不负责创建或管理多维数据集。它没有创建OLAP多维数据集所需的所有数据,它只是获取它发送给OLAP的查询结果(这也是Excel在使用外部OLAP多维数据集时可以处理数十亿行的原因)。因此,当使用源为OLAB cube的Pivot表时,我们负责在我们的多维数据集中创建和管理这些属性/层次结构。
因此,我不能也不应该使用预先构建的' group' excel在日期列上的功能(当使用OLAP多维数据集作为我的数据源时)。
参考: http://excelcentral.com/excel2013/expert/lessons/06070-understand-olap-pivot-table-limitations.html