我有这个数据集:
User Date Time
A 9/1/2019 8:00 AM
A 9/1/2019 10:00 AM
A 9/1/2019 4:00 PM
A 9/1/2019 5:00 PM
A 9/2/2019 8:00 AM
A 9/2/2019 5:00 PM
B 9/1/2019 9:00 AM
B 9/1/2019 3:00 PM
B 9/1/2019 5:00 PM
我要做的第一件事是在用户和日期上添加一个子索引。
User Date Time User/Date Index
A 9/1/2019 8:00 AM 1
A 9/1/2019 10:00 AM 2
A 9/1/2019 4:00 PM 3
A 9/1/2019 5:00 PM 4
A 9/2/2019 8:00 AM 1
A 9/2/2019 5:00 PM 2
B 9/1/2019 9:00 AM 1
B 9/1/2019 3:00 PM 2
B 9/1/2019 5:00 PM 3
我想要的第二件事是一列,它取其行 (A) 和其后一行 (A+1) 的时间差。“n/a”表示我并不真正关心这个值。我只想要日间边际差异。
User Date Time User/Date Index Marginal Difference
A 9/1/2019 8:00 AM 1 02:00:00
A 9/1/2019 10:00 AM 2 06:00:00
A 9/1/2019 4:00 PM 3 01:00:00
A 9/1/2019 5:00 PM 4 n/a
A 9/2/2019 8:00 AM 1 09:00:00
A 9/2/2019 5:00 PM 2 n/a
B 9/1/2019 9:00 AM 1 06:00:00
B 9/1/2019 3:00 PM 2 02:00:00
B 9/1/2019 5:00 PM 3 n/a
如何在 Excel 的 Power Query 中实现这一点?
答案1
这些要求都有些复杂。
首先,我建议您查看我的演示文件“Power Query 演示 - 运行总计和运行计数”。这是一个 Excel 文件,您可以从我的 OneDrive 演示文件夹中下载:
https://1drv.ms/f/s!AGLFDsG7h6JPgw4
您可以忽略累计总数,但累计计数等同于您的子索引要求。
要引用下一行,首先添加一个索引列(使用添加列功能区),然后您可以在计算列中使用此语法:
= #"Added Index"{[Index]+1}[My Column]
意思是:参照“添加索引”步骤时的数据表,找到当前行高一行,返回[我的列]的值。