- 締切済み
書式とかラウンド関数で表示された数字で計算したい
セルの表示形式で、マイナスは0で表示される設定がされていたり、rounddown関数で小数点切り捨てられた数字が表示されています。 そこに表示されている数字をそのまま使って合計したりしたいのですが、小数点やマイナスが反映されてしまいねらった計算ができません。 あくまで表示されている数字で計算したいのですが、どうすればうまくいくでしょうか? あと、あまりを求めるmod関数についてですが、小数点以下も表示されるのはなんででしょうか?mod関数は余りを求める関数と理解しているので、正数にしかならないと思うのですが・・・ お答え宜しくお願いします。
- みんなの回答 (7)
- 専門家の回答
みんなの回答
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 同じことが繰り返されていますが、私の経験談を踏まえて書かせていただきます。 それは、私が一番最初に表計算を使った時に気がついたことだからです。 >そこに表示されている数字をそのまま使って合計したりしたいのですが、小数点やマイナスが反映されてしまいねらった計算ができません。 その処理をきちんと関数で行うことです。その手間を惜しんではいけないのです。 「オプション-表示桁数で計算する」というのは、使えるようで実務上では、使えないのです。その注意を喚起するために、メッセージダイアログが出てきます。 表示形式で直すと、問題なのは、一番下桁が四捨五入されるという問題が出てきます。それでは、使えません。やはり、正しく、ROUNDDOWN関数で、有効以下桁数を切り捨てる、というのは、基本的な表計算の使い方だと思います。 =2/3 は、表示形式「0.00」で、0.67 になってしまいます。 =2/3 を3つ足したら、2.01 ではいけませんね。お金を扱う仕事では、その計算過程が示されていないので、後々大変なことになってしまいます。この20年来、表示形式の切捨てモードはありません。アメリカのようなチップがある国では、それが標準なのかもしれません。アメリカは、銀行でも、その程度(数パーセント)の誤差は平気だそうですから。 本当は、切捨てモードがあればよいのですが、なぜか、そういう機能は備わってはいません。便利なようでおせっかいな機能です。 >あまりを求めるmod関数についてですが、小数点以下も表示されるのはなんででしょうか? みなさんがむつかしく書いていますが、小学生の算数の問題だと思います。 10 ÷3 の余り (3 が3つと、余りが、1) =MOD(10,3) は、余り 「1 」 では、 10/3 ÷3 の余り (1/3 が 3つと、余りが、1/3) =MOD(10/3,3) は、余り「1/3」ですね。 (Excelは、分数表示が苦手--正確ではありません。表示形式「# ?/?」として出てきますが。)
- p-applepie
- ベストアンサー率53% (156/290)
>ツール→オプションを開いて 計算方法のタブで >「表示桁数で計算する」にチェックを入れてみてください とコメントしたものです。 上記の方法では A1~A5に 1.2 と言う数値が並んでいて 表示形式で1としている時(セルを選択すると数式バーに1と見える状態) A6に =SUM(A1:A5) と入れると 通常は 結果が 6となります。 オプションのチェックをつけると6となり、結果を別セルに 値貼り付けしても5は保持されます。 同様に 1,2000という数値を5個並べて、表示形式で千以下を 表示させていない場合も、SUM関数に同様の書式設定を していれば5となります。 もちろん正しい答えではないのですが、とりあえず表示させている値を ざっと計算する時に使用します。 桁数の多い数値を扱う場合など、印刷する資料は100万以下を 表示させない等の処理をする事がありますが、印刷資料を見た人が (電卓で打ったりして)計算する値と、実際の値の差分を 簡易的に確認する時などに使用しています。 同様の使用法ならこの方法が有効です。 正確な数値を出す場合は、元数値は残したままで、他の方が 言われている通りIf文などを使用して丸めた数字を出されるといいと思います。
お礼
ご回答有り難うございます。表記の内容をしっかり理解できるには まだ時間がかかりそうですので、まずお礼をさせて頂きます。 私の考えていたよりも奥の深いものだったんですね。
- imogasi
- ベストアンサー率27% (4737/17069)
>表示されている数字で計算したいのですが 「計算」は、エクセルでは、四則演算か関数で行います(VBAでセットする場合など除き)。 前の段階での「関数」の結果は、セルの「値」を、作ってしまうので、基本的には、そのセルを参照する関数は、その「値」を計算に使いますので、心配する(議論する)ことではありません。 質問前半は、もう一度表現を考え直してください。 セルの表示形式で、見えている数字で計算させるのは、上で言った「関数はセルの「値」を使って計算し「値」を返すもの」という原則に反するので、できません。 ーー 気になるのは、ツールーオプションー計算方法ー表示桁数で計算する ですが、 (1)桁数でのことに限られる A1=1、A2=2、A3=SUM(A1:A2) A1表示形式"0",A2も同じ。A3は標準。A3は2になって、0にならなかった。 (2)セルの「値」を変える(場合が在る)ので 値は、元のままで計算だけ表示形式の結果で計算するものではないということです。 元の値が捨てられて良い場合というのは、実務などでは、そうないと思いますので、 関数でできるパターンであれば、関数で別セル(配列数式など使えばそれが不要な場合が考えられる)に、表示形式で見えている数を、関数で「値として」作り、その値に対し計算するのが、本筋でしょう。 たまたま、「表示桁数で計算する」で必要な数字になる場合は、使えばよいし、使えない場合は、関数で望みの数を作るということです。
お礼
ご回答ありがとうございます。 文章をよく読ませてもらい、理解したいと思います。 まずお礼をと思い投稿させて頂きます。
「mod関数」の[書式]は =MOD(数値,除数) ですね。 「数値」(被除数)も「除数」も整数の場合は商(除算の答え)も剰余(余り)も整数になるが、そうでない(小数点を含む)場合は、当然のことながら剰余も小数点を含むことがあります。
お礼
ご回答有り難うございました。 参考にさせて頂きます。
- zuhka
- ベストアンサー率12% (2/16)
まず、「書式設定」と「関数」は、根本的に違うということを理解してくださいね。 たとえば、計算結果が「2」と表示されていたとしても、書式設定で小数点以下を『表示しない』設定になっているだけだと、パソコンの中での実際の数字は「1.5」だったり「2.499…」だったりすることもあるので、必ずしもお望みの結果にならない可能性があります。 ROUND関数やINT関数などをを使って、四捨五入した数字(または切り捨てた数字)は、あくまで見た目どおりの数字なので、「2」と出ていればそれは間違いなく「2」です。 もうひとつの質問、MOD関数のほうは、引数に小数が入ってる場合、値が必ずしも整数とはなりません。 具体例をひとつ、「MOD(9.6,3)」を例にして説明しますね。 この場合、9.6を3で割ったときの余り部分を返してください、ということになるので、 9.6÷3=3・・・0.6になりますので 出てくる答えは「0.6」になります。
お礼
ご回答ありがとうございました。 まずお礼をと思い投稿させていただきます。 上記およびその他の回答を参考にさせて頂きます。
- p-applepie
- ベストアンサー率53% (156/290)
ツール→オプションを開いて 計算方法のタブで 「表示桁数で計算する」にチェックを入れてみてください。
お礼
ご回答ありがとうございます。 エクセルに慣れていませんので、一つずつ確認させていただいているので、まずお礼をと思い投稿させて頂きます。
- chickenkatu
- ベストアンサー率33% (64/191)
(1)小数点 INTで丸める (2)マイナスが0 a=cells(x,y) if a<0 then a=0 じゃダメですか? (3)mod関数 実数で計算させたり、浮動小数点を使用すると、例え答えが1であっても、1.000000等と表示されますが、そういう事ですか? あと正数じゃなく整数ですよね。
お礼
素早い回答有り難うございました。 思いがけず多くの意見を頂き有り難うございます。 なにぶんエクセルはじめて間もないものですので、 一つ一つの回答を確認しながら返答していくことになると思いますので、お礼の投稿が遅れることをお許しください。
お礼
ご回答有り難うございました。 最近エクセルの便利さに気づき、質問させていただいたのですが、 他の方の意見も含めて、要点理解にすこし時間がかかりそうですので、 まずお礼をさせて頂きます。 使いこなせれば便利なんでしょうが、そこまでが大変ですね。