要删除重复项,您可以使用GroupBy function 并获取每个组中元素的First。一旦你有了它,你可以使用一些table shaping functions (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")
你可以从里到外阅读上面的表达式:首先过滤 Table1 中那些“Sys”列以“Sys”开头的行(你原来的)。过滤器的结果将按“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'
等等。