如何在Excel中将带“下标”分数的数字转换为小数?
我有成千上万的数字是以无法用于计算的格式给我的:
9⅝, 9¼, 9¾, 10¼
这是他们如何出现在Excel中的每一行。 我想将这些转换为小数。 我试过=FIXED(A2, 3)
但是没有办法。 出现这个问题是因为分数是在这个奇怪的格式。
有一个公式或macros,我可以实现以获得所需的小数结果?
非常感谢你和复活节快乐!
问题是,你的每个分数是一个单一的Unicode字符。 如果我们隔离单元格中的单个字符并运行:
Sub WhatsIt() Dim v As Variant v = ActiveCell.Value MsgBox Asc(v) & vbCrLf & AscW(v) & vbCrLf & Application.WorksheetFunction.Dec2Hex(AscW(v)) End Sub
我们看:
现在将这些项目转换成真正的价值变得很容易。 这是一个开始:
Public Function Konvert(s As Variant) As Double Dim d As Double d = CDbl(Mid(s, 1, Len(s) - 1)) If AscW(Right(s, 1)) = 8541 Then d = d + 0.625 Konvert = d End Function
您必须展开此代码以包含其他分数。 这里有一些常见的:
所以这里是你的一个解决scheme。 我假设数字的格式已经设置好了,而且你不能分出这个分数。
这需要一些手动工作,只有在您可以手动调整合理数量的分数时,才能真正实现
开始…
假设原始数据在列A中,创build一些帮助列:
- B列:提取分数,例如:
=RIGHT(A2, 1)
- 列C:使用这个信息来提取整个数字,例如:
=SUBSTITUTE(A2, B2, "")
从不可用的分数格式创build一个查找,您可以在Excel中使用:
- 查找中的第一列应该是不可用格式的分数
- 第二列应该是可用格式的分数,首先格式化第二列中的单元格>格式单元格菜单>数字标签>类别为分数>types“最多一位数(1/4)”
- 手动在相应的单元格中的等效值(例如,在单元格H2中写入5/8)
现在查找主表中的调整分数
- D列:查找调整的分数,例如:
=VLOOKUP(B2, $G$2:$H$4, 2, 0)
- E列:重新计算可用的整数,例如:
=C2 +D2
下面的完整解决scheme截图: