dポイントプレゼントキャンペーン実施中!

金額データで、74352を千円未満を四捨五入するときの、データ定義、使用関数を教え願いたい。
(結果は、74000としたい。)

A 回答 (7件)

No.1です。



>百未満の時は、Format(値, "0,")*100 ですか。
No.1の回答は、千円未満限定の四捨五入方法です。
桁数によらない、汎用の式は、

=Format(値/100, "0") * 100

です。
式中の「100」の部分を、四捨五入する桁によって、変更します。
    • good
    • 0

簡単なベンチマークを作って性能を測定してみました。


予想通り、Int関数の方がFormat関数より約20倍速いという結果でした。

大した差ではないので、気にするほどの問題ではないと思いますが、処理速度を要求される場面では、Int関数の方が無難かもしれません。

Option Explicit

Public Sub TestA()
Dim sglSt As Single
Dim sglEd As Single
Dim i As Long
Dim curTmp As Currency

sglSt = Timer()

For i = 1 To 10000000
curTmp = Int((123456 + 5 * 1000 / 10) / 1000) * 1000
Next i

sglEd = Timer()
Debug.Print sglEd - sglSt
End Sub

Public Sub TestB()
Dim sglSt As Single
Dim sglEd As Single
Dim i As Long
Dim curTmp As Currency

sglSt = Timer()

For i = 1 To 10000000
curTmp = Format(123456 / 1000, "0") * 1000
Next i

sglEd = Timer()
Debug.Print sglEd - sglSt
End Sub
    • good
    • 0

INT関数はあらゆる言語にあるでしょう。


Sub test01()
k = 3 '千の位の場合の例
c = 10 ^ k
a = 74452
b = Int((a + 5 * c / 10) / c) * c
'千の位の時は500や万の位の時は5000を足して割って切り捨て、掛けて位を戻す
MsgBox b
End Sub
    • good
    • 0

#1の補足:百未満の時は、Format(値, "0,")*100 ですか。


違います。その場合は
Format(値, "0.0,")*100
になります。
0の後の「,」は千単位の区切りです。

汎用性を持たせたいならユーザー関数(カスタムプロシージャ)を作ってください。
    • good
    • 0

下記URL参照してください。


【丸めを行うカスタム プロシージャを実装する方法】
http://support.microsoft.com/default.aspx?scid=k …

参考URL:http://support.microsoft.com/default.aspx?scid=k …
    • good
    • 0

四捨五入の間酢はなかったように思いますが。


参考URLの方法ではどうでしょう。

参考URL:http://www.studiofly.net/vb/vbtip14.html,http:// …
    • good
    • 0

こんにちは。

maruru01です。

Round関数を使用したいところですが、ちゃんと四捨五入してくれないので、以下のような風にします。

=Format(値, "0,")*1000

この回答への補足

百未満の時は、Format(値, "0,")*100 ですか。

補足日時:2004/03/26 17:43
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!