• ベストアンサー

アクセスでの質問です

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

質問者が選んだベストアンサー

  • ベストアンサー
  • peso
  • ベストアンサー率41% (40/97)
回答No.4

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 のように数値の後ろに @ をつけることで通貨型とし、誤差をなくすることが出来ます。

xchoxcho
質問者

お礼

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

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (5)

  • peso
  • ベストアンサー率41% (40/97)
回答No.6

切り上げは切り捨てや四捨五入より少し複雑になります。 [金額]の10の位を切り上げる =Int([金額] / 100) * 100 + IIF([金額] / 100 = Int([金額] / 100), 0, 100) こんな感じにします。

xchoxcho
質問者

お礼

が・・・がんばってみます!!! 本当に何度もありがとうございました!!

全文を見る
すると、全ての回答が全文表示されます。
  • peso
  • ベストアンサー率41% (40/97)
回答No.5

>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) → エラー

xchoxcho
質問者

お礼

何度も本当にありがとうございました!! なんとか納得できたので、Roundを使わず、No.1の方法でやってみたいと思います! ただ、最後に、もう1つだけ聞いてもいいですか?? 「切り上げ」をするには、どういう式になるのでしょうか?? 10の位を切り上げる・・・とか・・・ すみません。教えてください。

全文を見る
すると、全ての回答が全文表示されます。
  • harumimi
  • ベストアンサー率46% (51/109)
回答No.3

Round関数、Access2000以降はあると思います。(Ac2000でのみ確認) (私も大抵、下の方と同様の方法を使用していますが参考までに) 以下、Helpファイルより。 指定された小数点位置で丸めた数値を返します。 Round(expression [,numdecimalplaces]) Round 関数の構文は、次の指定項目から構成されます。 指定項目 説明 expression ・・・ 必ず指定します。丸めを行う数式を指定します。 numdecimalplaces ・・・ 省略可能です。丸めを行う小数点以下の桁数を表す数値を指定します。省略すると、Round 関数は整数値を返します。

xchoxcho
質問者

補足

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

全文を見る
すると、全ての回答が全文表示されます。
  • koba_nob
  • ベストアンサー率29% (22/75)
回答No.2

私にも何故かは判らないのですが、Accessに ROUNDは無いんですよ。 なので、INTを使わざるをえません。 それにしても何故ないのかなぁ。

全文を見る
すると、全ての回答が全文表示されます。
  • koba_nob
  • ベストアンサー率29% (22/75)
回答No.1

10の位で切り捨てる場合。 =int([金額]*1.05/100)*100 100の位で四捨五入する場合。 =int([金額]*1.05/1000+0.5)*1000 です。 int()は整数を返します。 なので、100で割った上でint()をかければ10の位で切り捨て出来ます。 割った状態で0.5を足せば四捨五入出来るわけです。

xchoxcho
質問者

補足

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

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Access2000 小数第3位で四捨五入

    質問させていただきます。 Access2000で以下の計算式を作りました。 金額 = Round(重量 × 単価,2) これは「金額」を小数第3位で四捨五入します。 ところが以下の数値の場合、正しく計算してくれません。 764.00 = 0.479 × 1595 本当は 764.005 だから 小数第3位で四捨五入すると 764.01 になると思うのですが・・・。 ちなみに以下の値では・・・ 754.44 = 0.473 × 1595 (754.435だから小数第3位で正しく四捨五入されています)。 やり方が悪いのでしょうか?それとも他に正しく計算できる方法があるのでしょうか?

  • アクセス2000の四捨五入がうまくできません。

    アクセスのクエリーを使って、消費税計算を行いました。消費税は四捨五入ということで  消費税:ROUND([金額]*0.05) と計算式をいれて計算しましたが、思うような結果になりませんでした。原因がわかりません。教えてください。 

  • アクセスのレポートで困っています。

    アクセスのレポートで教えて下さい。 テキストボックスの中で、計算式を入れています。 その数値を四捨五入した数値に「円」を付けて表示したいのです。 テキストボックスのプロパティ→データ→定型入力の欄に ####"円" ####\円 としてみましたが、プレビューにて表示されません。 他のテキストボックスは、上記のような方法で出来たのですが・・・ 他のテキストボックスと違う点は、小数点以下桁数を0にしました。 書式も、数値や固定、標準と色々試しましたが上手くいきません。 どうぞ、宜しくお願い致します。

  • ACCESSの切り上げ

    いつもお世話になっております。 ACCESSのフォームやクエリーで計算を行う際の、切り捨て・切り上げ・四捨五入の仕方がうまくいきません。 どうしたらよいのでしょうか。 よろしくお願い致します。

  • アクセスで四捨五入

    アクセスでの四捨五入を教えてください。 千の値で丸めたいです・・・ <例> 2,499 ⇒ 2,000 1,800 ⇒ 2,000 2,500 ⇒ 3,000 百の位を見て、四捨五入し、千円単位で丸めたいです。 よろしくお願いします。

  • Accessの通貨

    いつもお世話になっています。 Accessの通貨型について疑問があるので、どなたか教えてください! 通貨型にすると何かしら計算させたときに自動的に四捨五入になりますよね? 通貨型を使用して計算させると、電卓で計算させたときと金額が1円とか2円とか合わないことがあるんです。 これの対処法ってないんですか???

  • ACCESSのフォームの質問です。

    ACCESSのフォームの質問です。 あるフォーム上のコンボボックスで OK と選択したときに  「結果」というテキストボックスで 完了 NG と選択した時に 「結果」というテキストボックスで 未完了 と自動反映させたいのですが、この場合コントロールソースにどのように式をいれれば良いでしょうか?

  • Accessのバグなんでしょうか?

    既出かもしれませんが、どなたか相談に乗ってください。 マイクロソフトACCESS97をしぶとく使っていますが、最近計算結果がおかしいことに気づきました。 下記の計算結果が思うように行きません。何か心当たりのある方、ご教授願えませんでしょうか? Int(([数量]*[単価])*100+0.5)/100 の式に対して 数量 * 単価 = 答え 0.021 * 775 = 16.275 0.253 * 775 = 196.075 と、答えを少数点第3位で四捨五入して下二桁で答えを出したいのですが、それぞれ16.27と196.07という風に0.005が切り上げられません。計算式は間違っていないと思います。ほかの数値ではこのようなことにならないのですが、今のところ上記の2パターンで四捨五入できないのです。 どなたか、「それはアクセスのバグですよ」とか「こうすればできますよ」といったお言葉をもらえないでしょうか? 長い間使ってきたシステムにこんな落とし穴があったとは。 今大変困っています。ご協力お願いします。

  • エクセルで四捨五入は可能ですか?

    エクセルについてなんですが、元データの数値をαとして、 α×110%の数値の一の位を四捨五入する計算式ってありますでしょうか? 例えば、「522」とすると、552×110%=574.2ですが、一の位を四捨五入して「570」としたいんです。 恐らく110%にする計算式と四捨五入の計算式がぶつかると思うのですが可能ですか???

  • アクセスのフォームで連結コントロールを追加するには?

    アクセスの入力フォームで、すでにほぼできあがったフォームにあとから追加したい項目があるのですが、方法がわかりません。リストボックスなら連結で追加できるのですが、普通のテキストボックス(連結)を追加できません。初めからやり直す以外に方法はあるのでしょうか?よろしくお願いします。。。

専門家に質問してみよう