如何以A:B格式在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
有谁知道一个办法来实现这一目标?
提前致谢。
你正在寻找最大的公约数(GCD)。
您可以在VBA中recursion计算,如下所示:
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)
build议将函数调用的结果存储在隐藏列中,并使用此结果避免每行调用两次函数:
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,"?/?"),"/",":")
结果:
ABC 33 11 3:1 25 5 5:1 6 4 3:2
说明:
- 文本(A1 / B1,“?/?”)将A / B转换为不正确的分数
- SUBSTITUTE(…)用分号replace分数中的“/”
这不需要任何特殊的工具包或macros。 唯一的缺点可能是结果被认为是文本 – 而不是数字 – 所以你可以很容易地使用它进行进一步的计算。
注意:正如@Robin Daybuild议的那样,根据需要增加问号(?)的数量以减less舍入(感谢Robin!)。
该页面上的第二个公式使用分析工具库的GCD函数,您可以从“工具”>“加载项”添加它。
= A1 / GCD(A1,B1)和 “:” &B1 / GCD(A1,B1)
这是一个更为math的公式,而不是基于的文本处理。
让我们假设你有D和E单元格中的数据..这里是一个简单的比例显示fn我frnd'Karthik'
=ROUND(D7/E7, 2) &":" & (E7/E7)
我发现这是最简单和最短的,但是我舍入到小数点后第0位:
=“1”&“:”&ROUND((A1 / B1),0)
注意之前和之后的空格
这是什么意思是“1”和“:”被视为整个公式的附加非公式信息ROUND函数将A1 / B1(基本公式为小数点后0位)四舍五入。 你可以尝试改为1,2,3 ….小数位。
我希望我做到这一点
以下是我使用的公式。 我有一个使用GCD的问题,因为我使用相当大的数字来计算比率,而且我发现诸如“209:1024”之类的比简单的四舍五入更不有用,所以它显示“1: ”或“ :1” 。 如果可能的话,我也不喜欢使用macros。 以下是结果。
=IF(A1>B1,((ROUND(A1/B1,0))&":"&(B1/B1)),((A1/A1)&":"&(ROUND(B1/A1,0))))
有些公式是不必要的(例如,“A1 / A1”),但我把它包括在内以显示它背后的逻辑。 此外,您可以通过使用每个ROUNDfunction上的设置来切换进行多less舍入。
在工作中,我们只有Excel 2003可用,这两个公式似乎对我来说是完美的:
=(ROUND(SUM(B3/C3),0))&":1"
要么
=B3/GCD(B3,C3)&":"&C3/GCD(B3,C3)
谢谢你们。 我用这个:
=CONCATENATE((number1/GCD(number1,number2)),":",((number2/GCD(number1,number2))))
如果你有2007年这个很好。