美国国债行情的Excel自定义数字格式

时间:2010-11-15 06:06:38

标签: excel worksheet-function

我在使用Excel中的自定义数字格式功能显示美国国债期货报价时遇到了一些麻烦。

显示它们的格式为:

121'167

相当于121 + 16.75 / 32

如果最后一个数字是5,如121'165,那么它相当于

121 + 16.5 / 32

如果最后一个数字是2,如121'162,那么它相当于

121 + 16.25 / 32

最后如果最后一个数字是0,如121'160,那么它相当于

121 + 16/32

有没有办法使用自定义数字格式化功能实现此定义,还是超出了它的能力?

4 个答案:

答案 0 :(得分:2)

这是一种疯狂的格式:添加分数,然后在被除数中使用小数,然后然后截断这些小数...

但足够的咆哮。如果我正确理解您的规范,这应该可以完成这项工作:

=TRUNC(A1)&"'"&INT(MOD(A1,1)*320)

单独的数字格式无法做到这一点,因为他们无法对数字进行实际转换(除了内置插件,如日期/时间)。

答案 1 :(得分:0)

您可以将TEXT()函数应用于两个值,并将它们连接成一个字符串。

example (A1 = 121, B1 = 16.75)

C1: =TEXT(A1,"###") & "'" & TEXT(B1*10-1,"###") & "/32"

你需要计算四舍五入(我在第二项中加上常数* 10-1)以及如何获得“/ 32”......我无法从你的问题中找到它

希望有所帮助

祝你好运

答案 2 :(得分:0)

=TRUNC(A1)&"'"&ROUND((MOD(A1,1)*32),1)

Where A1 = 109.6406

这对我来说最有效。我只需要以例如109'20.5的形式采用2年期票据报价并在excel中复制。我将报价转换为109.6406(109 + 20.5 / 32)并应用了上述公式。

答案 3 :(得分:0)

我知道这有点过时,但今天偶然发现了这一点并需要相同的信息。这是我使用的,替换公式中的单元格来拉引号。

5年: = LEFT(J22,3)+(RIGHT(J22,3)/ 320)+ IF(INT(RIGHT(J22,1))= 2,0.0015625,IF(INT(RIGHT(J22,1))= 7,0.0015625 ,0))

10年:=左(B28,3)+(右(B28,3)/ 320)