我在使用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
有没有办法使用自定义数字格式化功能实现此定义,还是超出了它的能力?
答案 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)