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

Excel跨表筛选需求:提取Sheet2中未满2岁人员的Op#至Sheet1

提取Sheet2中未满2岁人员的Op#列表到Sheet1

方案1:Excel 365/2021 动态数组公式(推荐)

在Sheet1的A2单元格输入以下公式,会自动生成所有符合条件的Op#:

=FILTER(Sheet2!A:A,DATEDIF(Sheet2!B:B,TODAY(),"Y")<2,"无符合条件人员")

公式逻辑:

  • DATEDIF(Sheet2!B:B,TODAY(),"Y")<2:计算Sheet2中每个人员的周岁年龄,判断是否小于2岁,返回一组布尔值(TRUE/FALSE)
  • FILTER(Sheet2!A:A, 条件, "无符合条件人员"):从Sheet2的A列(Op#列)筛选出满足条件的内容;如果没有符合条件的人员,返回指定提示文本。

方案2:旧版Excel 数组公式(适配无动态数组功能的版本)

在Sheet1的A2单元格输入以下公式,按Ctrl+Shift+Enter完成数组输入,然后下拉填充到足够多行:

=IFERROR(INDEX(Sheet2!$A:$A,SMALL(IF(DATEDIF(Sheet2!$B:$B,TODAY(),"Y")<2,ROW(Sheet2!$B:$B)-1),ROW(A1))),"")

逐部分解释公式逻辑:

  1. DATEDIF(Sheet2!$B:$B,TODAY(),"Y")<2:和方案1逻辑一致,生成判断是否未满2岁的布尔数组
  2. IF(...,ROW(Sheet2!$B:$B)-1):将满足条件的行号(减去表头所在行号,假设Sheet2表头在第1行)提取出来,不满足条件的返回FALSE
  3. SMALL(...,ROW(A1)):按从小到大的顺序提取符合条件的行号;下拉时ROW(A1)会自动变为ROW(A2)、ROW(A3),依次取第1、第2、第3个符合条件的行号
  4. INDEX(Sheet2!$A:$A,...):根据提取的行号,从Sheet2的A列取出对应的Op#
  5. IFERROR(..., ""):当没有更多符合条件的人员时,返回空值,避免显示错误提示

注意事项:

  • 确保Sheet2中的出生日期列是标准日期格式,如果是文本格式,DATEDIF会报错
  • 若Sheet2的表头不在第1行,需调整ROW(Sheet2!$B:$B)-1中的减数值(比如表头在第2行则减2)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 12:31:08