如何在Google Sheets或Excel中将含名称与版本的单列内容拆分为两列
拆分包含名称与版本的列(Google Sheets/Excel通用方案)
我来给你两种工具的具体解法,直接复制公式就能用,完全不用自己写正则表达式:
Google Sheets 解法
假设你的原始数据在A列(比如A2开始是NLog.Config.4.3.0这类内容),分别在B列(名称)和C列(版本)输入以下公式:
提取名称列(B2单元格)
=TEXTBEFORE(A2, ".", -1)
这个公式会直接抓取最后一个.之前的所有内容,比如NLog.Config.4.3.0会得到NLog.Config。
提取版本列(C2单元格)
=TEXTAFTER(A2, ".", -1)
这个公式会抓取最后一个.之后的版本号,比如NLog.Config.4.3.0会得到4.3.0。
输入完成后,选中B2和C2单元格,下拉填充到所有数据行就搞定了。
如果你的Google Sheets版本不支持TEXTBEFORE/TEXTAFTER,可以用兼容版公式:
- 名称:
=LEFT(A2, LEN(A2)-FIND(".", SUBSTITUTE(A2, ".", "|", LEN(A2)-LEN(SUBSTITUTE(A2, ".", ""))))) - 版本:
=RIGHT(A2, LEN(A2)-FIND(".", SUBSTITUTE(A2, ".", "|", LEN(A2)-LEN(SUBSTITUTE(A2, ".", "")))))
Excel 解法
同样假设原始数据在A列,分两种情况:
如果你用的是Excel 365/2021及以上版本(支持新函数)
- 提取名称(B2):
=TEXTBEFORE(A2, ".", -1)
- 提取版本(C2):
=TEXTAFTER(A2, ".", -1)
下拉填充即可,和Google Sheets的新函数用法完全一致,非常省心。
兼容旧版Excel(比如2019及更早)
用以下公式:
- 提取名称(B2):
=LEFT(A2, LEN(A2)-SEARCH(".", SUBSTITUTE(A2, ".", "~", LEN(A2)-LEN(SUBSTITUTE(A2, ".", "")))))
- 提取版本(C2):
=RIGHT(A2, LEN(A2)-SEARCH(".", SUBSTITUTE(A2, ".", "~", LEN(A2)-LEN(SUBSTITUTE(A2, ".", "")))))
原理是先找到最后一个.的位置,再分别截取前后内容,下拉填充就能批量处理所有数据。
内容的提问来源于stack exchange,提问作者Kate KAte
相关产品推荐
相关产品推荐

