Power BI中的小时计算

时间:2017-08-18 18:31:50

标签: powerbi

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

编辑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的计算更改为平均值。

2 个答案:

答案 0 :(得分:1)

根据其他信息更新了公式。

要将最后一小时的点击数字输入当前小时的行,请添加一个包含此公式的新列。

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
    )
)

Results

答案 1 :(得分:1)

@Joe提供的答案为我提供了上述信息。

我从这开始(名为Table3):

enter image description here

使用

添加了一个新列
`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代码。

如果这对您有用,请选择他的答案。

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

enter image description here

以下是:

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

  2. 我添加了一个名为“索引”的新列,因此我可以识别记录号:Index = COUNTROWS(FILTER(Table3,Table3[Sequence]<earlier(Table3[Sequence])))

  3. 我添加了一个名为“上次蛋糕点击次数”的新列,该列使用索引来确定要提取的值:Cake Clicks Last Hour = if(Table3[dtClickHour]=0, 0, sumx(FILTER(Table3,Table3[Index]=earlier(Table3[Index])-1),Table3[Cake Clicks]))