我有一个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
有谁知道实现这个目标的方法?
提前致谢。
答案 0 :(得分:27)
试试这个公式:
=SUBSTITUTE(TEXT(A1/B1,"?/?"),"/",":")
结果:
A B C
33 11 3:1
25 5 5:1
6 4 3:2
说明:
这不需要任何特殊的工具包或宏。唯一的缺点可能是结果被认为是文本 - 而不是数字 - 因此您可以轻松地将其用于进一步的计算。
注意:作为@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年,这很有效。