如何在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截图:

在这里输入图像说明