我无法摆脱以下MDX输出查询中的空行。 我显示了某个维度的最近12个月的收入,其层次结构中有4个级别。 我正在根据where语句中的其他维度过滤此输出。
我已尝试过NON EMPTY
,NonEmpty()
,FILTER
等,但我无法让它发挥作用。
WITH
MEMBER [Measures].[Member Full Path] AS
[Revenuedim].CurrentMember.UniqueName
MEMBER [Measures].[Member Ordinal] AS
[Revenuedim].CurrentMember.Ordinal
SELECT
NON EMPTY
Hierarchize
(
Union
(
CrossJoin
(
[Measures].[BeaconAmount_USD]
,LastPeriods
(12
,[Date.YQM].LastChild.LastChild.LastChild
)
)
,CrossJoin
(
{
[Measures].[Member Ordinal]
,[Measures].[Member Full Path]
}
,[Date.YQM].[2018]
)
)
,POST
) ON COLUMNS
,NON EMPTY
Order
(
ToggleDrillState
(
ToggleDrillState
(
ToggleDrillState
(
ToggleDrillState
(
{[Revenuedim].[All CPs]}
,{}
)
,{}
)
,{}
)
,{}
)
,[Measures].[BeaconAmount_USD]
,DESC
) ON ROWS
FROM [Revenue_CP]
WHERE
[Revenuedim_SOB].[TCS BPO Chile S.A.];
答案 0 :(得分:1)
您可以尝试在自定义指标中添加条件:
Sub HourAllocationsRegs()
Dim StartRow As Integer
Dim EndRow As Integer
Dim lngLastRow As Long
Dim strMyValue As String
strMyValue = "Employee" 'Value to search for, change as required.
Sheets("Regs").Select
lngLastRow = Cells(Rows.Count, "A").End(xlUp).Row 'Search Column A, change as required.
For i = 2 To lRow Step K - i 'Starts on Row 7 and will jump to the next group according to row of next value
StartRow = i
For K = i + 1 To 100 Step 1
If InStr(1, (Range("A" & i + 1).Value), strMyValue) > 0 Then
EndRow = K
Exit For
End If
Next
Rows(Str(StartRow) & ":" & Str(EndRow)).Select
Selection.Copy
Sheets(Range("C" & Str(StartRow + 2)).Text).Select
Range("A1048576").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
Next
End Sub
所以WITH
MEMBER [Measures].[Member Full Path] AS
[Revenuedim].CurrentMember.UniqueName
MEMBER [Measures].[Member Ordinal] AS
[Revenuedim].CurrentMember.Ordinal
...
...
基于元组,例如([Revenuedim] .CurrentMember,[Date.YQM]。[2018])可能会这样做:
IIF
答案 1 :(得分:0)
终于找到了我需要的东西......
WITH
MEMBER [Date.YQM].[Last12M] AS
Aggregate(
Tail([Date.YQM].[Month].Members,12) )
MEMBER [Measures].[Member Full Path] AS
IIF(
isEmpty ([Revenuedim].CurrentMember * [Date.YQM].[2017] * [Measures].[BeaconAmount_USD] * [Revenuedim_SOB].[TCS BPO Chile S.A.])
,NULL
,[Revenuedim].CurrentMember.UniqueName
)
MEMBER [Measures].[Member Ordinal] AS
IIF(
isEmpty( [Revenuedim].CurrentMember * [Date.YQM].[2017] * [Measures].[BeaconAmount_USD] * [Revenuedim_SOB].[TCS BPO Chile S.A.])
,NULL
,[Revenuedim].CurrentMember.Ordinal
)
SELECT
NON EMPTY
Hierarchize(
Union(
Crossjoin( [Measures].[BeaconAmount_USD] ,
LastPeriods(12,[Date.YQM].lastChild.lastChild.lastChild)
)
,
Crossjoin({[Measures].[Member Ordinal], [Measures].[Member Full Path]}, [Date.YQM].[Last12M] )
)
,POST) ON COLUMNS,
NON EMPTY
ORDER(
TOGGLEDRILLSTATE(
TOGGLEDRILLSTATE(
TOGGLEDRILLSTATE(
TOGGLEDRILLSTATE(
{[Revenuedim].[All CPs]},
{[Revenuedim].[All CPs]}
)
, {}
), {}
), {}
)
,[Measures].[BeaconAmount_USD],
DESC)
ON ROWS from [Revenue_CP]
where [Revenuedim_SOB].[TCS BPO Chile S.A.]