首页 文章

DAX之前非空日

提问于
浏览
0

对不起,如果我错过了类似的问题/答案

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

我尝试了PREVIOUSDAY功能,但是当天数有差距时,如果周六和太阳没有销售,结果就不是我需要的了

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>

1 回答

  • 1

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

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

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

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

相关问题