Filter 如何在PowerApps中获得不同的图库磁贴?

Filter 如何在PowerApps中获得不同的图库磁贴?,filter,powerapps,powerapps-canvas,powerapps-formula,powerapps-selected-items,Filter,Powerapps,Powerapps Canvas,Powerapps Formula,Powerapps Selected Items,我的PowerApps的数据源是Excel表格。用户输入后,excel表如下所示。在下图中,您可以看到“Sys1”在Excel表格中出现两次,导致在PowerApps中为同一系统库创建一个额外的磁贴。我的问题是如何避免在PowerApps中重复创建磁贴?下面是画廊和瓷砖的代码。 我不熟悉PowerApps。为代码提供解释 注意:我忘了在Sys后面加名字。下面屏幕截图中的第一列名称应为“Sys name” 图库->项目属性[代码] Filter(Table1,Startswith('Sys Na

我的PowerApps的数据源是Excel表格。用户输入后,excel表如下所示。在下图中,您可以看到“Sys1”在Excel表格中出现两次,导致在PowerApps中为同一系统库创建一个额外的磁贴。我的问题是如何避免在PowerApps中重复创建磁贴?下面是画廊和瓷砖的代码。 我不熟悉
PowerApps
。为代码提供解释

注意:我忘了在Sys后面加名字。下面屏幕截图中的第一列名称应为“Sys name”

图库->项目属性[代码]

Filter(Table1,Startswith('Sys Name'),"Sys"))
ThisItem.'Sys Name'
平铺->文本属性[代码]

Filter(Table1,Startswith('Sys Name'),"Sys"))
ThisItem.'Sys Name'

要删除重复项,可以使用和获取每个组中元素的。如果需要,您可以使用以下方法重新创建原始柱结构:

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”(您原来拥有的)开头的行过滤表1。筛选器的结果将按“Sys”列分组,所有具有类似值的行将分组在“BySys”列中。对于这个结果,我们添加了三列:“Model#”,“Current Status”和“Previous Status”,方法是取第一个分组元素。最后,我们删除最外层函数中的分组列('BySys')

如果不想在表达式中列出原始数据源的所有属性,则可以使用GroupBy表达式作为库中的项目:

GroupBy(
    Filter(Table1, StartsWith('Sys',"Sys")),
    "Sys",
    "BySys")
在gallery模板中,您可以有一个标签,直接将“Sys”列显示为
ThisItem.Sys
,但如果要访问其他列,则需要从组中选择要显示的内容。例如,要显示特定“Sys”值的第一行型号,可以将此表达式作为标签的文本属性:

First(ThisItem.BySys).'Model#'
另一个选项是,如果您想显示许多其他属性,并且不想重复调用
First
,则将其添加为库项目的另一个(记录)属性:

AddColumns(
    GroupBy(
        Filter(Table1, StartsWith('Sys',"Sys")),
        "Sys",
        "BySys"),
    "FirstSys", First(BySys))
现在,在图库中,您可以拥有具有以下属性的标签:

ThisItem.FirstSys.'Model#'
ThisItem.FirstSys.'Current Status'

依此类推。

要删除重复项,可以使用和获取每个组中元素的。如果需要,您可以使用以下方法重新创建原始柱结构:

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”(您原来拥有的)开头的行过滤表1。筛选器的结果将按“Sys”列分组,所有具有类似值的行将分组在“BySys”列中。对于这个结果,我们添加了三列:“Model#”,“Current Status”和“Previous Status”,方法是取第一个分组元素。最后,我们删除最外层函数中的分组列('BySys')

如果不想在表达式中列出原始数据源的所有属性,则可以使用GroupBy表达式作为库中的项目:

GroupBy(
    Filter(Table1, StartsWith('Sys',"Sys")),
    "Sys",
    "BySys")
在gallery模板中,您可以有一个标签,直接将“Sys”列显示为
ThisItem.Sys
,但如果要访问其他列,则需要从组中选择要显示的内容。例如,要显示特定“Sys”值的第一行型号,可以将此表达式作为标签的文本属性:

First(ThisItem.BySys).'Model#'
另一个选项是,如果您想显示许多其他属性,并且不想重复调用
First
,则将其添加为库项目的另一个(记录)属性:

AddColumns(
    GroupBy(
        Filter(Table1, StartsWith('Sys',"Sys")),
        "Sys",
        "BySys"),
    "FirstSys", First(BySys))
现在,在图库中,您可以拥有具有以下属性的标签:

ThisItem.FirstSys.'Model#'
ThisItem.FirstSys.'Current Status'
依此类推。

另一种方法是像下面这样使用“”

Distinct(Table1, Column_Name)
但问题是,它给出了一个只有一列名为“Result”的表,您可以使用下面的代码重命名它

RenameColumns(Distinct(Table1, Column_Name), "Result", "Renamed_Column")
另一种方法是像下面这样使用“”

Distinct(Table1, Column_Name)
但问题是,它给出了一个只有一列名为“Result”的表,您可以使用下面的代码重命名它

RenameColumns(Distinct(Table1, Column_Name), "Result", "Renamed_Column")

哇!这比我想象的要困难得多@carlosfigueria…谢谢!DropColumns会从Excel表中删除任何列吗?我是否需要提及Excel表中存在的所有列名?(例如:“Model#”,“Current Status,Previous Status”)获取错误:函数“AddColumns”和“DropColumns”具有一些无效参数。名称无效。无法识别此标识符。我正在Gallery的Items属性中添加上述代码,以解决第一个问题:DropColumns/AddColumns不会更改原始数据源(Excel表),它将创建一个新表(在内存中)并应用更改…关于提及所有列名-不是真的-您可以在库的Items属性中使用GroupBy表达式,如果您可以从组(BySys)访问字段。我会用另一个选项更新答案。哇。这比我想象的要难多了!@carlosfigueria…谢谢!DropColumns会从Excel表中删除任何列吗?我需要提到Excel表中存在的所有列名吗?(例如:“模型”;“当前状态,以前状态”)获取错误:函数“AddColumns”和“DropColumns”有一些无效参数。名称无效。无法识别此标识符。我正在Gallery的Items属性中添加上述代码,以解决您的第一个问题:DropColumns/AddColumns不会更改原始数据源(Excel表),它将创建一个新表(在内存中)并应用更改。。。关于提及所有列名(实际上并非如此),您可以在库的Items属性中使用GroupBy表达式,如果您可以从组(BySys)访问字段,则可以使用GroupBy表达式。我将使用此其他选项更新答案。