将英尺和英寸转换为十进制格式
我有大约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