数字→分数に変換、表示させる方法
エクセルを使っていると、
分数で表示
をさせたいことが出てくると思います。
しかし、エクセルにはそのような関数は用意されておりませんので、
今回は、計算結果を分数で表示させることのできる数式を紹介したいと思います、。
数式紹介
分数や表示させるためには、GCD関数を用いて
=数字*1000/GCD(数字*1000,1000)&"/"&1000/GCD(数字*1000,1000)
=B3*1000/GCD(B3*1000,1000)&"/"&1000/GCD(B31000,1000)
と表現します。=
この数式を使うと、下記の通り、数字を分数に変換することが可能です。
・0.8は4/5
・6.5は13/2
・0.25は1/4
と表現できていることが分かります。
数式の説明
上記の式で使用している関数は、最大公約数を計算できるGCD関数です。
小数点がある数字、
例えば0.25を一番わかりやすい形で分数で表すと
0.25 = 25/100
と表すことができます。
これでも分数ではあるのですが、
これをどちらも最大公約数で割ることで
25/100=(25÷25)/(100÷25)=1/4
と一番きれいな形の分数で表すことができます。
上記の式は、このステップを踏んでおり、
①まず、対象の数字を1000倍して、分母を1000に持つ、
○○/1000
という、分数を作り出す。
②GCD関数を用いて、○○と1000の最大公約数を計算する。
③分子、分母を共に最大公約数で割ることで、分数を計算する。
という3ステップで分数を表現しています。
小数点が3位以上の場合は1000では足りないので、もっと桁数を増やしてください。
また、計算対象が、小数点がどれだけでも続く場合は、
ROUNDを用いて、
=ROUND(数字,3)*1000/GCD(ROUND(数字,3)*1000,1000)&"/"&1000/GCD(ROUND(数字,3)*1000,1000)
としてもいいと思います。
小数点の桁数が分からない場合
小数点の桁数が分からない場合、
小数点の桁数を下の式で計算し、分数を作り出すこともできます。
=LEN(B5)-FIND(".",B5)
上記の式で桁数が分かるので、
計算式は複雑になりますが、
=B3*10^(LEN(B3)-FIND(".",B3))/GCD(B3*10^(LEN(B3)-FIND(".",B3),10^(LEN(B3)-FIND(".",B3))&"/"&10^(LEN(B3)-FIND(".",B3)/GCD(B3*10^(LEN(B3)-FIND(".",B3),10^(LEN(B3)-FIND(".",B3))
という形で実現可能です。
が、セルを分けて一つずつ計算していく方が分かりやすいと思います。
コメント欄