Powerbi 如何使用Power查询编辑器按ID删除较旧的行而不更改上一行

Powerbi 如何使用Power查询编辑器按ID删除较旧的行而不更改上一行,powerbi,powerquery,Powerbi,Powerquery,我有一个包含三列的表:ID、Score和Date Current Data |---------------------|------------------|------------------| | ID | Score | Date | |---------------------|------------------|------------------| | 123

我有一个包含三列的表:
ID
Score
Date

     Current Data
|---------------------|------------------|------------------|
|          ID         |       Score      |       Date       |
|---------------------|------------------|------------------|
|          123        |         3        |       05/01      |
|---------------------|------------------|------------------|
|          123        |         2        |       04/25      |
|---------------------|------------------|------------------|
|          123        |         2        |       04/20      |
|---------------------|------------------|------------------|
|          123        |         1        |       04/15      |
|---------------------|------------------|------------------|
|          123        |         2        |       04/10      |
|---------------------|------------------|------------------|
|          123        |         1        |       04/05      |
|---------------------|------------------|------------------|
|          456        |         6        |       04/30      |
|---------------------|------------------|------------------|
|          456        |         5        |       04/20      |
|---------------------|------------------|------------------|
|          456        |         4        |       04/10      |
|---------------------|------------------|------------------|
|          456        |         4        |       04/05      |
|---------------------|------------------|------------------|
|          456        |         6        |       04/01      |
|---------------------|------------------|------------------|
我试图只显示ID值已更改的行。我认为当值从
1
2
1
2
(我想显示所有四行/值,但它只显示最新的
1
2
)时,使用“删除重复项”会走得太远并将其排除在外


任何帮助都将不胜感激。谢谢

听起来您试图做的是标记排序列表中的所有行,其中[ID=上一行ID]和[Score=上一行Score]

添加索引,然后使用

= #"PreviousStepName"{[Index]-1}[ColumnName]
使用此代码创建if/then公式来标记要删除的,然后删除它们的代码

let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Date", type date}}),
#"Sorted Rows" = Table.Sort(#"Changed Type" ,{{"ID", Order.Ascending}, {"Date", Order.Descending}}),
#"Added Index" = Table.AddIndexColumn(#"Sorted Rows" , "Index", 0, 1),
#"Added Custom" = Table.AddColumn(#"Added Index" , "Custom", each if [Index]=0 then null else if [ID] = #"Sorted Rows"{[Index]-1}[ID] and [Score] = #"Sorted Rows"{[Index]-1}[Score] then "remove" else null),
#"Filtered Rows" = Table.SelectRows(#"Added Custom", each ([Custom] = null)),
#"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"Index", "Custom"})
in #"Removed Columns"

编辑以交换每条评论的排序和索引行

这对我来说很有效,但我需要交换索引和排序
let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Date", type date}}),
#"Sorted Rows" = Table.Sort(#"Changed Type" ,{{"ID", Order.Ascending}, {"Date", Order.Descending}}),
#"Added Index" = Table.AddIndexColumn(#"Sorted Rows" , "Index", 0, 1),
#"Added Custom" = Table.AddColumn(#"Added Index" , "Custom", each if [Index]=0 then null else if [ID] = #"Sorted Rows"{[Index]-1}[ID] and [Score] = #"Sorted Rows"{[Index]-1}[Score] then "remove" else null),
#"Filtered Rows" = Table.SelectRows(#"Added Custom", each ([Custom] = null)),
#"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"Index", "Custom"})
in #"Removed Columns"