如何在Excel中以A:B格式显示比率?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (24)

我有一个Excel数据电子表格,如下所示:

ColumnA ColumnB
33        11
25        5
6         4

我想做的是添加第三列,例如:

ColumnA ColumnB   Ratio
33        11       3:1
25        5    5:1
6         4    3:2

有谁知道实现这一目标的方法吗?

提前谢谢。

提问于
用户回答回答于

你正在寻找最大的公共因子(GCD)。

可以在VBA中递归地计算它,如下所示:

Function GCD(numerator As Integer, denominator As Integer)
  If denominator = 0 Then
    GCD = numerator
  Else
    GCD = GCD(denominator, numerator Mod denominator)
  End If
End Function

就像这样:

   ColumnA   ColumnB   ColumnC
1  33        11        =A1/GCD(A1; B1) & ":" & B1/GCD(A1; B1)
2  25         5        =A2/GCD(A2; B2) & ":" & B2/GCD(A2; B2)

建议将函数调用的结果存储在隐藏列中,并使用此结果避免每一行调用函数两次:

   ColumnA   ColumnB   ColumnC        ColumnD
1  33        11        =GCD(A1; B1)   =A1/C1 & ":" & B1/C1
2  25         5        =GCD(A2; B2)   =A2/C2 & ":" & B2/C2
用户回答回答于

试试这个公式:

=SUBSTITUTE(TEXT(A1/B1,"?/?"),"/",":")

结果:

A   B   C
33  11  3:1
25  5   5:1
6   4   3:2

说明:

  • 文本(A1/B1,“?/?”)将A/B变成不适当的分数。
  • 用冒号替换分数中的“/”

这不需要任何特殊的工具箱或宏。唯一的缺点可能是结果被认为是文本--而不是数字--所以可以很容易地使用它进行进一步的计算。

扫码关注云+社区