【发布时间】:2017-01-12 00:05:44
【问题描述】:
我正在尝试生成一个 Excel 数据透视表,它根据用户指定的值(例如 InvoiceYear)显示和比较销售代表的收入数据。
此数据来自 SSAS 多维数据集,我已使用 PowerPivot 连接到它。我在数据模型中有来自多维数据集的列,我正在尝试在“表属性”窗口中编辑 MDX 代码以创建一些新列。
到目前为止,这有效,但 InvoiceYear 值目前被硬编码为“2010”。我需要一种方法让此代码接受用户在 Excel 工作表本身中输入到单元格中的值。
我只是这方面的初学者,所以我不知道这是否可能。
如果这种方法是不可能的,我真的需要找到另一种方法来做到这一点。每当单元格通过宏或 vba 发生更改时,从另一边来并刷新列?其他解决方案?
这是我在“编辑表属性”窗口中的内容。这可以正常工作,但我不能像那样硬编码年份值,否则用户显然无法指定自定义年份值。我已经尝试了所有我能想到的方法来引用工作表中的单元格,但该列通常只是空的,没有错误。
WITH MEMBER RentalSales AS
CASE when [SalesRep_Dim].[InvoiceYear].currentmember.membervalue = '2010' then [Measures].[LineAmountMST] else 0 end
SELECT NON EMPTY { Measures.RentalSales, [Measures].[LineAmountMST] } ON COLUMNS,
NON EMPTY { ([SalesRep_Dim].[InvoiceMonth].[InvoiceMonth].ALLMEMBERS * [SalesRep_Dim].[InvoiceYear].[InvoiceYear].ALLMEMBERS * [SalesRep_Dim].[SaleRep].[SaleRep].ALLMEMBERS * [SalesRep_Dim].[ItemGroup].[ItemGroup].ALLMEMBERS * [SalesRep_Dim].[Site].[Site].ALLMEMBERS * [SalesRep_Dim].[Source].[Source].ALLMEMBERS * [SalesRep_Dim].[Type].[Type].ALLMEMBERS ) } DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS
FROM ( SELECT ( -{ [SalesRep_Dim].[InvoiceMonth].&[]&[0], [SalesRep_Dim].[InvoiceMonth].[All].UNKNOWNMEMBER } ) ON COLUMNS FROM [GMFSalesTransRepRevenue]) CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS
【问题讨论】:
标签: ssas mdx excel-2013 cube