セル参照によって関数を変更させたい

このQ&Aのポイント
  • Excel2010を使用しています。セル参照によって、「B列×A1セル」の計算で切捨てや切上げ、四捨五入をする関数を変更したいです。
  • 切捨てだけではなく、切上げや四捨五入もしたい場合に、セル参照を使って関数を変更することは可能でしょうか?
  • 最初の行の関数を書き換えずに、セルの値を変えることで関数を変更できないかと考えています。
回答を見る
  • ベストアンサー

セル参照によって関数を変更させたい

Excel2010を使用しています。 「B列×A1セル」の計算でROUNDDOWN関数を使って切捨てをしているのですが、場合によって切捨てたい位が十の位であったり、百の位であったりとその都度変わるので「=ROUNDDOWN(B5*$A$1,$A$2)」として「A2」セルを参照させ、そこを「-2」「-3」などと変更するようにしています。 ところが切捨てだけではなく、切上げや四捨五入をするケースも出てきたのですが、同じようにセル参照を使って「ROUNDDOWN」を「ROUND」や「ROUNDUP」に変える事は可能でしょうか? 最初の行の関数を書き換えてドラッグでコピーをしたり、置換をしたりすれば良いのでしょうが、セルの値を変えることによって、関数を変えることは出来ないかと考えています。 宜しくお願い致します。

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

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 例えば、切捨て、切上げ、四捨五入をする位をA2に入力した値で決定して、 A3に入力した値がマイナスの時はROUNDDOWN関数、プラスの時はROUNDUP関数、0の時はROUND関数とするものとします。  幾つかの異なるやり方がありますが、基本的な方法はIF関数を利用するもので、一例をあげますと次の様な根のになります。 =IF($A$3<0,ROUNDDOWN(B5*$A$1,$A$2),IF($A$3=0,ROUND(B5*$A$1,$A$2),ROUNDUP(B5*$A$1,$A$2)))

irohani123
質問者

お礼

確かにIF関数で出来ますね!「ROUNDDOWNという文字を置き換えたい」という考えで固まっていて、考えが及びませんでした。 ただ質問文では省略していたのですが、実際はもう少し長い関数が入っているので、IFで分岐したらかなり長い関数になってしまいましたが^^;。 大変助かりました。有難うございました。

その他の回答 (3)

回答No.4

J列に、 切り上げ(=1)、 K列に、 四捨五入(=2)、 L列に、 切り下げ(=3)、をセットで計算しておき、「$A$3」の新たなスイッチ(上のカッコ内の値を設定)でこのテーブル(J~L列)を参照する。 C2に、 =OFFSET($J2,0,$A$3-1) 以下、適当にコピー

irohani123
質問者

お礼

J~Lの列にそれぞれのパターンの関数を予め入れておき、それを「$A$3」のセルで列を指定して取り出す…という事ですね? ほぼ希望通りのことが出来ました!計算用の列を設けなければならないですが、こんな方法もあるのかと大変勉強になりました。 御回答、有難うございました。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

 次の様な方法もあります。 =ROUNDDOWN($A$1+SIGN($A$1)*10^-$A$2*(ROUNDDOWN($A$1,$A$2)<>$A$1)*(($A$3=0)/2+($A$3>0)),$A$2)

irohani123
質問者

お礼

こちらの方は難しくて私には理解することが出来ませんでした。 申し訳ありません。 また時間に余裕がある時に考えてみたいと思います。 有難うございました。

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

IF関数でできませんか?

irohani123
質問者

お礼

確かにIF関数で出来ますね!「ROUNDDOWNという文字を置き換えたい」という考えで固まっていて、思いつきませんでした。 参考になりました。御回答、有難うございました。

