A 回答 (16件中1~10件)
- 最新から表示
- 回答順に表示
No.16
- 回答日時:
比較できそうな画像がでてきたので、それに合わせた形で添付いたします。
黄色の部分(特に9.995の結果)が質問者の意図に一致しているかの確認いただければと思います。
緑色については、黄色でも表示してある値ですが、124になるのであれば、何故124なのかを教えていただきたく思います。
※添付図内でC,Dと表記していますが、C列に空白行を挿入したため、
D,Eに変わっているのを直し忘れていました。
とてもわかりやすい比較画像ありがとうございました。
黄色の値ですがバッチリ合っています!
9.995の結果も大丈夫でした。
そして緑色の値ですが、124ではなく125になるのが正解ですので124になるという説明が間違えておりました。
混乱を招きすみません。
何通りもの数字をA1に入力し試してみた結果、作って頂いた式は全ての条件を満たしており完璧だと思います!
yuji3690様本当に最初から最後までありがとうございました。
No.15
- 回答日時:
#10の回答者です。
割り込み失礼します。
「最初の0を除く左から4番目の数字が5で終わり、かつ5の一つ前の数字が奇数の場合は、5を切り捨てる。
しかし、
最初の0を除く左から4番目の数字が5で終わり、かつ5の一つ前の数字が偶数の場合は5を切り上げる。」
これは、「銀行丸め」「最近接偶数丸め」「偶数丸め」とも呼ばれる計算方法です。ISO/JISに規定される丸めの方法で、四捨五入や五捨五入とかとは、まったく次元の違う種類のものです。
''標準モジュール
Public Function VROUND(ByVal arg As Double, k As Integer)
VROUND = VBA.Round(arg, k) '
End Function
'//
呼び名はどのようにも構わないものの、それそのものの事実/結果は変わらないと思います。ただ、これは、浮動小数点丸め誤差を知らないということだと思います。
さて、その推論でもって問題を解こうとしました。
条件としては、なるべく、VBA内のコードをいじらない方法でやってみました。
そうしないと、その証明にはならないからです。
そうすると、結果として、たったひとつの数学的な矛盾が生じています。
どちらを優先させるのか、それとも、間違いなのかはこちらでは分かりません。もともと、どんな理由でご質問なさっているかは書かれておりませんから、#11様のご意見のように、個別・任意なものかもしれません。もし、そうなら、そこには一般的な結論は存在していないことになりますが、ご質問者さんは、出された数字の合っている・あっていないを、何を元に発言されているのか気になるところです。
想定できるのは、コンピュータが吐き出した数字のリストからだと思います。
今回出ていた数字の結果を新しい順に纏めてみました。補正側を主にしてみてください。
No.14
- 回答日時:
整数→そのまま :No12でのINTを用いた判定式で可能
整数ではない(=小数)&3桁未満→そのまま :No3で作った式のままで可能
小数&1000以上(小数点より左に4桁以上)→小数第1位を四捨五入 :条件を設定しROUND
小数&1000未満(小数点より左に3桁以下)左から4番目の数字が5で終る→五捨五入 :No3のまま
小数&1000未満(小数点より左に3桁以下)左から4番目の数字が5で終る以外→四捨五入 :同上
つまり3つ目の条件を加えるだけで可能なようですね。
=IF(INT(A1)=A1,A1,IF(A1<1000,~,ROUND(A1,0)))
~の部分は前回同様No3での式を入れてください。
先ほどのコメントで
124.56→124
となっていますが、5の後に6が続いているので、5を四捨五入して125ですね?
No.13
- 回答日時:
「小数点以降も数字が続く場合」の定義をもう少し詳しくお願いします。
例の場合ですと0.1235を0.124と表示するのですよね?
それとも、これは0.1の1を四捨五入して0となるのでしょうか?
整数の場合はそのまま、ということでしたので、小数が発生する場合のみ五捨五入を使用するはずです。
小数がある場合は整数に四捨五入するのであれば、五捨五入を使用する場合は存在しなくなります。
①整数ならそのまま表示する
②小数点以降も数字が続くなら、小数第一位を四捨五入して整数とする
③どちらにも該当しないなら、左から4番目の数字を五捨五入する
としたいはずですので、②に該当する条件を理論的に説明できれば、式を考える事ができます。
説明下手ですが、条件をまとめてみました。
すみませんがお願い致します。
①整数&小数点以降も数字が続くが有効数字が3桁以下ならそのまま
1234→1234
23.4→23.4
2.34→2.34
②小数点以降も数字が続く場合
【小数点の左が4桁以上ある場合は無条件で小数第一位を四捨五入する】
1234.5
1234.56…
→1235
12345.6
12345.67…
→12346
【しかし小数点の左側が3桁以下であり、(最初の0は除いて)左から4番目の数字が5で終わる場合】
123.5→5の前が奇数なので124
124.5→5の前が偶数なので124
【小数点の左側の数字が3桁以下で、(最初の0は除いて)左から4番目が5以外の場合&4番目以降も数字が続く場合は4番目を四捨五入】
123.4→123
123.56→124
124.56→124
No.12
- 回答日時:
>「A1が整数の場合は四捨五入などせず、A1の数をそのまま使用」
=IF(INT(A1)=A1,A1,~)
INT(A1)がA1の整数部分のみ抽出したものですので、
それが=A1である(つまりA1が整数である)場合はA1を、
そうでなければ(A1が整数でなければ)~(ここに計算したい式を入れてください)
を表示する。という式ですね。
できました!
ありがとうございます!
更にですがこの式に、例えば
1111.1→1111
6666.6…→6667のように
小数点以降も数字が続く場合には小数第一位を四捨五入するという条件を付け足したいです。。
今作って頂いた式だと
1111.1→1110
6666.6→6670になってしまいます。
そんな式はできますでしょうか?
No.11
- 回答日時:
横槍で申し訳ないですが、No.10さんの言うような"特別な計算方法"でも何でもないと思います。
10年以上前ではありますが、数学の授業で『五捨五入』として普通に習いました。
なので前回の質問で、切捨て切り上げの表現が逆であるとすぐに分かった訳です。
『有効数字3桁残して五捨五入をしたい』と質問されていても、大体理解はできたと思います。
『有効数字3桁残して銀行丸めをしたい』と質問されていたら、よく分かんないからパス。となっていたかもしれませんが…
(あくまで自分の場合です)
四捨五入と比べると使用頻度からあまり覚えられていないかもしれませんが、五捨五入を特別扱いしていては、数学の問題なんて特別のオンパレードかと…
質問者に直接関係のない回答を失礼しました。
No.10
- 回答日時:
#2の回答者です。
>色々説明不足すぎて
とおっしゃていますが、そもそも、その計算は、ご質問者さんが考えたものではなく、必要あって実用のための特別な計算方法だと思います。
その経緯をご説明されたほうが早いのではないでしょうか。
私は、それを「銀行丸め」、「偶数丸め」とか、「最近接丸め」とかいうもので、本来、そのような計算は、古くからすでに存在しているものだと思って回答をしましたが、何か、そういう認識さえないようです。ただ、それでは回答はどれでもなくなってしまいます。VBAをされている方なら、ご存知のものだと思います。
違うなら違うで構いませんが、ひとこと書かせていただきました。
No.9
- 回答日時:
>No.8
何故9.995が9.99になるのでしょうか?
左から4番目の数字=5
その前の数字=9=奇数→切り上げ
9.995の5を切り上げれば10.00となり、
セルの書式が標準であれば10と表示されます。
質問者の書いている内容とは一致しているはずですが。
この奇数→切り上げは、添付画像とは逆ですが、前回の質問
https://oshiete.goo.ne.jp/qa/9712050.html
にて、奇数なら切り上げ、偶数なら切捨て、と訂正されていましたよ。
No.8
- 回答日時:
yuji3690 さんの式ですが残念ながらまだダメみたいです
「9.995」の場合は「9.99」が正解ですが「10」になってしまいます。
通常関数の組合せだと複雑すぎてしまって確認が面倒な気がします。
また数値がマイナスのときも考えるとさらに複雑になりそうです。
No.7
- 回答日時:
あ、説明文も間違えてますね(汗)
ROUNDUP(A1,-INT(LOG10(A1))+2)), ←そうでない(5番目以降の数字がない)なら、4番目の数字を切り上げ
ではなく、
ROUNDUP(A1,-INT(LOG10(A1))+2)), ←そうでない(5番目以降にも数字がある)なら、4番目の数字を切り上げ
ですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- メルカリ 【メルカリについて質問です】 私はメルカリで約60件くらいお取引きしたのですが、先日購入者の方が初め 5 2023/03/03 14:40
- 法学 法律の条文について。わざと?と言いたくなるほどわかりづらい表現をするのは何故なんだ? 3 2023/02/11 15:19
- 相続・贈与 相続税の申告についての質問です。被相続人が亡くなった場合、亡くなった日付の残高証明を銀行で取っておい 3 2022/03/27 13:09
- メルカリ 質問です メルカリの評価一覧になりますが 今現在で良かった(99)で残念だった(1)なのですが! い 2 2022/04/07 18:41
- 教えて!goo 質問に、良い回答がたくさんついたあと、どう見ても悪意のある、わざとこちらを不愉快にさせようとしている 5 2022/04/24 18:12
- カップル・彼氏・彼女 遠距離月1 であってるんですが、 サービス業の彼から 明日休みになった( ^ω^ )と連絡がきました 1 2023/01/02 20:43
- 哲学 ソビエトのマルクスイズムに対比し、アメリカの生き残った”一つの理念“のシステムとは何でしょうか? 2 2022/12/09 09:12
- 会社・職場 聞きすぎる性格との向き合い方 7 2022/08/29 12:43
- その他(行事・イベント) 人事異動に伴う餞別や記念品などを部署一同で贈る場合の徴収範囲について質問します。 2 2023/07/30 15:35
- その他(ニュース・社会制度・災害) 非現実的な、北方領土問題を取り上げ続ける意義は何ですか? 現実的に、いくら労力を注いでも返還される見 4 2022/03/23 21:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
1796.875 を有効数字3桁で表す...
-
約の範囲は一体どの位からなの...
-
エクセル関数の50円単位の四捨五入
-
四捨五入した数の合計が100.0%...
-
エクセルでround関数を使わない...
-
Excelで構成比の各要素の合計を...
-
7000g が 6500g になってしま...
-
「小数点以下第2位までで答えな...
-
何万強とか何万弱というのはど...
-
Excelで二捨三入したいのですが...
-
割合(%)を出すとき、小数第...
-
アクセスでの演算で少数点第1位...
-
四捨五入でどこから切り上げる...
-
小数点以下「3桁で」四捨五入?...
-
小数点第1位切り上げ?
-
小数1位と小数1位止との違い
-
小数第4位まで求めろと言われた...
-
エクセルでの時間計算にて
-
百の位以下をゼロで表したい
-
1.554・・・ の小数点以下第1位...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
四捨五入した数の合計が100.0%...
-
約の範囲は一体どの位からなの...
-
エクセル関数の50円単位の四捨五入
-
7000g が 6500g になってしま...
-
何万強とか何万弱というのはど...
-
1796.875 を有効数字3桁で表す...
-
Excelで構成比の各要素の合計を...
-
小数点第1位切り上げ?
-
新しい算数(小4) 四捨五入・...
-
割合(%)を出すとき、小数第...
-
小数第4位まで求めろと言われた...
-
「小数点以下第2位までで答えな...
-
Excelで二捨三入したいのですが...
-
エクセルで3捨4入
-
小数1位と小数1位止との違い
-
エクセルでround関数を使わない...
-
小数点以下「3桁で」四捨五入?...
-
アクセスでの演算で少数点第1位...
-
EXCELで「有効3桁で四捨五入」
-
四捨五入でどこから切り上げる...
おすすめ情報
これの続きです。
色々説明不足すぎて、回答して頂いている皆さんにご迷惑をおかけしております。申し訳ありません。
そして回答頂ている方々ありがとうございます!