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

如何从含数字的名称中提取格式不固定的版本号?

解决方案

核心逻辑

版本号的判定规则:结尾连续的、由纯数字段通过连字符连接的片段,其余部分为参考ID。即从最后一段开始往前检查,所有连续的纯数字段(仅含0-9)拼接起来就是版本号;若最后一段不是纯数字,则标记为(No version)。


Excel公式实现(适用于Excel 365及以上版本)

假设完整名称在单元格A2,以下公式分别提取版本号和参考ID:

1. 提取版本号(单元格B2)

=LET(
    parts, TEXTSPLIT(A2, "-"),
    total_parts, COUNTA(parts),
    rev_seq, SEQUENCE(total_parts,,total_parts,-1),
    is_num_part, BYROW(INDEX(parts, rev_seq), LAMBDA(x, ISNUMBER(--x))),
    first_non_num, MATCH(FALSE, is_num_part, 0),
    version_part_count, IFERROR(first_non_num-1, total_parts),
    IF(version_part_count=0, "(No version)", TEXTJOIN("-", TRUE, INDEX(parts, SEQUENCE(version_part_count, total_parts-version_part_count+1))))
)

2. 提取参考ID(单元格C2)

=LET(
    original_parts, TEXTSPLIT(A2, "-"),
    version_parts, TEXTSPLIT(B2, "-"),
    IF(B2="(No version)", A2, TEXTJOIN("-", TRUE, INDEX(original_parts, SEQUENCE(COUNTA(original_parts)-COUNTA(version_parts)))))
)

公式逻辑说明

版本号公式:

  1. TEXTSPLIT(A2, "-"):将完整名称按连字符拆分为分段数组
  2. rev_seq:生成倒序索引,从最后一段开始往前检查每一段
  3. is_num_part:判断每一段是否为纯数字(ISNUMBER(--x)可识别纯数字字符串)
  4. first_non_num:找到第一个非纯数字段的位置,确定连续纯数字段的数量
  5. 最后拼接连续纯数字段为版本号,若无则返回(No version)

参考ID公式:

  • 若无版本号,直接返回原名称;否则截取版本号之前的所有分段,用连字符拼接成参考ID

验证示例

以你提供的测试数据为例,公式可完美输出期望结果:

完整名称版本号参考ID
abc-defg-hijklmn-opqr--stw-xy-zabc-1-2-3-45678901234561-2-3-4567890123456abc-defg-hijklmn-opqr--stw-xy-zabc
dcba-ijhg-lmn-opqrs-tuvwxy-za(No version)dcba-ijhg-lmn-opqrs-tuvwxy-za
ab-cde-zyx-dfghjkld--az-qwer-3-2-13-2-1ab-cde-zyx-dfghjkld--az-qwer

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 07:17:07