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

如何用Excel提取指定列含X的条目生成已阅读规程人员清单?

Excel提取已阅读规程人员名单的解决方案

方法1:动态数组公式(Excel 365/2021及以上版本)

如果你的Excel支持动态数组,这是最简便的方法:

  • 假设原数据在Sheet1,A列是姓名,B列对应「已阅读规程001」,C列对应「已阅读规程002」
  • 在输出表Sheet2的A2单元格输入:
    =FILTER(Sheet1!A:A,Sheet1!B:B="X","")
    
    按回车后,公式会自动溢出所有符合条件的姓名
  • 同理,Sheet2的B2单元格输入:
    =FILTER(Sheet1!A:A,Sheet1!C:C="X","")
    

方法2:传统数组公式(旧版Excel)

针对不支持动态数组的旧版Excel,用INDEX+SMALL+IF组合实现:

  • 在Sheet2的A2单元格输入以下公式,按Ctrl+Shift+Enter执行数组公式:
    =IFERROR(INDEX(Sheet1!$A:$A,SMALL(IF(Sheet1!$B:$B="X",ROW(Sheet1!$B:$B)),ROW(A1))),"")
    
    下拉填充单元格,直到出现空值为止
  • 对应规程002的B2单元格公式:
    =IFERROR(INDEX(Sheet1!$A:$A,SMALL(IF(Sheet1!$C:$C="X",ROW(Sheet1!$C:$C)),ROW(B1))),"")
    
    同样下拉填充

方法3:Power Query(适合大数据量/需重复更新场景)

如果数据量较大,或者需要定期更新清单,用Power Query更高效:

  1. 打开原数据所在的Sheet1,选中数据区域,点击「数据」选项卡→「从表格/区域」(若提示表格有标题,勾选确认)
  2. 在Power Query编辑器中:
    • 选中「姓名」列,点击「转换」选项卡→「逆透视列」→「逆透视其他列」,得到「姓名」「属性」「值」三列
    • 筛选「值」列,只保留等于X的行
    • 添加索引列:点击「添加列」→「索引列」→「从1开始」
    • 点击「属性」列,然后「转换」→「分组依据」,分组列选「属性」,新列名设为「行号」,操作选「所有行」
    • 展开「行号」列,添加新的索引列(从1开始),然后删除多余列
    • 点击「转换」→「透视列」,行选新的索引列,列选「属性」,值选「姓名」,聚合值选「不要聚合」
  3. 点击「关闭并上载」,将结果导入到新工作表,调整格式即可

为什么LOOKUP/VLOOKUP不行?

LOOKUP和VLOOKUP默认只会返回第一个匹配到的结果,无法一次性提取所有符合条件的条目,所以不适合这种需要批量提取多结果的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 18:27:31