関連するQ&A

  • エクセルでセルの値によって数式を変えたい

    エクセル2003を使用しておりますが、セルの値によって数式を変えることはできますでしょうか。 例えば A1に切り上げの文字が入っていれば、B1はROUNDUP(100/3,0)に、 A1に切り捨ての文字が入っていれば、B1はROUNDDOWN(100/3,0)に、 A1に四捨五入の文字が入っていれば、B1はROUND(100/3,0)に、 のようにしたいです。 IF文を使えばもちろんできるのですが、すでに指定されている多数の 数式を、一括で置換したいと思っております。

  • エクセル .50以下で切り捨て、.51で切り上げの関数

    エクセルでround関数や、rounddown関数、roundup関数など、切り上げ・切捨ての関数が多数ありますが、 ・.50以下で切り捨て かつ ・.51以上で切り上げ という関数はあるのでしょうか。 if関数などを用いれば解決できるものでしょうか。 少々細かい質問だとは承知しております。 知恵を貸してください! 下に、私がやりたい切り上げ・切り下げ例を示します。この例を見ていただけると、単なる四捨五入でないことが分かっていただけるかと思います・・・。 例: 2415.50円→2415円 3500.51円→3501円 よろしくおねがいします。

  • ROUND関数と小数点以下桁上げ(桁下げ)ボタンについて

    いつもお世話になっています。素朴な疑問ですが教えてください。 任意の桁数で切り上げや切り捨て、あるいは四捨五入を行なう関数としてROUNDUP関数やROUNDDOWN関数、そしてROUND関数というものが存在しますが、このうち四捨五入を行なうROUNDUP関数は、整数表示にしたい場合やそれ以下の小数第○位の表示にしたい場合に使う限りにおいては書式設定ツールバーの「小数点以下桁上げ(桁下げ)」ボタンを使えば事足りるのではないでしょうか? あるいは使い分けをしなければならないケースも存在するのでしょうか? ご存知の方いらっしゃいましたらぜひ教えてください。宜しくお願いいたします <(__)>

  • ROUNDDOWNで0.234を 0.23に変更させたセル(A)があり

    ROUNDDOWNで0.234を 0.23に変更させたセル(A)があります。 そのセル×7をすると、 1.638と表示されます。(B) そこはROUNDの関数をいれてあるので、1.64(B)と表示されます。 これを、見たままのA×7で、roundの式をいれて1.63と表示させるにはどうしたらいいでしょうか? あと、関数って、すべてこんな結果になるのでしょうか? 設定で切り上げ切捨てをしても、実際計算すると、もとの数字のまま引用されてしまうというような。

  • 小数点4桁での四捨五入がうまくいきません

    エクセルで次のような計算をさせます。 A2 に1.8、B2に0.075、C2に0.075、 D2に= A2*B2*C2 、E2に=roundup(D2,4) D2の計算結果は 0.010125 です。小数点第5桁目の値を参照して第4桁目で四捨五入したいのですが、roundupでは0.0102、rounddownでは0.0101です。 表示させたいのは0.0101です。この場合、rounddownを使えば問題ないのですが、逆にrounddownだと小数点以下4桁目の四捨五入がうまくいかない場合もあります。 例えば A3に2.7 B3に0.08、C3に0.08 があり、E3にすべての値を掛けた結果を表示させると0.01728となります。 =roundup(E3,4)では0.0173となり、rounddownでは0.0172となります。この場合はroundup関数の結果である0.0173が求める数値です。 A列、B列,C列に任意の数字が入り、E列に4桁目で四捨五入した正確な値を求めたいのですが、なにか良い方法はないでしょうか。 VBAを使っても構いません。ちなみにこれは木材の材積計算に使用する目的です。 よろしくお願いします。

  • エクセルの関数。お願いします!

    任意の桁数で四捨五入するROUND関数についてお願いします。 A1「5678.492」の数値。 (ア)小数点以下を四捨五入しなさい。 (イ)1の位を四捨五入しなさい。 =ROUND(A1,○)の○には何が入るんでしょうか?

  • round 関数

    http://pcstory.blog40.fc2.com/blog-entry-172.htmlの round,rounddown,roundup 関数の求め方なのですが 元データを 表示形式 rounddown round roundupで処理しています。 具体的な求め方が分からない部分がありますので 教えてください。 表示形式部分は 568~775を選択し、右クリック、セルの書式設定 表示形式、数値、桁数を0にすると求められると思っています。 その下の round,rounddown,roundup 関数の具体的な求め方をお願いします。

  • エクセル ROUNDUPをそのセルで表示できますか?

    Excelについて質問いたします。 例: A1をアクティブセル B1セルに1.3と入力されている     =ROUNDUP(B1,0) 結果、A1に「2」と結果が出ますが、B1セル自身に答えを出す事はできるのでしょうか? つまりB1をアクティブセルにして答えを出す、という事です。 わかりづらくてゴメンナサイ! 関数というのもは、セル参照しないと出来ないですよね?! または、他に方法はありますか?セルの書式設定では四捨五入しか出来ないので。。。 おわかりの方教えてくださーい!

  • Accessフォームでの計算について

    フォーム(非連結)での計算時の四捨五入:切り捨て:切り上げの方法を教えてください。Excelのようにround:rounddown:round upのような関数があるのでしょうか? 宜しく御願い致します。

  • 関数 ROUNDとセルの書式設定

    こんにちは。 EXCEL初心者です。 関数について、ふと思ったことがありましたので質問させてください。 ROUNDとか*UPや*DOWNという関数がありますよね? 調べてみるとこの関数の行う処理は、「値を指定した位で四捨五入する関数です。消費税の計算など小数点以下の位を四捨五入する時などに使えます」とのことですが、この処理は、「セルの書式設定」→「数値」で出来る設定と同じような気がするのですが、なにか違うのでしょうか? よろしければ「こんな使い方もあるよ」的なことを紹介していただけるとうれしいです。

専門家に質問してみよう