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)")
希望有人能提供帮助,我是 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)")