如何在Excel中以a:B格式显示比率?
我有一个Excel电子表格,其中包含以下数据:如何在Excel中以a:B格式显示比率?,excel,Excel,我有一个Excel电子表格,其中包含以下数据: ColumnA ColumnB 33 11 25 5 6 4 我想做的是添加第三列,以a:B的格式显示列a与列B的比率。例如: ColumnA ColumnB Ratio 33 11 3:1 25 5 5:1 6 4 3:2 有人知道实现这一目标的方法吗 提前谢谢。试试这个公式: =SUBSTITUTE(TEXT(A1/B1,"?
ColumnA ColumnB
33 11
25 5
6 4
我想做的是添加第三列,以a:B的格式显示列a与列B的比率。例如:
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
说明:
- 文本(A1/B1,“?/?”)将A/B转换为不正确的分数
- 替换(…)用冒号替换分数中的“/”
注意:根据@Robin Day的建议,根据需要增加问号(?)的数量以减少舍入(感谢Robin!)。该页面上的第二个公式使用了分析工具包的GCD功能,您可以从工具>加载项添加它 =A1/GCD(A1,B1)和“&B1/GCD(A1,B1)
这是一个更加数学化的公式,而不是基于的文本操作。您正在寻找最大公约数(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)
并在工作表中使用它,如下所示:
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
谢谢,你会的。我用了这个:
=CONCATENATE((number1/GCD(number1,number2)),":",((number2/GCD(number1,number2))))
如果你有2007年的经验,这很有效。下面是我使用的公式。我在使用GCD时遇到了一个问题,因为我使用了相当大的数字来计算比率,我发现像“209:1024”这样的比率没有简单的四舍五入有用,所以它显示为“1:”或“:1”。如果可能的话,我也不喜欢使用宏。下面是结果
=IF(A1>B1,((ROUND(A1/B1,0))&":"&(B1/B1)),((A1/A1)&":"&(ROUND(B1/A1,0))))
有些公式是不必要的(例如,“A1/A1”),但我加入它是为了说明其背后的逻辑。此外,您还可以通过使用每个ROUND函数上的设置来切换发生的舍入量 我发现这是最简单和最短的,但我将小数点后零位四舍五入:
=“1”&:“&ROUND((A1/B1),0)
注意和前后的空格
这意味着“1”和“:”被视为整个公式的附加非公式信息。舍入
函数将基本公式A1/B1舍入为0位小数。您可以尝试更改为1,2,3。。。小数位
我希望我已经说清楚了。让我们假设您在D和E单元格中有数据。。
下面是我的第一个“Karthik”显示fn的最简单的比率
=ROUND(D7/E7, 2) &":" & (E7/E7)
在工作中,我们只有Excel 2003可用,这两个公式似乎对我非常适用:
=(ROUND(SUM(B3/C3),0))&":1"
或
为了使这个公式更准确,你可以用=SUBSTITUTE(文本(A1/B1,“???????/?”、“/”、“:”)替换它。这使得舍入问题不太可能发生。请注意,它是分号,而不是谷歌电子表格中的逗号。正如你所知,Excel有一个GCD函数。你根本不需要VBA来解决这个问题:)@Aaron:你知道;-),此单元格函数在Excel 2007之前似乎不可用。信不信由你,还不是每个人都换了。你可能已经猜到了,我用的是2007。不过我还是先检查了一下。这篇文章说它适用于2003@AaronBush。你的两个链接都断了。@spiky Try web.archive.com(很遗憾,评论无论如何都不能编辑)。这在number1=0的情况下是失败的,当你有更大的数字时,它会更有用