Power BI 中的小时计算

Hour over Hour calculation in Power BI

我目前有一个数据集,其中包含日期列、小时列和销售列。

编辑 2:我添加了一个带有附加列的示例数据集 https://ufile.io/dq2av

date | Hour | Sales

1/1    1      1

1/1    2      2

1/1    3      3

我想做的是一个计算字段,所以它更像是

date | Hour | Sales | Last Hour
1/1    1      1       0

1/1    2      2       1

1/1    3      3       2

有没有人有这方面的经验?

更新 #4:在 Joe 和 Marc 的共同帮助下,我已经解决了这个问题。 我创建了序列列

Sequence = FORMAT(Sheet1[Click_Date], "General Number")+(.1*Sheet1[dtClickHour])

仅供参考 - 如果您有大量记录,请将 .1 扩展为 .00001,因为它会在序列中四舍五入为整数

索引

Index = RANKX(Sheet1, Sheet1[Sequence],,ASC,DENSE)

上一小时蛋糕点击次数

Cake Clicks Last Hour = if(Sheet1[dtClickHour]=0, 0, SUMX(FILTER(Sheet1,Sheet1[Index]=earlier(Sheet1[Index])-1),Sheet1[Cake Clicks]))

我可以从这里开始的唯一额外步骤是将 Cake Click Last Hours 的计算更改为平均值。

根据附加信息更新了公式。

要将上一小时的点击次数放入当前小时的行中,请使用此公式添加一个新列。

Cake Clicks Last Hour = CALCULATE(
    IF(ISBLANK(SUM(Clicks[Cake Clicks])), 0, SUM(Clicks[Cake Clicks])),
    FILTER(Clicks,
        Clicks[Click_Date] = EARLIER(Clicks[Click_Date]) &&
        Clicks[dtClickHour] = EARLIER(Clicks[dtClickHour]) - 1
    )
)

@Joe 提供的答案与您的上述信息对我有用。

我从这个开始(名为表 3):

并使用

添加了一个新列
`Cake Clicks Last Hour = CALCULATE(
IF(ISBLANK(MAX(Table3[Cake Clicks])), 0, MAX(Table3[Cake Clicks])),
FILTER(Table3,
    Table3[Click_Date] = EARLIER(Table3[Click_Date]) &&
    Table3[dtClickHour] = EARLIER(Table3[dtClickHour]) - 1
)
)`

...这是用您的最新信息(例如,您的专栏名称)编辑的 Joe 的代码。

如果适合你,请select他的回答。

否则,这是另一种可能对您有帮助的选择。我从上面的 table 开始并得出这个:

方法如下:

  1. 我添加了一个名为 "Sequence" 的新列,为我提供了一个包含日期和时间的序列计数:Sequence = FORMAT(Table3[Click_Date], "General Number")+(.1*Table3[dtClickHour])

  2. 我添加了一个名为 "Index" 的新列,这样我就有了一些东西来识别记录号:Index = COUNTROWS(FILTER(Table3,Table3[Sequence]<earlier(Table3[Sequence])))

  3. 我添加了一个名为 "Cake Clicks Last Hour" 的新列,它使用索引来确定要提取的值:Cake Clicks Last Hour = if(Table3[dtClickHour]=0, 0, sumx(FILTER(Table3,Table3[Index]=earlier(Table3[Index])-1),Table3[Cake Clicks]))