查找具有相同ID(Power BI)的上一小时值

我需要创建一个新列来标识相同ID的最后一个小时行,但不能丢失其他具有相同ID的行。

你能帮我吗?!

谢谢!

当前数据:

ID      Date    Hour
1562    13Oct   11:00
1562    13Oct   15:00
1562    13Oct   22:00

所需结果:

ID      Date    Hour    What I Need (new column)
1562    13Oct   11:00   0
1562    13Oct   15:00   0
1562    13Oct   22:00   1
loveb123 回答:查找具有相同ID(Power BI)的上一小时值

提供此数据:

ID      Date        Hour
1562    2019-10-13  11:00
1562    2019-10-13  15:00
1562    2019-10-13  22:00
1563    2019-10-13  15:00
1563    2019-10-13  22:00
1562    2019-10-14  11:00

您可以按照以下步骤创建它:

ID      Date        Hour    Max_Row
1562    2019-10-13  11:00   0
1562    2019-10-13  15:00   0
1562    2019-10-13  22:00   1
1563    2019-10-13  15:00   0
1563    2019-10-13  22:00   1
1562    2019-10-14  11:00   1
  1. IDDate分组,添加两个名为All_Rows的新列 使用所有行操作,而Max_H使用最大操作 小时。
  2. 展开All_Rows的所有行。
  3. 添加一个条件列IF Max_H = all_rows.Hour THEN 1 ELSE 0
  4. 删除不需要的列。

所有操作都使用用户界面完成,但是代码如下:

let
    Source = Table.FromRows(// code genereted from pasting above values //)

    #"Grouped Rows" = Table.Group(#"Changed Type",{"ID","Date"},{{"All_Rows",each _,type table [ID=number,Date=date,Hour=time]},{"Max_H",each List.Max([Hour]),type time}}),#"Expanded All_Rows" = Table.ExpandTableColumn(#"Grouped Rows","All_Rows","Date","Hour"},{"All_Rows.ID","All_Rows.Date","All_Rows.Hour"}),#"Added Conditional Column" = Table.AddColumn(#"Expanded All_Rows","Max_Row",each if [All_Rows.Hour] = [Max_H] then 1 else 0),#"Removed Columns" = Table.RemoveColumns(#"Added Conditional Column",{"All_Rows.Date","All_Rows.ID","Max_H"})
in
    #"Removed Columns"

请注意,最大值是同时为IDDate计算的,但是我想您可以弄清楚如果只想为ID做该怎么办。

本文链接:https://www.f2er.com/3103658.html

大家都在问