使用regexextract或regexreplace提取单单元格数字按单位求和的实现方法
实现方案
这个需求完全可以实现,核心思路是先拆分单个单元格内的多组数据,再提取所有同单位的数值求和,最后拼接成目标格式即可。
Google Sheets 适用公式
假设原始数据存放在A1单元格,直接使用以下公式即可输出结果:
="["&SUM(VALUE(REGEXEXTRACT(TOCOL(SPLIT(A1,CHAR(10))),"\d+(?=miles)")))&"miles "&SUM(VALUE(REGEXEXTRACT(TOCOL(SPLIT(A1,CHAR(10))),"\d+(?=lbs)")))&"lbs weight "&SUM(VALUE(REGEXEXTRACT(TOCOL(SPLIT(A1,CHAR(10))),"\d+(?=g)")))&"g Raw]"
- 公式先用
SPLIT+TOCOL按换行拆分所有行内容,生成单列数组 - 分别用正向前瞻正则匹配对应单位前的数字,转数值后求和
- 最后按要求拼接为目标格式字符串
Excel 365 适用公式
适配Excel函数语法,逻辑和上述方案一致:
="["&SUM(--TEXTBEFORE(TEXTAFTER(TEXTSPLIT(A1,CHAR(10)),"["),"miles"))&"miles "&SUM(--TEXTBEFORE(TEXTAFTER(TEXTSPLIT(A1,CHAR(10)),"["),"lbs"))&"lbs weight "&SUM(--TEXTBEFORE(TEXTAFTER(TEXTSPLIT(A1,CHAR(10)),"["),"g"))&"g Raw]"
低版本Excel可以先新增辅助列拆分每行内容,分别提取对应数值求和后手动拼接即可。
内容的提问来源于stack exchange,提问作者Shahab Yarmohammadi
相关产品推荐
相关产品推荐

