【问题标题】:Multi LookUp - Check for unique valuesMulti LookUp - 检查唯一值
【发布时间】:2026-01-21 16:20:03
【问题描述】:

我正在尝试在我的 PowerApp-Form 中设置唯一值。数据存储在 Sharepoint 列表中。我有一个名为watches 的列,该列中的项目有一个唯一的编号,必须是唯一的。人们可以在 LookUp 字段中选择多个这些手表。但是在提交表单之前,我需要检查这些选择的值是否已经存在于我的列表中,并且至少显示一条错误消息。

我已经设置了一个常规文本字段并添加了以下规则:

If(LookUp(MyList.Watches;DataCardValue4.SelectedItems.Value in Watches;"OK")<>"OK";"No Error";"Watch already exist")

DataCardValue4 是我的 LookUp 字段,人们可以在其中挑选这些手表。有了这个规则,我想检查一个项目是否已经在我的列中,并让我的文本字段显示错误。不知何故,规则不起作用。

您能告诉我如何将多个查找选项与我的表/列条目进行比较吗?

【问题讨论】:

    标签: sharepoint powerapps


    【解决方案1】:

    LookUp 函数的第一个参数应该是表(SharePoint 列表)而不是列。所以第一个参数应该是 'MyList' 而不是 'MyList.Watches'。另外,我不确定提供的公式(查找的第二个参数)是否有效。在您的公式中,您将在多个项目 (Watches) 中查找多个项目 (DataCardValue4.SelectedItems.Value)。或许您可以更新您的应用,让用户在提交之前只选择一个观看值?

    最后一件事要注意。我不确定您希望您的 SharePoint 列表有多大,但我强烈建议您将 LookUp 公式保持在支持delegation 的范围内。更具体地说,SharePoint 的公式要求与其他连接器不同。例如,您可以在公式中使用“=”,但不能使用“in”。

    您的新规则可能如下所示。请注意,它可能有语法错误,甚至可能无法以当前形式委派,因为我提供的规则没有检查。另外,我从使用 LookUp 切换到使用 Filter 只是因为我更熟悉过滤器。但是,这两个功能非常相似。

    If(CountRows(Filter(MyList; DataCardValue4.Selected.Value = Watches)) > 0; "Watch already exist"; "No Error")
    

    【讨论】: