我目前有一个数据集,其中包含日期列,小时列和销售列。
编辑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的计算更改为平均值。
答案 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
)
)
答案 1 :(得分:1)
@Joe提供的答案为我提供了上述信息。
我从这开始(名为Table3):
使用
添加了一个新列`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代码。
如果这对您有用,请选择他的答案。
否则,这是另一种可能对您有帮助的选择。我从上表开始并得出了这个:
以下是:
我添加了一个名为“序列”的新列,为我提供了一个记录日期和小时的序列计数:Sequence = FORMAT(Table3[Click_Date], "General Number")+(.1*Table3[dtClickHour])
我添加了一个名为“索引”的新列,因此我可以识别记录号:Index = COUNTROWS(FILTER(Table3,Table3[Sequence]<earlier(Table3[Sequence])))
我添加了一个名为“上次蛋糕点击次数”的新列,该列使用索引来确定要提取的值:Cake Clicks Last Hour = if(Table3[dtClickHour]=0, 0, sumx(FILTER(Table3,Table3[Index]=earlier(Table3[Index])-1),Table3[Cake Clicks]))