首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Excel中将带有“下标”分数的数字转换为十进制?

如何在Excel中将带有“下标”分数的数字转换为十进制?
EN

Stack Overflow用户
提问于 2016-03-27 09:37:04
回答 2查看 1.1K关注 0票数 3

我有成千上万的数字是以无法用的格式提供给我的:

代码语言:javascript
复制
9⅝, 9¼, 9¾, 10¼

在Excel的每一行中,它们都是这样显示的。我想把它们转换成十进制。我试过了=FIXED(A2, 3),但这并没有起作用。问题的出现是因为分数的格式很奇怪。

是否有可实现的公式或宏以获得所需的十进制结果?

非常感谢,复活节快乐!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-27 11:09:24

问题是,每个分数都是单个unicode字符。如果我们隔离单元格中的单个字符并运行:

代码语言:javascript
复制
Sub WhatsIt()
    Dim v As Variant
    v = ActiveCell.Value
    MsgBox Asc(v) & vbCrLf & AscW(v) & vbCrLf & Application.WorksheetFunction.Dec2Hex(AscW(v))
End Sub

我们看到:

现在很容易将这些项转换为实际值。以下是一个开始:

代码语言:javascript
复制
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

您必须展开此代码以包括其他分数。以下是一些常见的问题:

票数 3
EN

Stack Overflow用户

发布于 2016-03-27 10:55:55

所以这里有一个解决办法。我假设数字的格式是设定的,你不能把分数分开。

它需要一些体力劳动,只有当你有合理数量的分数可以手动调整时,它才能真正可行。

来了..。

假设原始数据位于A列中,则创建一些助手列:

  • 列B:提取分数,例如:=RIGHT(A2, 1)
  • 列C:现在使用这些信息提取整数,例如:=SUBSTITUTE(A2, B2, "")

创建从不可用的分数格式到可在excel中使用的查找:

  • 查找中的第一列应该是不可用格式的分数。
  • 第二列应该是可用格式的分数,首先将单元格格式化为第二列>格式单元格菜单>数字选项卡>分类为分数>键入“最多一位数(1/4)”
  • 在相应的单元格中手动写入等效值(例如,在单元格H2中写5/8)

现在在主表中查找调整后的分数。

  • 列D:查找调整后的分数,例如:=VLOOKUP(B2, $G$2:$H$4, 2, 0)
  • 列E:重新计算可用的整数,例如:=C2 +D2

完整的解决方案屏幕截图如下:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36245894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档