要删除重复项,您可以使用GroupBy 函数并获取每个组中的第一个元素。完成后,如有必要,您可以使用一些表格整形功能(AddColumns、DropColumns)重新创建原始列结构:
DropColumns(
AddColumns(
GroupBy(
Filter(Table1, StartsWith('Sys',"Sys")),
"Sys",
"BySys"),
"Model#", First(BySys).'Model#',
"Current Status", First(BySys).'Current Status',
"Previous Status", First(BySys).'Previous Status'),
"BySys")
您可以从内到外阅读上述表达式的方式:首先仅针对“Sys”列以“Sys”(您最初拥有的)开头的那些行过滤 Table1。过滤器的结果将按“Sys”列分组,所有具有相似值的行都在“BySys”列中分组。对于这个结果,我们通过采用第一个分组元素添加三列:“模型#”、“当前状态”和“先前状态”。最后,我们删除了最外层函数的分组列('BySys')。
如果您不想在表达式中列出原始数据源的所有属性,则可以保留 GroupBy 表达式作为图库的项目:
GroupBy(
Filter(Table1, StartsWith('Sys',"Sys")),
"Sys",
"BySys")
在图库模板中,您可以有一个标签,将“Sys”列直接显示为ThisItem.Sys
,但如果您想访问其他列,则需要从组中选择要显示的内容。例如,要显示特定 'Sys' 值的第一行的型号,您可以将此表达式作为标签的 Text 属性:
First(ThisItem.BySys).'Model#'
如果您想显示许多其他属性并且不想继续重复调用,则另一种选择First
是将其添加为画廊项目的另一个(记录)属性:
AddColumns(
GroupBy(
Filter(Table1, StartsWith('Sys',"Sys")),
"Sys",
"BySys"),
"FirstSys", First(BySys))
现在在您的图库中,您可以拥有具有以下属性的标签:
ThisItem.FirstSys.'Model#'
ThisItem.FirstSys.'Current Status'
等等。