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

如何用Excel公式从其他工作表提取符合状态优先级的筛选数据?

数据表筛选提取方案

筛选规则

  • 同一ID同时存在「未开始」和「已归档」状态时,优先保留「未开始」对应的整行数据
  • 仅存在「已归档」状态的ID,直接保留该行数据

原始数据表(中文翻译)

ID任务名称状态其他列
1任务1已归档随机文本
2任务2未开始随机文本
2任务2已归档随机文本
3任务3未开始随机文本
4任务4已归档随机文本
5任务5已归档随机文本
5任务5未开始随机文本

实现方法

方法一:Excel公式法

  1. 在原始数据表新增辅助列(如E列),标记需保留的行:
    在E2单元格输入以下公式,下拉填充至所有行:

    =IF(COUNTIF($A:$A,A2)=1,TRUE,IF(C2="未开始",TRUE,FALSE))
    

    逻辑:ID仅出现一次则标记为保留;ID重复时,仅「未开始」状态的行标记为保留。

  2. 在最终数据表提取数据:
    在最终数据表A2单元格输入公式,直接提取符合条件的整行:

    =FILTER(原始数据表!A:D,原始数据表!E:E=TRUE)
    

    注:旧版Excel不支持FILTER的话,可使用高级筛选功能,以辅助列为条件筛选。

方法二:Power Query高效提取(适合大数据量)

  1. 选中原始数据表,点击「数据」→「从表格/区域」,将数据导入Power Query编辑器。
  2. 按ID分组:点击「转换」→「分组依据」,分组列选「ID」,新列名设为「保留行」,操作选「所有行」。
  3. 添加自定义列筛选优先级:点击「添加列」→「自定义列」,输入公式:
    = if List.Contains([保留行][状态], "未开始") then Table.SelectRows([保留行], each [状态] = "未开始") else [保留行]
    
  4. 展开自定义列,删除冗余列后,点击「关闭并上载」,结果将自动加载到最终数据表。

最终提取结果

ID任务名称状态其他列
1任务1已归档随机文本
2任务2未开始随机文本
3任务3未开始随机文本
4任务4已归档随机文本
5任务5未开始随机文本

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 15:05:19