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

基于姓氏与优先级的Excel FILTER函数筛选问题求助

解决方案:结合姓氏、优先级与日期的FILTER筛选公式

问题分析

你之前的公式失效原因是数组维度不匹配:直接用Table2[Last](多值)和Table1[Names](多值)做运算会生成二维数组,而Table2[Priority]=I1是一维数组,两者无法正确相乘判断条件。需要逐行处理每个姓名,单独验证是否存在匹配的姓氏+优先级组合。

最终公式(适配所有条件)

假设:

  • Table1包含Names(姓名列)和Date(日期列)
  • Table2包含Last(姓氏列)和Priority(优先级列)
  • I1是优先级下拉框(High/Low),J1是日期起始值,K1是日期结束值

使用以下公式:

=FILTER(Table1[Names],
  BYROW(Table1[Names], LAMBDA(name,
    SUMPRODUCT(--(ISNUMBER(SEARCH(Table2[Last], name))*(Table2[Priority]=I1)))>0
  )) *
  (Table1[Date]>=J1) * (Table1[Date]<=K1),
  "无匹配记录"
)

公式拆解

  1. BYROW+LAMBDA逐行验证姓名:遍历Table1的每个姓名,检查是否在Table2中存在姓氏包含在姓名里且优先级等于I1的记录
  2. SUMPRODUCT统计匹配数:用--将布尔值转成0/1,统计符合条件的记录数,大于0则说明当前姓名满足姓氏+优先级要求
  3. 日期范围条件:直接用逻辑乘法(*)叠加日期区间判断,确保结果同时满足日期要求
  4. 无匹配提示:用FILTER的第三参数返回友好提示

注意事项

  • 确保Table2[Last]的姓氏是纯文本,无多余空格或特殊字符
  • I1的优先级选项需和Table2[Priority]的内容完全一致(大小写、拼写要匹配)
  • 日期单元格J1/K1需设置为日期格式,若为文本可改用DATEVALUE(J1)转换
  • 59条记录的数据集完全不用担心效率问题,公式运算耗时可忽略

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 17:12:37