グラフの最大値が495の場合、 目盛りの最大値を500にする数式をお教えください。 例: 目盛りの最大値= pow(10, log10(最大値) + 1) など…
エクセルで
目盛りの最大値=(ROUNDUP(最大値/POWER(10,ROUNDDOWN(LOG10(最大値),0)),0))*POWER(10,ROUNDDOWN(LOG10(最大値),0))
はどうでしょうか.
もっと簡単なのがありそう・・・
http://www.relief.jp/itnote/archives/000937.php
すみません、エクセル等の表計算ソフトは使わず、自分自身で描画する場合になります。
EXCEL の関数ということでしたら、 CEILING(切り上げ)でどうでしょうか。
=CEILING(A1,100)
で A1 を 100 単位に切り上げます。
=CEILING(A1,POWER(10,FLOOR(LOG(A1,10),1)))
でしたら、最大桁数の単位で
のように切り上げます。
基準値の倍数に切り上げ
すみません、Excelを使わずに算術で求める方法でお願いします。
(INT(最大値/POW(10,INT(log(最大値))))+1)*POW(10,INT(log(最大値)))
でいかがでしょう。
最大桁の数字をひとつ増やすだけですが。
http://q.hatena.ne.jp/1177554696
※ INT()使ってもいいですか?
URLはダミーです。
http://www.hatena.ne.jp/
pow()やlog10()などの関数を使用していることから、一般的な浮動小数点用の関数は用意されているものとします。
恐らく、切り上げや切り捨て処理がないと期待しているような計算は出来ないと思います。
変数"桁値"を用意します。
この変数は1,10,100,1000,...など10のべき乗の値をとります。
桁値=pow(10,floor(log10(最大値)))
目盛りの最大値=ceil(最大値/桁値)*桁値
変数が用意できないのであれば、多少数式は長くなりますが
目盛りの最大値=ceil(最大値/pow(10,floor(log10(最大値))))*pow(10,floor(log10(最大値)))
最大値が0より大きい値(1以下も含む)であれば一応は上記の式で動作するはずです。
念のため説明しますと、floor()は1未満切り捨て、ceil()は切り上げ関数です。
コメントはありません