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

如何用公式将符合特定字符串规则的Excel行复制到对应工作表?

交易行按ID规则拆分到对应工作表的解决方案

核心判断逻辑

要筛选符合规则的交易ID,需同时满足两个条件:

  • ID以PH-或QH-开头
  • ID最后一段(最后一个-后的数字)为01-96,对应工作表命名为PH+数字(如PH-xxx-01对应PH1)、QH+数字(如QH-xxx-05对应QH5)

方案1:使用FILTER函数(Excel 365/2021及以上版本)

这是最简洁的方法,直接返回所有符合条件的整行数据。

以PH1工作表为例,假设原始数据存放在名为交易列表的工作表中,数据范围为A列(交易ID)到Z列(其他字段),在PH1的A2单元格输入公式:

=FILTER(交易列表!A:Z, (LEFT(交易列表!A:A,3)="PH-")*(VALUE(RIGHT(交易列表!A:A,2))=1), "")
  • 公式说明:
    1. 交易列表!A:Z:指定要提取的原始数据列范围(可根据实际字段数量调整)
    2. LEFT(交易列表!A:A,3)="PH-":判断ID是否以PH-开头
    3. VALUE(RIGHT(交易列表!A:A,2))=1:提取ID最后两位数字,判断是否等于1(对应PH1)
    4. *:表示两个条件需同时满足
    5. 最后的"":无符合条件数据时显示空内容

如果要生成QH5工作表的数据,只需修改公式中的开头标识和数字:

=FILTER(交易列表!A:Z, (LEFT(交易列表!A:A,3)="QH-")*(VALUE(RIGHT(交易列表!A:A,2))=5), "")

方案2:使用INDEX+SMALL组合(兼容旧版Excel)

如果你的Excel版本不支持FILTER函数,可使用数组公式实现:

以PH1工作表为例,在A2单元格输入公式后,按Ctrl+Shift+Enter确认(Excel 365无需此操作),再向右、向下填充公式:

=IFERROR(INDEX(交易列表!A:A, SMALL(IF((LEFT(交易列表!$A$2:$A$1000,3)="PH-")*(VALUE(RIGHT(交易列表!$A$2:$A$1000,2))=1), ROW(交易列表!$A$2:$A$1000), ""), ROW(A1))), "")
  • 公式说明:
    1. IF函数:筛选出符合条件的行号,不符合条件的返回空值
    2. SMALL函数:按顺序提取符合条件的行号,ROW(A1)用于逐行获取第1、2、3...个符合条件的行
    3. INDEX函数:根据行号提取交易列表中对应单元格的内容
    4. IFERROR:避免无数据时显示错误值
    5. 注意:需将$A$2:$A$1000替换为你实际的交易ID数据范围

通用适配:处理ID结尾格式不统一的情况

如果部分ID结尾是-1而非-01,可改用以下公式提取最后一段数字,确保判断准确:

VALUE(RIGHT(A2,LEN(A2)-FIND("~",SUBSTITUTE(A2,"-","~",LEN(A2)-LEN(SUBSTITUTE(A2,"-",""))))))

这个公式会自动定位最后一个-的位置,提取后面的数字,无需依赖固定位数。

内容的提问来源于stack exchange,提问作者T.J. K.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 06:03:27