- 締切済み
エクセルでの分数計算について
エクセルでの分数計算について質問です。 使用ソフトはエクセル2003です。 全てのセルの書式設定はユーザー定義で# ???????????????/???????????????とします。 例えば A1に 0 373/10000 B2に 0 37/500 C1に =A1+B2 と入力すると C1に1113/10000 と表示され、きちんと足し算ができますが、 A1に 0 373/100000 と入力すると C1にきちんと足し算の答えが出てきません。 A1の分母を一桁増やしたとたんできなくなってしまい困っています。 分母が億単位の分数の足し算がしたかったので、 解決方法がわかる方はぜひともご回答お願いいたします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- okormazd
- ベストアンサー率50% (1224/2412)
EXCELの精度の範囲で、適当な分数にしてしまうので、思うような分数表示にはなりません。 桁数の多い分数で表示したいなら、文字列として入力します。 計算は、EXCEL4のEVALUATE関数を使って計算します。 ただし、EVALUATEは、現在のバージョンではサポートされていないので、 使い勝手は悪くなります。 A1に「373/1234567890」とそのまま入力します。 B1に「127/1234567890」とそのまま入力します。 C1に和を求めます。 C1を選択して、 挿入―名前―定義 で、「名前の定義」ダイアログで、 名前に、「eval1」(これは適当につけた名前です)として、 参照範囲に「=EVALUATE(Sheet1!A1」にします。この時の参照は、相対参照にします。 もう1つ、名前に、「eval2」として、 この参照範囲は「=EVALUATE(Sheet1!B1」にします。 要するに、名前の定義を2つ、EVALUATEの参照をA1としたものとB1にしたものを作ります。 C1に「=eval1+eval2」とすれば、A1とB1の和が求められます。 A2、B2以下に分数入力があれば、C1を下にドラッグすれば、それぞれの和が出るでしょう。 Cのセル書式を適当なものに変えてください。 ただし、分数表示では、始めに書いたようにExcel任せになります。 変な分数表示になっても、精度はあるはずです。 注意することは、eval1は、和を求めるセルの2つ左を参照し、 eval2は、和を求めるセルの1つ左を参照するように定義したので、ほかのセルに入力するときもそのようなデータ設定をしなければだめだということです。 なお、上記は、EXCEL2003での話です。他のバージョンでも同様な設定はあると思うのでそれに従って設定してください。 EXCEL2007以降でも使えると思うが。
- imogasi
- ベストアンサー率27% (4737/17069)
十分詳しいわけではないが、 エクセルの分数について、やってみて、整理すると 諸例 計算 分数 分数 =A1+B1 書式 1/2 1/3 5/6 1/20 1/30 1/12 1/200 1/300 1/120 1/2000 1/3000 1/1200 # ????/???? 1/20000 1/30000 1/12000 # ?????/????? 0 1/200000 0 1/300000 #VALUE! 諸例 入力 とセルに表示 入力する方法 設定書式 13/192 0 13/192 1/2 0 1/2 2/31 0 2/31 1112/1113 0 1112/1113 23 1/3 23 1/3 1 1/11111 0 11112/11111 234 2/3 234 2/3 2345 345/346 2345 345/346 # ????/???? 分数の入力方法 そのセルの表示形式をとりあえず「分数」にしています。 上記は0 1/2のように0とスペースと/を挟んだ数字2つを入力しています そしてさらに表示形式をユーザー定義で# ????/????などと桁数をあわせています。 約分できるときはエクセルに約分されてしまいます(例)2/4-->1/2 この桁数を増やすやり方も5桁までしか出来ないようです。 <---回答者と同じ経験? 帯分数になる場合は 1 1/2 のように表示される。 帯分数の入力も、整数部+1スペース+分数(真分数の形、分子より分母が大きい)で入力する ーーー エクセルは分数であっても、「セルの値」は少数化して持つと思う。 それを表示形式指定が、/を挟んだ指定をされると、極力分数の形に整えるようだ。 それで、入力した分母・分子の数字をそのまま覚えてはいないようだ。だから微妙に不思議な例に出くわした。 エクセルのセルの値の持ち方からして、小学校で習うよな分数の計算とは異なる。 桁数(?の指定)が5桁で制限されているように見える理由も、私には知識不足で理由が判らない。 ーー いよいよ凝るなら、2つの文字列で分数を入力し、VBAで分子分母に分離し、両分母の最大公約数(LCM)を計算し、通分して、計算して答えを分子分母に分けて文字列でだすようなことを考えないといけないのではないかと思った次第です。 なおLCM関数は、VBAでは使えないようですから、ユークリッドの互除法などでプログラムを作る必要があるようだ。
書式設定で分数にして、分母を10万以上にすると計算できないようですね。 目的と違ってしまうかもしれませんが、 A1に =373/10000 と計算式を入れて小数にします。 B2も同様に、計算式を入れ小数に。 C3で普通に計算すると結果が出ます。 C3の書式設定をユーザー定義で 0000/00000000 などとすれば 分数表示になります。 正しいかどうか確認していませんが。
- okormazd
- ベストアンサー率50% (1224/2412)
入力するとき、 「=373/100000」 「=37/500」 としてみたらどうでしょう。
補足
早速のご回答ありがとうございました。 ご回答の通りにやってみたらできました。 ただ質問にも書いたのですが、 分母が億単位の分数の足し算をする必要があり、 分母の桁数の大きい分数でイロイロ試していたところ 例えば A1に=373/10000000 と入力すると373/8230563と表示されたり A1に=17/9809000000 と入力すると0と表示されたり もう訳がわかりません(T_T) 分母・分子ともに桁数を増やしても 問題なく足し算ができる方法を もしご存知でしてらぜひ教えてください。 よろしくお願いいたしますm(__)m