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

时间:2009-01-23 14:04:50

标签: excel

我有一个Excel电子表格,如:

ColumnA ColumnB
33        11
25        5
6         4

我想要做的是添加第三列,以A:B的格式显示columnA与columnB的比率。例如:

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

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

提前致谢。

8 个答案:

答案 0 :(得分:27)

试试这个公式:

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

结果:

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

说明:

  • TEXT(A1 / B1,“?/?”)将A / B转换为不正确的分数
  • SUBSTITUTE(...)用冒号替换分数​​中的“/”

这不需要任何特殊的工具包或宏。唯一的缺点可能是结果被认为是文本 - 而不是数字 - 因此您可以轻松地将其用于进一步的计算。


注意:作为@Robin Day建议,根据需要增加问号(?)的数量以减少舍入(感谢Robin!)。

答案 1 :(得分:15)

您正在寻找最大的公约数(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

答案 2 :(得分:5)

该页面上的第二个公式使用Analysis ToolPak的GCD功能,您可以从Tools>添加它。插件。

= A1 / GCD(A1,B1)及 “:” &安培; B1 / GCD(A1,B1)

这是一个更加数学的公式,而不是基于。

的文本操作

答案 3 :(得分:1)

以下是我使用的公式。我在使用GCD时遇到了问题,因为我使用相当大的数字来计算比率,并且我发现“209:1024”之类的比率不如简单的舍入那么有用,因此它显示“1:”或“ :1" 。如果可能的话,我也不想使用宏。以下是结果。

=IF(A1>B1,((ROUND(A1/B1,0))&":"&(B1/B1)),((A1/A1)&":"&(ROUND(B1/A1,0))))

某些公式是不必要的(例如,“A1 / A1”),但我将其包括在内以显示其背后的逻辑。此外,您可以通过播放每个ROUND函数上的设置来切换多少舍入。

答案 4 :(得分:1)

我发现这是最简单和最短的,但我会四舍五入到零小数位:

=“1”& “:”& ROUND((A1 / B1),0)

注意&

之前和之后的空格

这意味着“1”和“:”被视为整体公式的附加非公式信息ROUND函数舍入A1 / B1,这是0小数位的基本公式。您可以尝试更改为1,2,3 ....小数位。

我希望我这么简单

答案 5 :(得分:1)

假设您有D和E单元格中的数据。 这是一个最简单的比例,由我的朋友'Karthik'显示fn

=ROUND(D7/E7, 2) &":" & (E7/E7)

答案 6 :(得分:0)

在工作中我们只提供Excel 2003,这两个公式似乎对我来说非常合适:

=(ROUND(SUM(B3/C3),0))&":1"

=B3/GCD(B3,C3)&":"&C3/GCD(B3,C3)

答案 7 :(得分:-1)

谢谢你。我用过这个:

=CONCATENATE((number1/GCD(number1,number2)),":",((number2/GCD(number1,number2))))

如果你有2007年,这很有效。