Google Sheets中如何从指定字符串提取物料、尺寸参数至各列?
Google Sheets 物料信息拆分解决方案
针对你提供的带*分隔尺寸的物料字符串,可通过以下步骤拆分物料名、宽度、厚度到单独列:
1. 拆分单个物料的信息
假设原始字符串在A2单元格:
提取第一个物料名:
=REGEXEXTRACT(A2,"(.+?)\s\d+\*\d+")原理:匹配到第一个数字前的所有文本(
\s\d+\*\d+匹配空格+宽度+*+厚度的结构,(.+?)捕获前面的物料名)提取第一个物料宽度:
=REGEXEXTRACT(A2,"(\d+)\*\d+")原理:捕获
*前的数字作为宽度提取第一个物料厚度:
=REGEXEXTRACT(A2,"\d+\*(\d+)")原理:捕获
*后的数字作为厚度
2. 提取后续物料的信息
用SPLIT按/拆分所有物料段,再通过INDEX定位对应段提取信息:
- 第二个物料名:
=REGEXEXTRACT(INDEX(SPLIT(A2,"/"),2),"(.+?)\s\d+\*\d+") - 第二个物料宽度:
=REGEXEXTRACT(INDEX(SPLIT(A2,"/"),2),"(\d+)\*\d+") - 第二个物料厚度:
如需提取第三个物料,将=REGEXEXTRACT(INDEX(SPLIT(A2,"/"),2),"\d+\*(\d+)")INDEX的第二个参数改为3即可,以此类推。
3. 批量提取所有物料(数组公式)
如果需要一次性拆分所有物料到横向列,可在单元格中输入数组公式:
- 批量提取所有物料名(比如在B2单元格输入):
=ARRAYFORMULA(IFERROR(REGEXEXTRACT(SPLIT(A2,"/"),"(.+?)\s\d+\*\d+"))) - 批量提取所有物料宽度(比如在E2单元格输入):
=ARRAYFORMULA(IFERROR(REGEXEXTRACT(SPLIT(A2,"/"),"(\d+)\*\d+"))) - 批量提取所有物料厚度(比如在H2单元格输入):
公式会自动将每个物料的对应信息填充到右侧相邻列,=ARRAYFORMULA(IFERROR(REGEXEXTRACT(SPLIT(A2,"/"),"\d+\*(\d+)")))IFERROR用于避免无物料时显示错误值。
内容的提问来源于stack exchange,提问作者Xiao Wei
相关产品推荐
相关产品推荐

