使用 Power Query,应用筛选器以仅显示最高值
Posted
技术标签:
【中文标题】使用 Power Query,应用筛选器以仅显示最高值【英文标题】:Using Power Query, apply filter to show only highest values 【发布时间】:2021-02-11 18:28:51 【问题描述】:我试图只显示最新版本(下图中的又名 REV)。这些将永远是字母。我知道如何对它们进行排序,但我想丢弃较低的修订版。
【问题讨论】:
只需使用过滤器 问题是数据是动态的,最高版本会发生变化。我需要它来找到最高值并只允许它出现 哪一列有值?生态等级? 列“REV” 最高值是什么意思? 【参考方案1】:当使用字母字符而不是数字作为修订标记时,我认为问题是试图找出“最新”修订。假设字符越多,版本越高,并且 Z > A,那么这应该在 powerquery 中起作用
将数据加载到 powerquery 中(数据 .. 来自 ... [x] 的表用作标题)
添加列..自定义列...命名为 dupe,公式为:
= try Number.From( List.Accumulate(Text.ToList([REV]), "", (state, current)=> state&Number.ToText(Character.ToNumber(current), "0"))) otherwise null
这会将文本 REV 转换为数字。
使用 dupe 列顶部的箭头来过滤 [x] 以获取单个值。在公式栏中编辑生成的公式,使其与最大值类似:
= Table.SelectRows(#"Added Custom", each ([dupe] = List.Max(#"Added Custom"[dupe])))
右键单击以删除多余的列。文件..关闭并加载..
如果您的数据在 Table1 中,则示例完整代码
let Source = Excel.CurrentWorkbook()[Name="Table1"][Content],
#"Added Custom" = Table.AddColumn(Source, "dupe", each try Number.From( List.Accumulate(Text.ToList([REV]), "", (state, current)=> state&Number.ToText(Character.ToNumber(current), "0"))) otherwise null),
#"Filtered Rows" = Table.SelectRows(#"Added Custom", each ([dupe] = List.Max(#"Added Custom"[dupe]))),
#"Removed Columns" = Table.RemoveColumns(#"Filtered Rows","dupe")
in #"Removed Columns"
【讨论】:
【参考方案2】:假设,您需要过滤 REV 列中的最高值:
= Table.SelectRows(YourTable, let a = List.Max(YourTable[REV]) in each [REV] = a)
之前:
之后:
【讨论】:
这似乎对我不起作用。我收到错误“Expression.SyntaxError: Token RightParen expected.” 所以你错过了正确的括号,把它放在正确的地方) 现在它会导致“Expression.Error:在评估期间遇到循环引用。” 确保在公式的两个位置引用上一步中的同一个表(在我的示例中为 YourTable)。 我想我不太了解电源查询的工作原理。这是当前的高级编辑器代码let Source = Csv.Document(File.Contents("H:\tvolmer\Production Planner\Data\SN Flow Tracking Data\FullSNList.csv"),[Delimiter=",",Encoding=1252]), #"Promoted Headers" = Table.PromoteHeaders(Source), #"Removed Columns" = Table.RemoveColumns(#"Promoted Headers","State"), #"Sorted Rows" = Table.Sort(#"Removed Columns","Config", Order.Ascending), #"Filtered Rows" = Table.SelectRows(#"Sorted Rows", each ([Config] = ConfigParameter)) in #"Filtered Rows"
以上是关于使用 Power Query,应用筛选器以仅显示最高值的主要内容,如果未能解决你的问题,请参考以下文章
power BI OTD不同的日期如何设置report 时间
Excel Power Query:工序产出数据的整合与提取