[[20031028104133]] 『分数について』(みど) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『分数について』(みど)

過去の質問も読んでみたのですが、今ひとつ理解できないので、教えてください。
分数(例1/2)を、小数(0.5)でなく、分数として表示したい時、勝手に通分しないで、入力した通りに表示することは出来ないんでしょうか。「0 2/4」と入力したら、「1/2」とならずに、「2/4」となって欲しいのです。1を超える場合(例3/2)は、「0 3/2」と入力したら、「1 1/2」になって欲しくないのです。勿論、全て数値として扱い計算に使いたいのですが。


 セルの書式をユーザー定義で?/?にしてみたら?(YS)

おしいです。「3/2」は、出来ました。でも、「2/4」→「1/2」です。(みど)

 そうですね、もう少し調べます(YS)

「?/?」は、副作用があるみたいです。「9/10」→「8/9」になっちゃいます。いろいろ試しきれていませんが、分母が2桁になるといけないようです。(みど)

 そうなんですよね。9/10は?/??にする必要がありますよね。

 分数の表示は「入力した通り」に表示するのは難しいみたいです。
 入力した分数はいったん少数値に変換され、
 分数表示形式に設定してある場合は「近似値」を設定された分母の
 許容範囲内で表示します。
 処理としては「どうやって入力されたか」ではなくて、
 「入力後の値はどれだけか」が表示の判断基準になっているようです。
 したがって、分母を任意のものにしたいときはその都度ユーザー設定で
 「?/4」「?/12」などにしてやる必要があります。

 セルごとの設定が難しいようなら、「分子」「/」「分母」を別々のセルに入力して
    A  B  C   D
 1  2  /  4   =(A1/C1)*15

 などのようにしてみてはいかがでしょう。
 (KAMIYA)

 もしくは、多少「チカラワザ」になりますが、
 例えばA1を表示形式文字列に設定して分数を入力し、下記数式でA1を参照すると
 数値化できます。
 =VALUE(LEFT(A1,FIND("/",A1)-1))/VALUE(RIGHT(A1,LEN(A1)-FIND("/",A1)))
 (KAMIYA)

 横から失礼します。Yosh!です。
文字列として入力しておいて、計算時にVALUEで変換するというKAMIYAさんの案が
一番簡単な方法のように思います。ただ、KAMIYAさんの式だと「0 3/2」の入力には
対応していないようなので、少し変更した式を考えてみました。
=VALUE(IF(ISERR(FIND(" ",A1)),"0 "&A1,A1))  (Yosh!)

 2/4、9/10のように入力通りに表示させるには「表示形式」分数で「分母を4に設定」や「分母を10に設定」とします。
ただし、3/2のような仮分数の表示はされません。
以前に分数計算式の説明をした記憶がありましたので、検索しました。
ただし、最大公約数、最小公倍数、通分、仮分数を帯分数にするなどの関数の関係で分析ツールを組み込む必要があります。
[[20030408191040]] 『きちんとした分数の入力ができません』(ミッコ)
 (シニア)

いろいろとアドバイスありがとうございました。なかなか簡単ではないと言うことが判りました。余り分数に拘らない方が良いぞと言うのが、私の結論です。実のところ、冒頭で説明を省いてしまいましたが、分数と言うよりは、100個調べて3個不良とか、98個調べて49個不良とかと言ったデータを扱い、且つ計算したかったのです。この時、単に不良率だけでなく、標本の数を議論する必要があり、通分したくない場合がありました。また、100個投入して97個合格とか、前日の仕掛り分があると、100個投入して103個合格と言ったケースが出たりします。多くの場合は、分母、分子を別のセルで扱えば何とかなるので、そのようにします。勉強になりました。(みど)

 上記の説明であれば、入力通りに表示させて、計算もさせたいですね?
前準備として
分数入力欄の列番号を選択して、「セルの書式設定・表示形式・文字列」とします。
分数計算させる列番号を選択して、「セルの書式設定・表示形式・数値(桁数指定)かパーセンテージ」とします。
分数列に3/100、49/98、・・・・・のように入力します。
不良率の欄にKAMIYAさんの=VALUE(LEFT(A2,FIND("/",A1)-1))/VALUE(RIGHT(A2,LEN(A2)-FIND("/",A2)))式入力
またはEXCELは文字列の式でも計算しますから、VALUE を除いて
=LEFT(A2,FIND("/",A2)-1)/RIGHT(A2,LEN(A2)-FIND("/",A2)) と式入力しても結果が得られます。
このような設定をすれば、みどさんの予定していた設定になるのではないですか?
【注意】事前にセルの書式を文字列にしないと、EXCELは勝手に日付と判断してシリアル値を返します。
このような場合は分数の前に半角スペース入力すれば、文字列になります。
 (シニア)


'数字/数字
と入れると良いですよ
(1) 2014/10/09(木) 14:49

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.