MDX/立方体成员/Excel

MDX / Cubemember / Excel

希望有人能提供帮助,我是 MDX 的新手,正在尝试创建一个 excel 模板,该模板将自动更新。

我有一个基本的多维数据集设置,我创建了一个枢轴 table 并更改了枢轴以显示公式,然后我将公式从 A1 等更新为成员名称,以便它们可以移动到 excel 中的另一个选项卡。

A2 =CUBEMEMBER("cubeconnection","[Data Date].[Working Day In Quarter].&[64]")

B2 =CUBEMEMBER("cubeconnection",{"[Data Date].[Working Day In Quarter].&[64]","[Data Date].[Data Date].&[2018-12-31T00:00:00]"})

C2 =CUBEVALUE("cubeconnection","[Data Date].[Quarter Offset].&[1]","[Data Date].[Working Day In Quarter].&[64]","[Measures].[Closing Base]")

我希望能够将 B2 设置为动态的并且不包括参考 "[Data Date].[Data Date].&[2018-12-31T00:00:00]" 但仍然显示日期,因为下一个季度报告运行的日期不会 2018-12-31 但新日期。

有没有办法引用我的 workingdayinquarter 字段并带回 datadate 的成员?

看看下面的示例。它使用 vba 函数来获取任何四分之一的最后日期

select 

tail({
(
strtomember('[Dim Date].[Year].&['+cstr(datepart("yyyy",Now()))+ ']')
,
strtomember('[Dim Date].[Quarter].&['+cstr(datepart("q",Now()))+ ']')
,[Dim Date].[Date].[Date]
)
}
,1)
on columns
from cube

结果

您需要修改 tail 函数中的部分,并将其放入您的 excel 单元格

我认为您可以尝试 EXISTS 引用单元格 A2 而不是将其硬编码到 B2.

EXISTS 来自此处的示例:https://docs.microsoft.com/en-us/sql/mdx/exists-mdx?view=sql-server-2017

SELECT [Measures].[Internet Sales Amount] ON 0,  
EXISTS(  
[Customer].[Customer].[Customer].MEMBERS  
, {[Customer].[State-Province].&[CA]&[US]}  
) ON 1   
FROM [Adventure Works];

帮助了解 CUBE 函数的很酷的参考:https://powerpivotpro.com/2018/12/cube-functions-the-good-the-bad-and-how-to-make-them-great/

所以对于 B2,可以试试这个:

=CUBEMEMBER("cubeconnection","EXISTS( [Data Date].[Data Date].MEMBERS, {" & A2 & "}).ITEM(0).ITEM(0)")