Excel 更正如下所示的列,其余步骤相同
以下是幕后的M代码,供您参考Excel 更正如下所示的列,其余步骤相同,excel,powerquery,m,Excel,Powerquery,M,以下是幕后的M代码,供您参考 let Source = Excel.CurrentWorkbook(){[Name="RawData"]}[Content], #"Filter [null]" = Table.SelectRows(Source, each [ID] <> null and [ID] <> ""), #"Remove [Duplicates]" = Table.Distinct(#"Filter [null]", {"ID"}),
let
Source = Excel.CurrentWorkbook(){[Name="RawData"]}[Content],
#"Filter [null]" = Table.SelectRows(Source, each [ID] <> null and [ID] <> ""),
#"Remove [Duplicates]" = Table.Distinct(#"Filter [null]", {"ID"}),
#"Unpivot [Table]" = Table.UnpivotOtherColumns(#"Remove [Duplicates]", {"ID"}, "Date", "TM"),
#"Detect Data Type" = Table.TransformColumnTypes(#"Unpivot [Table]",{{"ID", Int64.Type}, {"Date", type date}, {"TM", type text}}),
#"Group [Table]" = Table.Group(#"Detect Data Type", {"ID", "TM"}, {{"From", each List.Min([Date]), type date}, {"On", each List.Max([Date]), type date}}, GroupKind.Local),
#"Sorted Rows" = Table.Sort(#"Group [Table]",{{"ID", Order.Ascending}, {"From", Order.Ascending}}),
#"Added Index" = Table.AddIndexColumn(#"Sorted Rows", "Index", 0, 1),
#"Added Index1" = Table.AddIndexColumn(#"Added Index", "Index.1", 1, 1),
#"Merged Queries" = Table.NestedJoin(#"Added Index1", {"ID", "Index.1"}, #"Added Index1", {"ID", "Index"}, "Added Index1", JoinKind.LeftOuter),
#"Expanded Added Index1" = Table.ExpandTableColumn(#"Merged Queries", "Added Index1", {"From"}, {"Added Index1.From"}),
#"Added Custom" = Table.AddColumn(#"Expanded Added Index1", "To", each if [Added Index1.From]=null then [On] else Date.AddDays([Added Index1.From],-1)),
#"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"On","Index", "Index.1", "Added Index1.From"})
in
#"Removed Columns"
let
Source=Excel.CurrentWorkbook(){[Name=“RawData”]}[Content],
#“Filter[null]”=表。选择行(源、每个[ID]null和[ID]“”),
#“Remove[Duplicates]”=Table.Distinct(#“Filter[null]”,{“ID}),
#“Unpivot[Table]”=Table.UnpivotOtherColumns(#“Remove[Duplicates]”,{ID},Date,,“TM”),
#“检测数据类型”=表.TransformColumnTypes(#“Unpivot[Table]”,{{{“ID”,Int64.Type},{“Date”,Type Date},{“TM”,Type text}),
#“Group[Table]”=Table.Group(#“Detect Data Type”、{“ID”、“TM”}、{“From”、each List.Min([Date])、Type Date}、{“On”、each List.Max([Date])、Type Date}}、GroupKind.Local),
#“排序行”=表.Sort(#“组[表]”,{{“ID”,Order.升序},{“From”,Order.升序}),
#“添加的索引”=表.AddIndexColumn(#“排序行”,“索引”,0,1),
#“添加的索引1”=表AddIndexColumn(#“添加的索引”、“索引1”、1、1),
#“合并查询”=表.NestedJoin(#“Added Index1”、{“ID”、“Index.1”}、#“Added Index1”、{“ID”、“Index”}、“Added Index1”、JoinKind.LeftOuter),
#“Expanded Added Index1”=Table.ExpandTableColumn(#“合并查询”、“Added Index1”、{“From”}、{“Added Index1.From”}),
#“Added Custom”=Table.AddColumn(#“Expanded Added Index1”、“To”),如果[Added Index1.From]=null,则为[On]else Date.AddDays([Added Index1.From],-1)),
#“Removed Columns”=Table.RemoveColumns(#“Added Custom”、{“On”、“Index”、“Index.1”、“Added Index1.From”})
在里面
#“删除的列”
如果你有任何问题,请告诉我。干杯:)如何使用函数
Date.AddDays
?您可以通过添加负数的天数来减去天数。关于使用函数Date.AddDays
?您可以通过添加负数的天数来减去天数
+----+----------+----------+----------+
| ID | Name | From | To |
+----+----------+----------+----------+
| 00 | Darell | 12/29/14 | 01/05/15 |
| 00 | Kamala | 01/12/15 | ... |
| 01 | Jarrod | 12/29/14 | 12/29/14 |
| 01 | Annelle | 01/05/15 | 01/05/15 |
| 01 | Todd | 01/12/15 | .... |
| 04 | Lakeesha | 12/29/14 | 12/29/14 |
| 04 | Linn | 01/05/15 | .... |
| .. | ........ | .... | .... |
+----+----------+----------+----------+
let
Source = Excel.CurrentWorkbook(){[Name="RawData"]}[Content],
#"Unpivot [Table]" = Table.UnpivotOtherColumns(Source, {"ID"}, "Date", "Name"),
#"Group [Table]" = Table.Group(#"Unpivot [Table]", {"ID", "Name"}, {{"From", each List.Min([Date]), type date}, {"On", each List.Max([Date]), type date}}, GroupKind.Local)
in
#"Group [Table]"
+----+----------+----------+----------+
| ID | Name | From | To |
+----+----------+----------+----------+
| 00 | Darell | 12/29/14 | 01/11/15 |
| 00 | Kamala | 01/12/15 | .... |
| 01 | Jarrod | 12/29/14 | 01/04/15 |
| 01 | Annelle | 01/05/15 | 01/11/15 |
| 01 | Todd | 01/12/15 | .... |
| 04 | Lakeesha | 12/29/14 | 01/04/15 |
| 04 | Linn | 01/05/15 | .... |
| .. | ........ | .... | .... |
+----+----------+----------+----------+
Table.AddColumn(#"Calculate [To]", "Date", each { Number.From([From])..Number.From([To]) })
let
Source = Excel.CurrentWorkbook(){[Name="RawData"]}[Content],
#"Filter [null]" = Table.SelectRows(Source, each [ID] <> null and [ID] <> ""),
#"Remove [Duplicates]" = Table.Distinct(#"Filter [null]", {"ID"}),
#"Unpivot [Table]" = Table.UnpivotOtherColumns(#"Remove [Duplicates]", {"ID"}, "Date", "TM"),
#"Detect Data Type" = Table.TransformColumnTypes(#"Unpivot [Table]",{{"ID", Int64.Type}, {"Date", type date}, {"TM", type text}}),
#"Group [Table]" = Table.Group(#"Detect Data Type", {"ID", "TM"}, {{"From", each List.Min([Date]), type date}, {"On", each List.Max([Date]), type date}}, GroupKind.Local),
#"Sorted Rows" = Table.Sort(#"Group [Table]",{{"ID", Order.Ascending}, {"From", Order.Ascending}}),
#"Added Index" = Table.AddIndexColumn(#"Sorted Rows", "Index", 0, 1),
#"Added Index1" = Table.AddIndexColumn(#"Added Index", "Index.1", 1, 1),
#"Merged Queries" = Table.NestedJoin(#"Added Index1", {"ID", "Index.1"}, #"Added Index1", {"ID", "Index"}, "Added Index1", JoinKind.LeftOuter),
#"Expanded Added Index1" = Table.ExpandTableColumn(#"Merged Queries", "Added Index1", {"From"}, {"Added Index1.From"}),
#"Added Custom" = Table.AddColumn(#"Expanded Added Index1", "To", each if [Added Index1.From]=null then [On] else Date.AddDays([Added Index1.From],-1)),
#"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"On","Index", "Index.1", "Added Index1.From"})
in
#"Removed Columns"