• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:セル参照によって関数を変更させたい)

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

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

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

  • ベストアンサー
  • 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