我有一个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
有谁知道实现这一目标的方法?
提前致谢.
试试这个公式:
=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!).
您正在寻找最大的公约数(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
该页面上的第二个公式使用Analysis ToolPak的GCD功能,您可以从工具>加载项添加它.
= A1/GCD(A1,B1)和 ":" &B1/GCD(A1,B1)
这是一个更加数学的公式而不是基于的文本操作.