我正在尝试使用DAX在SSAS表格模型中创建计算列。我想要一个表上的动态索引列。表示在过滤表时索引从0开始。想象一下,你有一个像这样的表:
item index
apple 0
banana 1
celery 2
broccoli 3
如果我通常将表过滤到蔬菜,那么索引仍然是:
item index
celery 2
broccoli 3
但我希望它是
item index
celery 0
broccoli 1
到目前为止,我使用以下方法创建索引:(我正在索引日期维度表)
=CALCULATE(COUNT([Date])-1, ALL('DimDate'), FILTER(DimDate, [Date]<=EARLIER([Date])))
我尝试过使用ALLEXCEPT(),我尝试通过FIRSTNONBLANK获取索引的第一个值来创建一个Offset列,但还没有成功。
任何想法或帮助?
答案 0 :(得分:0)
您不能拥有动态计算列,因为计算列在设计时被评估和存储。因此,您必须使用度量来进行动态索引。下面是一种方法,使用ALLSELECTED和额外的解析来将空白显示为零。
=
IF (
ISBLANK (
CALCULATE (
COUNTROWS ( DimDate ),
FILTER ( ALLSELECTED ( DimDate ), DimDate[Date] < MAX ( DimDate[Date] ) )
)
),
0,
CALCULATE (
COUNTROWS ( DimDate ),
FILTER ( ALLSELECTED ( DimDate ), DimDate[Date] < MAX ( DimDate[Date] ) )
)
)