Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


7661 / 13644 ツリー ←次へ | 前へ→

【37669】四捨五入値の合計方法 t29x0479 06/5/15(月) 10:08 質問[未読]
【37671】Re:四捨五入値の合計方法 Blue 06/5/15(月) 10:18 質問[未読]
【37672】Re:四捨五入値の合計方法 t29x0479 06/5/15(月) 10:19 質問[未読]
【37674】Re:四捨五入値の合計方法 Blue 06/5/15(月) 11:02 発言[未読]
【37675】Re:四捨五入値の合計方法 ichinose 06/5/15(月) 11:12 発言[未読]

【37669】四捨五入値の合計方法
質問  t29x0479  - 06/5/15(月) 10:08 -

引用なし
パスワード
   それぞれのセルを四捨五入した値の合計を式で一発で出せないでしょうか?
下記のような場合、合計してから四捨五入すると10になってしまい、それぞれの値を四捨五入してからの合計とはずれてきます。
1つとなりのセルにroundした値を入れればいいのですが、そうせず、直接計算式で求めることはできないでしょうか?
1.5 > 2
1.8 > 2
2.1 > 2
2.9 > 3
1.8 > 2
計10.1 > 11

【37671】Re:四捨五入値の合計方法
質問  Blue  - 06/5/15(月) 10:18 -

引用なし
パスワード
   >それぞれのセルを四捨五入した値の合計を式で一発で出せないでしょうか?
VBAの質問ではないですよね?

=ROUND(A1,0)+ROUND(A2,0)+ROUND(A3,0)+ROUND(A4,0)+ROUND(A5,0)

をもっとキレイな形で出したいということでしょうか?

【37672】Re:四捨五入値の合計方法
質問  t29x0479  - 06/5/15(月) 10:19 -

引用なし
パスワード
   そうです。
今そうやって1つ1つROUNDしてやってるんですが、範囲を指定して、ROUNDとSUMを一気にできないでしょうか?

▼Blue さん:
>>それぞれのセルを四捨五入した値の合計を式で一発で出せないでしょうか?
>VBAの質問ではないですよね?
>
>=ROUND(A1,0)+ROUND(A2,0)+ROUND(A3,0)+ROUND(A4,0)+ROUND(A5,0)
>
>をもっとキレイな形で出したいということでしょうか?

【37674】Re:四捨五入値の合計方法
発言  Blue  - 06/5/15(月) 11:02 -

引用なし
パスワード
   標準ではないんでしょうかね?(知らないだけかもしれませんが)

VBA(マクロ)を使えば、自作の関数をつくることはできます。

メニューバーのツール→マクロ→Visual Basic Editor
でマクロ作成画面に行き、

メニューの挿入→標準モジュール

で開いた画面に、下記のコードをコピペ。

'* ここから **********************
Public Function ROUNDSUM(ByVal target As Range, ByVal digits As Double) As Double
  Dim r As Range
  
  For Each r In target
    ROUNDSUM = ROUNDSUM + WorksheetFunction.Round(r, digits)
  Next
End Function
'* ここまで **********************

で、セルに式

= ROUNDSUM(A1:A5,0)

と入れると 11 とでます。

【37675】Re:四捨五入値の合計方法
発言  ichinose  - 06/5/15(月) 11:12 -

引用なし
パスワード
   おはようございます。

配列数式を使う方法もあります。

適当なセルに

「=sum(round(a1:a5,0))」と指定します。

但し、配列数式を使っていますから、
セルの確定は、Enterキーではなく、

Ctrl+Shift+Enterキーで確定します。

試してみて下さい。

7661 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free