基于 strtomember 访问以前的成员

Accessing previous member based on strtomember

我创建了一个简单的命名集 [Latest],它使用前一天的日期。这按要求工作,并且可以被引用日期维度的任何度量使用:

CREATE DYNAMIC SET CURRENTCUBE.[Latest]
AS strtomember('[Date].[Date Key].&['+ 
vba!Format(DateAdd('d',-1,Now()),'yyyyMMdd')+']'); 

现在我需要返回一个额外的工作日,并将其显示为单独的计算。

日期维度仅填充业务日期,但也有一个 IsBusinessDay 属性。由于 'Latest' 计算使用 dateadd vba 函数,我不能简单地增加 dateadd 参数,因为日期中存在间隙(对于 holidays/weekends)(尽管我可以选择返回源代码视图并根据需要更改它)。

我能够在使用特定度量时实现创建工作计算,但我希望实现的是拥有一个可与 [=22= 一起使用的命名集计算]任何度量,而不是像这样硬编码到计算中:

CREATE MEMBER [TwoDaysBack] AS
( 
      [Date].[Date Key].currentmember.prevmember, 
      [Measures].[PL] 
    ) ;

非常感谢任何建议或指示。

据我了解,您的日期维度中只有工作日。因此,对于您的日期维度中的任何成员,Prevmember 将获得最后日期的前一天。如果是这种情况,您的初始命名集将稍作更改即可使用。

CREATE DYNAMIC SET CURRENTCUBE.[Latest]
AS strtomember('[Date].[Date Key].&['+ 
vba!Format(DateAdd('d',-1,Now()),'yyyyMMdd')+']').prevmember;