Excel中英制转公制文本转换公式开发需求(含取整规则)
嘿,我来帮你搞定这个Excel单位转换的需求!下面是针对你两种输入场景的通用解决方案,不管是2个还是3个尺寸都能完美适配:
Excel单位转换与格式化通用方案
核心通用公式(支持2/3个尺寸,适用于Excel 365/2021)
直接在B2单元格粘贴这个公式,就能自动处理A1里的带换行、英寸、磅的文本:
=LET( raw_text, SUBSTITUTE(SUBSTITUTE(A1, CHAR(10), " "), """", ""), dimension_section, TEXTBEFORE(raw_text, " lbs"), weight_value, --TEXTAFTER(raw_text, " lbs"), split_dims, TEXTSPLIT(dimension_section, " x ", , TRUE), converted_dims, BYROW(split_dims, LAMBDA(x, ROUNDUP(--x * 2.54, 0) & "cm")), converted_weight, ROUNDUP(weight_value * 0.45359237, 2) & " kg", IF(LEFT(dimension_section, 4) = "diam", "diam " & TEXTJOIN(" x ", TRUE, converted_dims) & " " & converted_weight, TEXTJOIN(" x ", TRUE, converted_dims) & " " & converted_weight) )
公式一步步拆解(帮你搞懂每部分逻辑)
- 清理文本:先用
SUBSTITUTE去掉单元格里的换行符(CHAR(10))和英寸符号("),避免干扰后续提取 - 拆分核心数据:用
TEXTBEFORE把尺寸部分和重量部分分开,--是把提取到的文本数值转成真正的数字 - 拆分多尺寸:
TEXTSPLIT自动把多个尺寸按" x "拆分成单独的数值,不管是2个还是3个都能处理 - 尺寸转换:
BYROW遍历每个尺寸,把英寸转成厘米(1英寸=2.54cm)后用ROUNDUP向上取整到整数,加上"cm"后缀 - 重量转换:把磅转成千克(1磅≈0.45359237kg)后用
ROUNDUP向上取整到两位小数,加上" kg"后缀 - 拼接结果:判断原始文本是否有"diam"前缀,有的话保留,再把转换后的尺寸和重量拼接成最终格式
测试案例验证
案例1:输入(A1含换行)
diam 4.5" x 7.88" 0.83 lbs
输出(B2)
diam 12cm x 18cm .38 kg
案例2:输入(A1含换行)
4.5" x 7.88" x 20" .83 lbs
输出(B2)
12cm x 20cm x 51cm .38 kg
旧版Excel兼容方案(适用于2019及更早版本)
如果你的Excel不支持LET、TEXTSPLIT这些新函数,用这个嵌套公式也能实现需求:
=IF(ISNUMBER(SEARCH("diam", A1)), "diam ", "") & TEXTJOIN(" x ", TRUE, ROUNDUP(--SUBSTITUTE(TEXTBEFORE(TEXTAFTER(A1, "diam "), " lbs"), """", "") * 2.54, 0) & "cm", IFERROR(ROUNDUP(--SUBSTITUTE(TEXTAFTER(TEXTBEFORE(TEXTAFTER(A1, "diam "), " lbs"), " x "), """", "") * 2.54, 0) & "cm", ""), IFERROR(ROUNDUP(--SUBSTITUTE(TEXTAFTER(TEXTAFTER(TEXTBEFORE(TEXTAFTER(A1, "diam "), " lbs"), " x "), " x "), """", "") * 2.54, 0) & "cm", "") ) & " " & ROUNDUP(--SUBSTITUTE(TEXTAFTER(A1, " lbs"), """", "") * 0.45359237, 2) & " kg"
内容的提问来源于stack exchange,提问作者Platypus17
相关产品推荐
相关产品推荐

