You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Power Apps中基于两个关联SharePoint列表实现员工多条件筛选

多条件筛选实现方案

首先明确两个列表的关联逻辑:通过EmployeeId字段将含Person列的员工列表与存储技术专长的技能列表关联,以下分场景给出实现代码:

场景1:同时匹配员工姓名和技术专长(需同时满足两个条件)

如果你的技能列表(Skills)已通过Lookup关联员工列表的Person列,直接扩展原有代码即可:

Filter(
    Skills,
    StartsWith(Employee.DisplayName, SearchInput1.Text) &&
    StartsWith(Skill, SearchInput2.Text)
)

注:Skill替换为你技能列表中存储技术专长的实际字段名

如果技能列表仅存EmployeeId字段,需先关联员工列表获取姓名:

Filter(
    AddColumns(
        Skills,
        "EmployeeName",
        LookUp(员工列表名称, EmployeeId = Skills.EmployeeId).Employee.DisplayName
    ),
    StartsWith(EmployeeName, SearchInput1.Text) &&
    StartsWith(Skill, SearchInput2.Text)
)

场景2:匹配员工姓名或技术专长(满足任一条件即可)

只需将逻辑运算符从&&换成||:

Filter(
    Skills,
    StartsWith(Employee.DisplayName, SearchInput1.Text) ||
    StartsWith(Skill, SearchInput2.Text)
)

场景3:支持空输入(未输入的条件自动忽略)

当输入框为空时,自动跳过该条件筛选,显示全部符合另一条件的记录:

Filter(
    Skills,
    (IsBlank(SearchInput1.Text) || StartsWith(Employee.DisplayName, SearchInput1.Text)) &&
    (IsBlank(SearchInput2.Text) || StartsWith(Skill, SearchInput2.Text))
)

额外优化点

  • 若需要包含式搜索(而非开头匹配),将StartsWith替换为Contains即可,比如Contains(Employee.DisplayName, SearchInput1.Text)
  • 确保两个列表的EmployeeId字段类型一致(如均为文本或数字),避免匹配失败

内容的提问来源于stack exchange,提问作者Hash_Dew

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 08:28:20