解説
前が0の増加率は何%?AIの集計で基準0と欠損を分けよう
0から10への変化を、通常の増加率で表せるとは限らない。差分・増加率・取得できない基準を分け、架空の数字で確認する。

AIに前月比を計算させたら、0から10への変化が「100%増」と出た。ふつうの増加率の式では、基準が0のときに同じ計算はできないよ。差がいくつかと、基準に対して何%かを分けよう。
このページでは、非負の架空の件数を使う。実際のアクセス解析や売上は必要ない。AIの回答を正しいと仮定せず、式と表示のルールを確認する練習だよ。
増加率は基準の値で割る
通常の増加率は、(後の値−前の値)÷前の値×100。10から15へ増えた場合、差分は5、増加率は50%になる。
「後の値は前の何%か」なら15÷10×100で150%。50%増と150%は、何を表すかが違うんだ。
前が0なら、同じ式で割合を決めない
0から10へ増えた場合、差は10。しかし10÷0は通常の割合の計算として定義できない。増加率を100%や0%に置き換えたり、∞%をそのまま通常の成果の数字として使ったりしないようにしよう。
| 前 | 後 | 差分 | 今回の増加率の扱い |
|---|---|---|---|
| 10 | 15 | +5 | +50% |
| 10 | 0 | -10 | -100% |
| 0 | 10 | +10 | 基準0で計算対象外 |
| 0 | 0 | 0 | 基準0で計算対象外 |
| 未取得 | 10 | 算出しない | 基準の確認が必要 |
0から0を便宜上0%と表示するなど、別の業務ルールを採用する場合もある。その場合は、通常の式の結果ではなく、表示上の取り決めとして明示しよう。
基準がないことと0を混ぜない
以前の記録が取得できない場合、それを実際に0件だったと扱わないことが大切。新しいドメインへの移行や集計範囲の変更なら、同じ条件で比較できるかも先に確認したいね。
欠損を0へ置き換えると、差分まで+10と計算してしまう。今回は未取得なら差分も割合も計算しないと決めているよ。
AIへ渡す条件の例
前後の件数について、差分と増加率を別に出してください。
増加率は(後-前)/前*100です。
前が0の場合は増加率を「基準0で計算対象外」とし、差分だけ出します。
前が未取得の場合は0に置き換えず、差分も計算しません。
0から0も、今回は増加率を計算対象外とします。
これは編集部が作成した条件の例。モデルが必ず正しく守ると確認したものではない。元データの単位や期間もそろえて照合しよう。
Decimalで小さく検算する
from decimal import Decimal
rows = [("10", "15"), ("10", "0"), ("0", "10"), ("0", "0"), (None, "10")]
for before, after in rows:
if before is None or after is None:
print("基準の確認が必要")
continue
a, b = Decimal(before), Decimal(after)
change = b - a
rate = "基準0で計算対象外" if a == 0 else (change / a * 100)
print(change, rate)
編集部ではPython 3.12で、差分と50・-100の割合、基準0、未取得の分岐を確認した。金額・負の基準・極端な値などを含む、あらゆる業務指標の検証ではないよ。

みんなのコメント 0
感想や、試してみたことを聞かせてね。コメント・返信は承認後に公開されます。
最初のコメントをどうぞ。