[[20230105110156]] 『奇数の場合は四捨五入して偶数の場合は切り捨て、』(のりしお) ページの最後に飛ぶ

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

 

『奇数の場合は四捨五入して偶数の場合は切り捨て、他1件』(のりしお)

 お世話になっております。
 おそらく不可能と思いますが、淡い期待を込めて投稿いたします。
 
 質問1:関数を使用した計算式を入力したいのですが、その時の回答が
 ☆有効数字3ケタ目が「5」の場合のみ☆
 ・小数点以下が奇数の場合=四捨五入
  (例:回答が1.235の場合=1.234)
 ・小数点以下が偶数の場合=切り捨て
  (例:回答が1.325の場合=1.320)
 になる関数等がありましたら教えていただけますでしょうか。
 
 質問2:連続して関数を使用し結果を求めていくのですが、
 コンマ百分の一まで電卓で計算した結果と狂わないようにしたいです。
 小数点以下第3位以下は次の関数に参照されないようにする関数等あれば
 ご教授いただけないでしょうか(ROUND関数だと参照されますよね?)
 以上、よろしくお願い申し上げます。
 

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


 [奇数][偶数]は一般的に「整数」についての考え方ですので
 >小数点以下が奇数
 では一般的に意味が伝わらないのではないでしょうか?

 質問2も、ちょっと何言ってるのか分かんないです。(少なくとも私には... )

(白茶) 2023/01/05(木) 11:42:22


 同じくわけわかめなんですが
 小数点第2位が偶数・奇数の場合、と解釈すると、
  ・小数点以下が奇数の場合=四捨五入
  (例:回答が1.235の場合=1.234) ←1.240じゃないの?
 ・小数点以下が偶数の場合=切り捨て
  (例:回答が1.325の場合=1.320) ←こっちが正しいならば↑は

 質問2に関しては、小数誤差のことなら一度整数になるまで値を大きくしてから、最後に戻せばずれる要素ないけど・・・
(稲葉) 2023/01/05(木) 11:50:25

 1番目について。
 ユーザー定義関数でもよければ。
 また銀行丸めだとして。

 標準モジュールに
 Function E_ROUND(WK_RANGe As Range, WK_DIGIT As Integer)
    E_ROUND = Round(WK_RANGe, WK_DIGIT)
 End Function
 と入れて
 =E_ROUND(セル番地,桁数)
 ではどうだろう?

 ただしワークシート関数のRUNDと違い桁数にマイナスは使えない。

 なお
 EXCEL 銀行型め
 で検索するとワークシート関数での方法が見つかるかと。
(ねむねむ) 2023/01/05(木) 11:55:20

 皆様コメントありがとうございます。
 申し訳ありません、文章が乱れておりました。
 質問1について、小数第三位が「5」という状況で、
 少数第二位が奇数の場合は四捨五入、偶数の場合は切り捨て
 という式でございます。
 また奇数で表している例も誤りで、回答が1.235の場合1.240となります。失礼いたしました。
 まだ言葉足らずな部分があるかもしれませんが、都度ご教示いただけますと幸いです。
(のりしお) 2023/01/05(木) 12:07:13

 ねむねむ 様
 回答ありがとうございます。そして最も欲しかった答えでした!
 仰るとおり、銀行型丸め(JIS丸め)がしたかった次第でございました。
 この単語を存じ上げませんでしたため質問が滅茶苦茶になってしまいましたね・・・
 本当に助かりました、ありがとうございます!!
(のりしお) 2023/01/05(木) 13:16:50

 なるほど偶数丸めのお話だったんですね...

    Function Round2(a, b)
        Round2 = Round(a * 10 ^ b)
        Round2 = Round2 / 10 ^ b
    End Function

(白茶) 2023/01/05(木) 13:29:14


あ、ちょい追記
    Function Round2(a, b)
        Round2 = Round(a * 10 ^ Fix(b))
        Round2 = Round2 / 10 ^ Fix(b)
    End Function

(白茶) 2023/01/05(木) 13:33:15


コメント返信:

[ 一覧(最新更新順) ]


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