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

Vin*_*ent 18 excel

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

ColumnA ColumnB
33        11
25        5
6         4
Run Code Online (Sandbox Code Playgroud)

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

ColumnA ColumnB   Ratio
33        11       3:1
25        5    5:1
6         4    3:2
Run Code Online (Sandbox Code Playgroud)

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

提前致谢.

Mic*_*ren 27

试试这个公式:

=SUBSTITUTE(TEXT(A1/B1,"?/?"),"/",":")
Run Code Online (Sandbox Code Playgroud)

结果:

A   B   C
33  11  3:1
25  5   5:1
6   4   3:2
Run Code Online (Sandbox Code Playgroud)

说明:

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

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


注意:正如@Robin Day建议的那样,根据需要增加问号(?)的数量以减少舍入(感谢Robin!).

  • 为了使这个公式更准确你可以用= SUBSTITUTE(TEXT(A1/B1,"???????????????????????????? :")这使得舍入问题的可能性降低. (2认同)

Tom*_*lak 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
Run Code Online (Sandbox Code Playgroud)

并在您的工作表中使用它像这样:

   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)
Run Code Online (Sandbox Code Playgroud)

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

   ColumnA   ColumnB   ColumnC        ColumnD
1  33        11        =GCD(A1; B1)   =A1/C1 & ":" & B1/C1
2  25         5        =GCD(A2; B2)   =A2/C2 & ":" & B2/C2
Run Code Online (Sandbox Code Playgroud)

  • 您知道,Excel具有GCD功能.你根本不需要VBA这个解决方案:) http://office.microsoft.com/en-us/excel/HP052091041033.aspx (5认同)
  • @Aaron:就这样你知道;-),这个单元格功能似乎在Excel 2007之前不可用.信不信由你,并不是每个人都已经切换了. (2认同)

Rob*_*Day 6

该页面上的第二个公式使用Analysis ToolPak的GCD功能,您可以从工具>加载项添加它.

= A1/GCD(A1,B1)和 ":" &B1/GCD(A1,B1)

这是一个更加数学的公式而不是基于的文本操作.