DAX之前非空日

时间:2016-07-15 07:12:59

标签: dax

很抱歉,如果我错过了类似的问题/答案。

基本上我试图在DAX中进行日常比较,但找不到一个很好的方法来获得之前非空日的测量。

我尝试了PREVIOUSDAY功能,但是当天数存在差距时,例如,如果Sat&太阳,结果不是我需要的

PreviousAmount = CALCULATE([Total $ Amount], PREVIOUSDAY('Fact'[Date]))

我能想到的是在日期维度中添加一个帮助列以指示先前的非空日期(即,如果日期是星期一,那么前一个非空日期将是前一个星期五)。然后我可以使用CALCULATE函数并按非空日期过滤。

但是,有没有办法在飞行中进行计算?提前谢谢。

下表应反映我想要实现的目标:



<table border="1">
    <th>Date</th><th>Amount</th><th>What I got</th><th>What I hope</th>
    <tr>
      <td>01/07/2016</td>
      <td>7983</td>
      <td></td>
      <td></td>
    </tr>
  <tr>
      <td>04/07/2016</td>
      <td>15933</td>
      <td></td>
      <td>7983</td>
    </tr>
  <tr>
  <tr>
      <td>05/07/2016</td>
      <td>38591</td>
      <td>15933</td>
      <td>15933</td>
    </tr>
  <tr>
      <td>06/07/2016</td>
      <td>7859</td>
      <td>38591</td>
    <td>38591</td>
    </tr>
  <tr>
      <td>07/07/2016</td>
      <td>3252</td>
      <td>7859</td>
    <td>7859</td>
    </tr>
  <tr>
      <td>07/07/2016</td>
      <td>9474</td>
      <td>3252</td>
    <td>3252</td>
    </tr>
</table>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

它可能不是最新的,但您可以创建一个计算列来存储前一天的值

PreviousDate =
CALCULATE (
    MAX ( [Date] ),
    FILTER ( AmountTable, AmountTable[Date] < EARLIER ( AmountTable[Date] ) )
)

然后为前一天的金额创建一个新的计算列

=
CALCULATE (
    SUM ( [Amount] ),
    FILTER (
        ALL ( AmountTable ),
        AmountTable[Date] = EARLIER ( AmountTable[PreviousDate] )
    )
)