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

如何在Excel中拆分列至`*`后的首个纯数字分段处

Excel指定列内容拆分:提取*后首个纯数字分段及剩余内容

提取第一部分(至*后首个纯数字分段结束)

假设目标数据在A列(从A2单元格开始),使用以下公式:

=LET(
    star_pos, SEARCH("*", A2),
    after_star, MID(A2, star_pos + 1, LEN(A2) - star_pos),
    first_non_num_pos, MIN(IF(ISERROR(MID(after_star, ROW(INDIRECT("1:"&LEN(after_star))), 1)*1), ROW(INDIRECT("1:"&LEN(after_star))), LEN(after_star)+1)),
    LEFT(A2, star_pos + first_non_num_pos - 1)
)
  • 公式说明:
    1. star_pos定位*在单元格中的位置
    2. after_star提取*之后的所有内容
    3. first_non_num_pos找到*后第一个非数字字符的位置(若*后全为数字,则取内容长度+1)
    4. 最后用LEFT提取从开头到首个纯数字分段结束的内容

如果你的Excel版本不支持LET函数,可使用数组公式(输入后按Ctrl+Shift+Enter确认):

=LEFT(A2, MAX(IF(ISNUMBER(MID(A2, SEARCH("*", A2)+ROW(INDIRECT("1:"&LEN(A2)-SEARCH("*", A2))), 1)*1), SEARCH("*", A2)+ROW(INDIRECT("1:"&LEN(A2)-SEARCH("*", A2))), 0)))

提取第二部分(剩余内容)

对应上面的LET公式,剩余内容可直接复用变量:

=LET(
    star_pos, SEARCH("*", A2),
    after_star, MID(A2, star_pos + 1, LEN(A2) - star_pos),
    first_non_num_pos, MIN(IF(ISERROR(MID(after_star, ROW(INDIRECT("1:"&LEN(after_star))), 1)*1), ROW(INDIRECT("1:"&LEN(after_star))), LEN(after_star)+1)),
    TRIM(MID(A2, star_pos + first_non_num_pos, LEN(A2)))
)
  • TRIM用于去除剩余内容开头可能存在的空格
  • 同样,不支持LET的版本可使用:
=TRIM(MID(A2, MAX(IF(ISNUMBER(MID(A2, SEARCH("*", A2)+ROW(INDIRECT("1:"&LEN(A2)-SEARCH("*", A2))), 1)*1), SEARCH("*", A2)+ROW(INDIRECT("1:"&LEN(A2)-SEARCH("*", A2))), 0))+1, LEN(A2)))

异常处理(单元格无*的情况)

如果部分单元格不含*,可在公式外层添加IFERROR,返回原内容:

=IFERROR(LET(
    star_pos, SEARCH("*", A2),
    after_star, MID(A2, star_pos + 1, LEN(A2) - star_pos),
    first_non_num_pos, MIN(IF(ISERROR(MID(after_star, ROW(INDIRECT("1:"&LEN(after_star))), 1)*1), ROW(INDIRECT("1:"&LEN(after_star))), LEN(after_star)+1)),
    LEFT(A2, star_pos + first_non_num_pos - 1)
), A2)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 12:53:29