- ベストアンサー
セル参照によって関数を変更させたい
- Excel2010を使用しています。セル参照によって、「B列×A1セル」の計算で切捨てや切上げ、四捨五入をする関数を変更したいです。
- 切捨てだけではなく、切上げや四捨五入もしたい場合に、セル参照を使って関数を変更することは可能でしょうか?
- 最初の行の関数を書き換えずに、セルの値を変えることで関数を変更できないかと考えています。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
例えば、切捨て、切上げ、四捨五入をする位を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)))
その他の回答 (3)
- K Kazz(@JazzCorp)
- ベストアンサー率31% (549/1751)
J列に、 切り上げ(=1)、 K列に、 四捨五入(=2)、 L列に、 切り下げ(=3)、をセットで計算しておき、「$A$3」の新たなスイッチ(上のカッコ内の値を設定)でこのテーブル(J~L列)を参照する。 C2に、 =OFFSET($J2,0,$A$3-1) 以下、適当にコピー
お礼
J~Lの列にそれぞれのパターンの関数を予め入れておき、それを「$A$3」のセルで列を指定して取り出す…という事ですね? ほぼ希望通りのことが出来ました!計算用の列を設けなければならないですが、こんな方法もあるのかと大変勉強になりました。 御回答、有難うございました。
- kagakusuki
- ベストアンサー率51% (2610/5101)
次の様な方法もあります。 =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)
お礼
こちらの方は難しくて私には理解することが出来ませんでした。 申し訳ありません。 また時間に余裕がある時に考えてみたいと思います。 有難うございました。
- aokii
- ベストアンサー率23% (5210/22062)
IF関数でできませんか?
お礼
確かにIF関数で出来ますね!「ROUNDDOWNという文字を置き換えたい」という考えで固まっていて、思いつきませんでした。 参考になりました。御回答、有難うございました。
お礼
確かにIF関数で出来ますね!「ROUNDDOWNという文字を置き換えたい」という考えで固まっていて、考えが及びませんでした。 ただ質問文では省略していたのですが、実際はもう少し長い関数が入っているので、IFで分岐したらかなり長い関数になってしまいましたが^^;。 大変助かりました。有難うございました。