我正在处理 SSAS 2012 SP1 CU4 中的表格多维数据集。我有 3 个维度(申请、申请状态、日期)和 1 个事实(申请计数)。我的事实表是 requisitionKEY、RequisitionStatusKEY、SnapshotDateKey。
我已经计算了基本上得到给定期间的最后一个非空值(如半加法测量)的度量,无论它是年、月还是日期:
Openings:=CALCULATE(Sum('Requisition Counts'[NumberOfOpeningsQT]),
Filter('Date','Date'[DateKey] = Max('Requisition Counts'[SnapshotDateKEY])))
在您将“征用状态”加入其中之前,此方法效果很好。我在 2013 年的每一天都有每个申请的行。对于其中一个申请,前 6 个月的申请状态为待处理,然后从 7 月 1 日至今的所有数据上更改为已批准。当我总结 7 月份月份级别的申请的空缺数量时,用户会看到两行:7 月最后一个待处理日的空缺总和,以及 7 月最后一个空缺日的空缺总和。 7 月获批。
尽管总数为 2 是正确的,但我需要更改此计算,以便仅获得所选日期期间(已批准)的最新申请状态,并在数据透视表中的待批准行中显示 0 或空或空白。
申请状态表如下所示:
更新:这是我制作的 PowerPivot 模型的链接,其中包含一些清理过的数据,以帮助回答这个问题。这应该更好地解释表模式。NumberOfOpeningsQT 字段基本上是他们对该工作的空缺职位数量。有时是 1,有时是大于 1。它通常不会随时间变化,但我想它可以。我试图让开口计算给我想要的答案。我在那里扔了一些其他的计算,所以展示了我尝试过的一些有希望但我无法开始工作的东西。
您可以尝试以下计算:
重要的部分是为外部设置正确的过滤器上下文
CALCULATE
。使用
CALCULATETABLE
,我们定义了我们希望外部CALCULATE
考虑的特定行:所有申请的最后一个非空白快照日期(或对于特定申请,考虑到数据透视表上每个申请的上下文),而不管征用状态,使用该ALL
功能实现。该措施不能完全按照您的意愿工作;您说您希望Approved的总数为2。以
2013-11059
Power Pivot 模型的请购单为例,因为 2013-07-01 有 1 个 Approved 状态,2013-07-02 有另一个 Approved 状态,它只是考虑总计的最后一个状态,结果为 1。我还没有对此进行建模,但想到的是将另一个 FILTER() 添加到您的 CALCULATE() 范围中,例如: FILTER('Requisition Status', 'Requisition Status'[Key] = MAX(' FactRequisition'[RequisitionKey]))。我的想法是,添加它会过滤申请表以仅包含最新的申请——我假设申请不能从 Appoved 切换到 Pending Approval,这会导致这个问题......