将英尺和英寸转换为十进制格式

我有大约3600高度与格式英尺寸英寸Eigth,例如:

5103 = 5 feet, 10 and 3/8 inches 6000 = 6 feet 6022 = 6 feet, 2 and 2/8 inches 

我需要用公式或macros将它们转换成十进制格式,这样的结果是:

 5103 = 5.864 6000 = 6.000 6022 = 6.187 

因为我有3600+这些,手工工作将是一个痛苦。 我怎样才能将这种格式转换为英尺和英寸的十进制格式?

在列A中的数据中,在B1中input:

 =--LEFT(A1,1)+MID(A1,2,2)/12+RIGHT(A1,1)/(12*8) 

并抄下来:

在这里输入图像说明

注意:

这个转换产生十进制的英尺,所以2英尺6英寸显示2.5

编辑#1:

如果你需要在A栏中容纳9英尺以上,那么公式应该是:

 =--LEFT(A1,LEN(A1)-3)+MID(A1,LEN(A1)-2,2)/12+RIGHT(A1,1)/(12*8) 

如果你需要走很长的路线,VBA UDF似乎是最有利的。

 Function feet2dec(str As String) As Double Dim v As Long, vtmp As Variant, tmp As String Dim feet As Double vtmp = Split(str, Chr(44)) For v = LBound(vtmp) To UBound(vtmp) Select Case LCase(Right(Trim(vtmp(v)), 4)) Case "feet" feet = feet + Val(Trim(Replace(vtmp(v), "feet", vbNullString, 1, -1, vbTextCompare))) Case "ches" str = Replace(vtmp(v), "inches", vbNullString, 1, -1, vbTextCompare) str = Application.Trim(Replace(str, "and", vbNullString, 1, -1, vbTextCompare)) feet = feet + Application.Evaluate(str) / 12 End Select Next v feet2dec = feet End Function 

feet2dec