1.进行分列,固定符号“*”进行分列,然后每列重新计算成cm,再组合一起
或者使用vba进行批量处理,可以一键搞定
代码如下:
alt+f11打开vbe编辑器进行输入即可
Sub 按钮2_Click()
p = 2.54
arr = ActiveSheet.UsedRange
For j = 2 To UBound(arr)
brr = Split(arr(j, 1), "*")
For i = 0 To UBound(brr)
brr(i) = Val(brr(i)) * p
Next i
arr(j, 2) = Join(brr, "*")
Next j
ActiveSheet.UsedRange = arr
End Sub
原始数据如下图:
点击按钮后的运行结果
虽然是数字,但加了符号“*”,就相当于文本了,Excel处理文本是比较麻烦的。本问题还是用辅助列相对简单些,在O列右侧任意空列,如S列开始3列作为辅助列,即在S2中输入公式:
=ROUND(--MID(SUBSTITUTE($N2,"*",REPT(" ",99)),COLUMN(A:A)*99-98,98)*2.54,1)
右拖到U2中,得到长宽高三个数据换算值,下拉。
O2中输入公式:
=P2&"*"&Q2&"*"&R2
下拉,得到需要的结果
=ROUND(LEFT(N2,FIND("*",N2,1)-1)*2.54,1)&"*"&ROUND(MID(N2,FIND("*",N2,1)+1,FIND("*",N2,FIND("*",N2,1)+1)-FIND("*",N2,1)-1)*2.54,1)&"*"&ROUND(RIGHT(N2,LEN(N2)-FIND("*",N2,FIND("*",N2,1)+1))*2.54,1)
以你图示为例,在O2单元格输入上述公式。公式有点长,先应急吧,等想到好办法再联系你。