変化率計算機
変化率計算機は、初期値と最終値の間の変化率を求め、符号で上昇か下降かを示します。変化率の公式、パーセントどうしの変化、負の初期値、例題も扱います。
例の値が入力されています。ご自身の値に置き換えてください。
変化率
+15%
増加
計算過程
- 9200 − 8000 = 1200
- 1200 ÷ 8000 × 100 = 15%
- 変化の絶対値
- 1200
- 基準にした値(初期値の絶対値)
- 8000
- 初期値に戻すために必要な変化
- -13.04%
変化率は初期値の絶対値で割るため、−50から−25への変化は+50%で、増加になります。
これは初期値に対する割合で表した相対的な変化です。二つの値がどちらも率の場合、その差はパーセントポイントで測り、別の指標です。パーセントポイント計算機をご覧ください。
株価が80ドルから68ドルに下がった、あるいはサイトの訪問数が5,000から20,000に急増した。その動きはどれだけ大きく、どちらの向きだったのでしょうか。12ドルや15,000訪問という差だけでは、出発点が違うものどうしを比べられません。変化率なら比べられます。
この変化率計算機に初期値と最終値を入力すると、変化率が増加か減少かの表示とともに、計算の全ステップつきで求まります。負の初期値にも対応し、どの考え方を使ったかも示すので、ご自身の答えと照らし合わせて確認できます。
変化率のしくみ
結論:最終値から初期値を引き、初期値で割って100を掛けます。結果が正なら増加、負なら減少です。80から68への変化は (68 − 80) ÷ 80 × 100 = −15% です。
変化率とは?
変化率は、ある値がどれだけ動いたかを、出発点の値に対する割合で表します。増加率計算機や減少率計算機は一方向だけを扱いますが、この変化率計算機は両方を扱い、向きを符号で示します。
変化率の公式
変化率 = (最終値 - 初期値) / abs(初期値) * 100これが変化率の公式の全体です。変化率を求める公式は、お金、質量、人数、訪問数など、単位が何であっても同じです。割り算で単位が打ち消し合うからです。絶対値の記号が意味を持つのは、初期値が負の場合だけです。
変化率の計算方法
- 最終値から初期値を引いて、変化量を求めます。
- 変化量を、最終値ではなく初期値で割ります。
- 100を掛けて符号を残します。増加ならプラス、減少ならマイナスです。
二つの数の間の変化率の求め方は、先に起きたほうを必ず初期値にすることです。変化率を計算するとき、二つを入れ替えると答えが変わります。80から100は+25%ですが、100から80は−20%です。
変化率から新しい値を求める
変化率が分かっていて最終値を知りたいときは、公式を逆向きに使います。最終値 = 初期値 × (1 + 変化率 ÷ 100)。$250で変化率が−12%なら、250 × 0.88 = $220 になり、60に40%の上昇なら、60 × 1.40 = 84 です。変化率の計算を逆向きに行うことは、パーセントを足したり引いたりすることと同じです。増加率計算機で、上昇についてさらに詳しく扱っています。
負の数どうしの変化率
初期値が負のときは、計算機は初期値の絶対値で割ります。そのため、結果の符号が動きの向きと一致します。−50から−25への変化は、値が25上がったので+50%です。−20から−30への変化は、10下がったので−50%です。これは約束事です。Excelで入力するような単純な (新 − 旧) ÷ 旧 の式では、最初の動きに対して−50%が返り、変化の向きと逆の符号になります。計算機は絶対値の初期値を使い、そのことを結果の横に表示するので、ご自身の計算と照らし合わせられます。−10から20のようにゼロをまたぐ場合、公式は+300%を返しますが、絶対的な変化量の30のほうが実態に合うことが多いです。
パーセントどうしの変化
値そのものがパーセントの場合も公式は変わりませんが、言い方が重要になります。割合が40%から50%に動くのは、10パーセントポイントの変化であり、相対的には25%の変化です。(50 − 40) ÷ 40 = 0.25 です。どちらを指すのかを明示してください。違いはパーセントポイントのガイドで説明しています。
変化が対称にならない理由
50%の上昇のあとに50%の下降があっても、出発点には戻りません。100は150になり、そのあと75になります。50%の下降から回復するには、100%の上昇が必要です。変化のたびにもとにする量が違うからです。
変化率が誤解を招く場合
もとにする量が小さいと、パーセントが大げさになります。1から3への変化は200%の増加ですが、1,000から1,030への変化は3%です。最初の増加は2、あとの増加は30なのにです。そのような動きを公平に判断するには、絶対的な変化量とあわせて示し、もとにする量を明記してください。多くの期間にわたる場合は、毎年のパーセントを平均せず、下に示すようにつなげて計算してください。
変化をつなげる:パーセントを掛け合わせる方法
続けて起こる変化をまとめるには、それぞれを係数(1に小数で表した変化を足した値)に直して掛けます。20%の上昇のあとに10%の下降なら、1.20 × 0.90 = 1.08 で、10%ではなく正味8%の上昇です。このようにパーセントを掛け合わせると、複利の成長も求められます。10%の上昇を三回重ねると、1.10³ = 1.331、つまり33.1%になります。
変化率と差の割合の違い
一方の値が先にあり、もう一方がその結果である場合は、変化率を使います。同じ商品の二つの店での価格のように、二つの値が対等で自然な出発点がない場合は、差の割合を使います。差の割合の計算機は二つの値の平均で割るので、順序は関係ありません。
人口増加などの実生活での使い方
人口増加率は、ある期間における人数の変化率です。町の人口が48,000人から50,400人に増えたなら、2,400 ÷ 48,000 = 5% の成長です。前年比、年間、月間の成長は、期間が一つ離れた数字に同じ計算を行ったものです。経済学(GDP、CPI)、生物学(浸透の実験での質量変化)、ビジネス(売上、利益)はいずれも、この変化率の公式を使います。
変化率の例題
小さな整数の動きの早見表です。
| 変化前 | 変化後 | 変化量 | 変化率 |
|---|---|---|---|
| 5 | 20 | +15 | +300% |
| 20 | 10 | −10 | −50% |
| 2 | 3 | +1 | +50% |
| 5 | 4 | −1 | −20% |
例題1:株価が$80から$68に下落
条件
手順 1
変化量は 68 − 80 = −12 です。手順 2
初期の価格で割ります。−12 ÷ 80 = −0.15 です。
答え
例題2:ウェブサイトの訪問数が5,000から20,000に増加
条件
手順 1
変化量は+15,000で、15,000 ÷ 5,000 = 3 です。
答え
例題3:質量の変化率、12.5 gから11.2 gへ
条件
手順 1
試料は1.3 g減りました。手順 2
最初の質量で割ります。−1.3 ÷ 12.5 = −0.104 です。
答え
例題4:前年比の売上、$1.8百万から$2.25百万へ
条件
手順 1
変化量は+0.45百万ドルで、0.45 ÷ 1.8 = 0.25 です。
答え
例題5:負の値、−50から−25へ
条件
手順 1
変化量は+25、初期値の絶対値は50なので、25 ÷ 50 = 0.5 です。
答え
例題6:順序が重要な理由、20と30
条件
手順 1
20から30は +10 ÷ 20 = +50% です。手順 2
30から20は −10 ÷ 30 = −33.3% です。
答え
変化率のコード
どちらのバージョンも、上の例(+300%、−50%、+50%、−20%、−15%、−10.4%、+25%)を再現し、負の初期値には絶対値の初期値を使い、初期値が0の場合は計算を拒否します。
JavaScript
function finite(name, v) { if (typeof v !== "number" || !Number.isFinite(v)) throw new TypeError(`${name} must be a finite number`);}export function percentChange(initial, final) { finite("initial", initial); finite("final", final); if (initial === 0) throw new RangeError("initial must not be 0: the change from zero is undefined"); const percent = ((final - initial) / Math.abs(initial)) * 100; const direction = percent > 0 ? "increase" : percent < 0 ? "decrease" : "no change"; return { percent, direction };}export function chainChanges(...percents) { percents.forEach((p, i) => finite(`percents[${i}]`, p)); return (percents.reduce((factor, p) => factor * (1 + p / 100), 1) - 1) * 100;}Python
from decimal import Decimalimport mathdef _num(name, v): if isinstance(v, bool) or not isinstance(v, (int, float, Decimal)) or not math.isfinite(float(v)): raise ValueError(f"{name} must be a finite number") return Decimal(str(v))def percent_change(initial, final): initial, final = _num("initial", initial), _num("final", final) if initial == 0: raise ValueError("initial must not be 0: the change from zero is undefined") percent = (final - initial) / abs(initial) * 100 direction = "increase" if percent > 0 else "decrease" if percent < 0 else "no change" return percent, directiondef chain_changes(*percents): factor = Decimal(1) for i, p in enumerate(percents): factor *= 1 + _num(f"percents[{i}]", p) / 100 return (factor - 1) * 100chainChanges(20, -10) は、表示用に丸めると8を返します。これはつなげる例の正味の上昇です。chainChanges(50, -50) は−25を返し、これは100から75になる場合です。丸めるのは表示のときだけにしてください。
プライバシーと入力の安全性
値の計算はブラウザー内で行われます。入力した数値がサーバーに送られたり、保存されたりすることはありません。
- 入力欄には数値だけを入力できます。文字、空欄、NaN、Infinityはメッセージつきで拒否され、入力した内容がコードとして実行されることはありません。
- 初期値が0の場合は、ゼロからの変化率が定義されないため、除算エラーではなく分かりやすいメッセージが表示されます。絶対的な変化量は引き続き表示されます。
- カンマの直後にちょうど3桁が続く場合は千の位の区切りとして読み、1,200 は 1200 になります。それ以外のカンマは小数点として扱うため、12,50 は 12.50 で、0 で始まる 0,500 のような数は小数として読みます。1.234,5 のような混在形式や 1,2,3 のようなあいまいな入力は、推測せずに拒否します。桁区切りの空白(改行されない空白を含む)は無視します。
変化率でよくある間違い
| 間違い | 何が起こるか | 計算機の動作 |
|---|---|---|
| 最終値で割る | 80から100は、25%ではなく20%になる | 常に初期値で割ります |
| 符号を落とす | 80から68への下降を「15%」とだけ表示して、上昇と読まれる | 結果に増加か減少かのラベルと符号をつけます |
| 連続した変化を足す | +20%のあとに−10%を+10%と読むが、正味は+8% | 係数を掛け合わせます |
| 同じパーセントで変化を元に戻そうとする | −50%の下降から回復するには、+50%ではなく+100%の上昇が必要 | 使ったもとにする量を示すので、逆算で確かめられます |
| 負の初期値で符号の慣例を混ぜる | −50から−25は、初期値の絶対値を使う規則では+50%、符号つきの初期値を使う規則では−50% | 絶対値で割り、その約束事を明記します |
| ゼロから始める | ゼロによる割り算になるか、意味のない無限大のパーセントになる | メッセージを表示して拒否し、絶対的な変化量を示します |
| ポイントをパーセントと読む | 40%から50%を10%の上昇と呼ぶが、正しくは10ポイント、相対では25% | 結果に相対的な変化というラベルをつけます |
| どちらの値も出発点でないのに変化率を使う | 最初にどちらの数を入力するかで答えが変わる | 差の割合モードを案内します |
| ステップごとに丸める | つなげた計算で、結果が一ポイント以上ずれる | 丸めるのは表示する結果だけです |
変化率と関連する指標の比較
変化率は、全体をまとめる指標です。増加率と減少率はその二つの半分にあたり、差の割合は出発点がない版、誤差率は出発点が既知の真の値である版です。どの数が基準になるのか、あるいは基準がないのかを考えて選んでください。