[[20200812203940]] 『小数点の繰上げ、切捨ての方法を教えてください』(KEI) ページの最後に飛ぶ

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

 

『小数点の繰上げ、切捨ての方法を教えてください』(KEI)

          例)1    例)2

  A:  5517  →5517.5  →5517.4

  B:   235  → 235.5  → 235.5

  C(計):5752(3) →5753    →5752

上記計算式の例)1、例)2はあくまで例です。

  
前段階でAとBを個別に関数の掛け算や割り算(A1*B2みたいな式)でだします。(ここで小数点が発生)で、A+BをしてCを出す前にAとBの小数点第一位の数字のみを

合計して1以上であればAのみを1繰り上げしBは切り捨て、A+BでCを出します。
合計して.9以下であればAとB共に小数点第一位を切り捨てA+BでCを出します。
このような計算式ですが可能でしょうか? 皆様、お願いします。

※前段階(A1*B2式)からひっくるめて一つのセルに収めたいです。

< 使用 Excel:Excel2016、使用 OS:Windows10 >


 小数演算誤差の絡みは厄介ですが、
 考え方としては単に合計を切り捨てればいいんじゃないですか?

 A3セル =INT(ROUND(A1+A2,9))

 <結果図>
 行  ___A___  ___B___
  1  5,517.5  5,517.4
  2    235.5    235.5
  3  5,753.0  5,752.0

 >※前段階(A1*B2式)からひっくるめて一つのセルに収めたいです。
 ひっくるめるのはそちらで対応してください。(単に代入するだけなので)

(半平太) 2020/08/12(水) 22:36


半平太さん、ありがとうございます。ただ、合計を切り捨てる方法は今回使用できず
どうしても”小数点第一位のみ”を計算してからでないとだめなんです。

・合計して1以上であればAのみを1繰り上げしBは切り捨て、A+BでCを出します。
・合計して.9以下であればAとB共に小数点第一位を切り捨てA+BでCを出します。

上記の条件で一つ一つAとBの小数点第一位を確認後、計算後にCを出したいのです。
ややこしいですが、よろしくお願いします。
(KEI) 2020/08/12(水) 22:51


 >上記の条件で一つ一つAとBの小数点第一位を確認後、計算後にCを出したいのです。
 >ややこしいですが、よろしくお願いします。

 計算結果に違いが出るとか、計算過程に特別な意味があると言うことなら検討しますが
 そうじゃないなら、申し訳ないですが、合理性に欠けるので私は対応いたしません。

 他の回答者のレスをお待ち下さい。 

(半平太) 2020/08/13(木) 09:04


質問の仕方がおかしかったみたいです。申し訳ありません。

1と2の小数点の計算結果も記載し使用する数字と
なりますのでよろしくお願いします。

  例(1     例(2
1 5517,5  1’ 5517,4
2 235,5  2’ 235.5

前段階で掛け算や割り算で1や2等の小数点が入った数字が出てきます。

・条件・
1と2の様に小数点第一位”のみ”を足し算して1.0以上になれば1のみ繰り上げ2は切り捨てる計算式
1'と2'の様に小数点第一位”のみ”を足し算して0.9以下になれば1と2を共に切り捨てる計算式

この上記2つの式をIFを使用し1、2等に入れたいのですが可能でしょうか?

‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
ちなみに、一番最初の3まで加えると計算過程で結果変わってきます。

半平太さんのを少し引用させていただきます。
行 ___A___ ___B___
1 5517,5  1’ 5517,4
2 235,5  2’ 235.5
3 5753.0  3’ 5752.0

1と2で最初に上記条件で繰り上げや切り捨てなどした結果

行 ___A___ ___B___
1  5518   1’ 5517
2   236   2’ 236
3  5754.0  3’5753.0

                となります。

長々と書きましたが重ねてお願いします。
(KEI) 2020/08/13(木) 09:58


 >前段階で掛け算や割り算で1や2等の小数点が入った数字が出てきます。
 その部分が行き違いを発生させているようですが、
 具体的な説明がないので、止むなくこう書いたのですが、
                  ↓
 > >※前段階(A1*B2式)からひっくるめて一つのセルに収めたいです。
 > ひっくるめるのはそちらで対応してください。(単に代入するだけなので)

 例えば、A1に相当する「前段階で使った数式」が、B13*0.1
     A2に相当する「前段階で使った数式」が、Z356/20 なら

 A3セル =INT(ROUND(B13*0.1+Z356/20,9)) 
  ↑
 とする。A1やA2は私の数式とは全く無縁となる。

(半平太) 2020/08/13(木) 10:39


半平太さん、ありがとうございます。
もう一度、試行錯誤してみます。

また、なるべくわかりやすい文章を考えて
投稿するかもしれませんのでよろしくお願いします。
(KEI) 2020/08/13(木) 12:18


もう解決しているでしょうか?
一応、こういう方法もありますと紹介します。
Aの式、Bの式、は前段の計算後とおっしゃっている数式をそのままそこに入れてください。
数式として、以下を記入します。

A1
=A3-A2
A2
=int(Bの式)
A3
=int(Aの式+Bの式)

(DS) 2020/08/14(金) 10:58


DSさんもありがとうございます。
返信が遅くなりましたが一例ありがとうございます。

やはりやくわからず、お願いします。
数字は変わりましたがこれで分かりやすくなったでしょうか?

前段階の計算で使用する値です

   -A-  -B-  -C-
1  2857  2369  9.5
2  3650  3369  9.5

D,Eの1.2に共通な点は1.2の小数点第一位”のみ”を足し算し0.9以下か1.0以上かを区別し繰り上げ切り捨てすることです。

       -D-                     -E-
1 2857*9.5=27141.5             1 2369*9.5=22505.5
2 3650*9.5=34675.0             2 3369*9.5=32005.5

 この場合、0.5+0=0.5なので共に切り捨てます  この場合、0.5+0.5=1.0なのでE1の解を繰り上げますE2は切り捨てます

重複しますが、これを1つのセルに
前段階の式と小数点第一位”のみ”を足し算して0.9以下なら共に切り捨て、1.0以上であれば
(E1の解を繰り上げますE2は切り捨て)区別し繰り上げ切り捨てすることです。
上記の条件で最終的にD1,2とE1,2の解がわかる式をお願いしたいです。

半平太さん、DSさん、皆さんよろしくお願いします。
(KEI) 2020/08/17(月) 11:30


D1: =D3-D2
D2: =INT(A2*$C2)
D3: =INT(ROUNDDOWN(A1*$C1,1)+ROUNDDOWN(A2*$C2,1))
としてください。E列はこれを右にコピーして下さい。
 
DSさんの考えで概ねよいわけですが、
小数点以下が、
.55
.48
などとなった時には、単純に加算すると繰り上がるので、
それぞれで小数一位に切り下げてから加算すればよいと思います。
 
質問者さんは、この式に納得できないということであれば、
反例(この数式ではうまくいかない例)を考えて提示してください。

(γ) 2020/08/17(月) 15:34


半平太さん、DSさん、γさん!ありがとうございます。うまくいきました。
これで、仕事効率が向上し他の案件に時間を裂くことができます。
重ねて御礼申しあげます。

(KEI) 2020/08/17(月) 21:37


コメント返信:

[ 一覧(最新更新順) ]


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