重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

アクセスのフォームなどで、テキストボックスを新たに追加し、
そのテキストボックスに計算式を入れます。([金額]*1.05など)
その計算結果を10の位で切り捨てる・・・とか、100の位で四捨五入する
とか・・・そういうのはどうやったらいいのでしょうか?
一番「操作が簡単」な方法を教えていただけるとありがたいです。
とても急いでいます。よろしくお願いします。m(_ _)m

A 回答 (6件)

Access2000 以降にある Round 関数は Excel の ROUND 関数と同じ様に引数を指定します。


Round(対象数値, 桁)
ただし、Access の Round 関数は四捨五入ではありません。また、桁指定に負の値を指定できません。


四捨五入をする場合は Int か Fix を使います。正の値しか扱わないのであれば Int も Fix も同じ値を返します。負の値になると Int と Fix は違う値を返すようになります。

Int(1.5) → 1
Fix(1.5) → 1

Int(-1.5) → -2
Fix(-1.5) → -1

Int は引数の値を超えない最大の整数を、Fix は 引数の整数部分を返す関数です。

四捨五入の方法は #1 の方の方法で行います。ただし、誤差を気にするなら
=Int([金額]*1.05@/100)*100
のように数値の後ろに @ をつけることで通貨型とし、誤差をなくすることが出来ます。
    • good
    • 0
この回答へのお礼

早い回答ありがとうございました。

そうなんですか・・・・Round関数は、四捨五入とかそういう関数じゃ
ないんですねぇ・・・
微妙にエクセルとは違うんですねぇ・・・知りませんでした。
アクセスでのRoundというのは、本来、何をする関数なのですか??

お礼日時:2002/07/05 13:45

切り上げは切り捨てや四捨五入より少し複雑になります。



[金額]の10の位を切り上げる

=Int([金額] / 100) * 100 + IIF([金額] / 100 = Int([金額] / 100), 0, 100)

こんな感じにします。
    • good
    • 0
この回答へのお礼

が・・・がんばってみます!!!

本当に何度もありがとうございました!!

お礼日時:2002/07/05 14:22

>Round関数は、四捨五入とかそういう関数じゃないんですねぇ・・・



微妙な四捨五入というか。。。あまりみない結果が返ってきますねぇ。

Round(1.3, 0) → 1
Round(1.5, 0) → 2
Round(1.7, 0) → 2

この数値だと四捨五入と同じ結果になりますが、

Round(2.3, 0) → 2
Round(2.5, 0) → 2
Round(2.7, 0) → 3

これだと四捨五入ではないですよね?
この関数は4以下の数値と6以上の数値は四捨五入と同じです。
5の扱いが四捨五入と違います。
具体的には、指定した桁の一つ上の桁の数値が偶数になります。

Round(1.5, 0) → 2
Round(2.5, 0) → 2
Round(2.35, 1) → 2.4
Round(2.45, 1) → 2.4

桁指定に負の値を指定するとエラーになります。

Round(150, -2) → エラー
    • good
    • 0
この回答へのお礼

何度も本当にありがとうございました!!
なんとか納得できたので、Roundを使わず、No.1の方法でやってみたいと思います!

ただ、最後に、もう1つだけ聞いてもいいですか??

「切り上げ」をするには、どういう式になるのでしょうか??
10の位を切り上げる・・・とか・・・

すみません。教えてください。

お礼日時:2002/07/05 14:00

Round関数、Access2000以降はあると思います。

(Ac2000でのみ確認)
(私も大抵、下の方と同様の方法を使用していますが参考までに)

以下、Helpファイルより。

指定された小数点位置で丸めた数値を返します。

Round(expression [,numdecimalplaces])

Round 関数の構文は、次の指定項目から構成されます。

指定項目 説明
expression ・・・ 必ず指定します。丸めを行う数式を指定します。
numdecimalplaces ・・・ 省略可能です。丸めを行う小数点以下の桁数を表す数値を指定します。省略すると、Round 関数は整数値を返します。

この回答への補足

回答ありがとうございます。
上記のように指定してみましたが、うまくいきません。
丸めを行う小数点以下の桁数というのは、エクセルと同じように
整数で0とか1とか入れると、小数点以下の桁数が決まり、四捨五入される。
-1とか-2とか入れると、10の位や100の位で四捨五入するという認識で
いいのでしょうか??

大至急、答えをお待ちしております。
お手数おかけします!!

補足日時:2002/07/05 13:16
    • good
    • 0

私にも何故かは判らないのですが、Accessに ROUNDは無いんですよ。


なので、INTを使わざるをえません。

それにしても何故ないのかなぁ。
    • good
    • 0

10の位で切り捨てる場合。


=int([金額]*1.05/100)*100

100の位で四捨五入する場合。
=int([金額]*1.05/1000+0.5)*1000

です。

int()は整数を返します。
なので、100で割った上でint()をかければ10の位で切り捨て出来ます。
割った状態で0.5を足せば四捨五入出来るわけです。

この回答への補足

さっそくお返事ありがとうございました!

たとえば、エクセルのように「Round」関数とかは使えない
のでしょうか?やってみましたが、うまく表示されません。
そういう使い方はしないのですか?
再度質問してしまってすみません。回答お待ちしております。m(_ _)m

補足日時:2002/07/04 23:11
    • good
    • 0

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