Power Query (Excel) 中的子索引和边际差异

Power Query (Excel) 中的子索引和边际差异

我有这个数据集:

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]

意思是:参照“添加索引”步骤时的数据表,找到当前行高一行,返回[我的列]的值。

相关内容