単位と桁と丸め|表・単位・割合・グラフ

このページはプロモーション(広告)を含みます。

表・単位・割合・グラフ(初級・読む22分+演習28分)

この授業のゴール

仕事でどう使うか

「売上は762です」と言われて、円なのか千円なのか百万円なのかわからなければ、その数字は使えません。単位の取り違えは1,000倍の誤りになり、報告書の信頼を一度に失います。

路線 この授業の使いどころ
DS(データサイエンティスト) 売上や費用の表の単位(千円など)を確認して合算する。グラフや表の見出しに単位を書く
ML(機械学習エンジニア) 特徴量の単位(g と kg、秒と分)を揃える。単位が混ざると、学習が不安定になったり、予測値の解釈を誤ったりする
DX(DX推進・AI企画) 業務の工数(分と時間)やコスト(月額と年額)を揃えて比較する。KPI定義書に単位と丸め方を明記する
RS(研究者) 測定の単位と有効な桁数を論文の表に書く。丸めの規則を決めて、再現できるようにする

この授業の目標は、単位をそろえてから計算し、丸めを最後に1回だけ行う習慣をつけることです。

前提

この授業は、四則計算(足し算・引き算・掛け算・割り算)と小数の読み方を前提にします。

ON05(算数・代数の基礎)の分数・小数の説明は 分数と小数と比 にあります。この授業では、電卓があれば手計算で追えます。

身近な状況:同じ「762」が1,000倍違う

会社の月次表の最初の3か月は、次のとおりです(単位は列名の _k、つまり千円です)。

month revenue_k(売上、千円)
2024-01 762
2024-02 857
2024-03 908

1月の売上は「762」と書かれていますが、762円ではありません。単位が千円なので、762 × 1,000 = 762,000円です。

もし別の部署が、同じ会社の売上を円単位で 762000 と書いた表を持っていたらどうなるでしょう。2つの表を単純に足すと、千円の数字に円の数字が足されて、まったく意味のない値になります。

数字を見たら、次の3つを必ず確認してください。

  1. 単位:円か、千円か、百万円か。
  2. 期間:1か月か、年間か、累計か。
  3. 対象:全社か、1店舗か。

この授業では、特に単位と丸めを扱います。期間と対象はグラフの授業(軸とグラフを読む)でも確認します。

直感的な説明:単位はものさしの目盛り

長さを「1.5」とだけ書いて、メートルなのかキロメートルなのかを書かなければ、距離はわかりません。お金も同じです。単位はものさしの目盛りです。

換算は、目盛りが大きくなるほど数字は小さくなると覚えます。

逆に、千円の数字を円にするには、1,000を掛けます。

丸めも同じ発想です。「約333円」と書くのは、333.333... を、必要な細かさまでに切り詰めた表現です。切り詰めるのは最後の1回だけにします。途中で何度も切り詰めると、小さな誤差が積み重なります。それは、ものさしの目盛りが粗いまま何度も測り足すのと同じです。

正確な定義:換算・単位の計算・丸め

換算(conversion)は、単位を変える計算です。換算の係数は、定義によって決まっています。

量 換算
お金 1千円 = 1,000円、1百万円 = 1,000千円 = 1,000,000円
重さ 1kg = 1,000g
時間 1時間 = 60分、1分 = 60秒
長さ 1km = 1,000m、1m = 100cm
データ量 一般に 1GB = 1,000MB(SI接頭辞での表記)。ただしOSや装置により1,024MB単位の表記もあり、確認が必要です

単位の計算規則は次のとおりです。

たとえば売上(円)を台数(台)で割ると、単位は「円/台」(1台あたりの円)になります。

$$\text{1台あたり売上(円/台)} = \frac{\text{売上(円)}}{\text{台数(台)}}$$

数値を代入します。売上 3,600,000円、台数 7台なら、$3{,}600{,}000 \div 7 = 514{,}285.714\ldots$ 円/台です。

丸め(rounding)は、数値を指定した桁で切り詰める操作です。

丸めの鉄則:計算の途中では丸めず、最後の結果だけを丸める。報告書では、「単位」「桁数」「丸め方」を書きます。

段階付き例題:千円の表から平均月売上を円で求める

問題:最初の3か月の売上合計を円・百万円で表し、1か月あたりの平均売上を円で(整数に四捨五入して)求める。

ステップ1:表の単位を確認する。列名 revenue_k の _k は千円。

ステップ2:同じ単位のまま合計する。762 + 857 + 908 = 2,527(千円)。

ステップ3:換算する。円にするには1,000を掛けて 2,527,000円。百万円にするには1,000で割って 2.527百万円。

ステップ4:平均を求める。2,527 ÷ 3 = 842.333...(千円)。円にすると 842,333.33...円。

ステップ5:最後に1回だけ丸める。整数に四捨五入して 842,333円。

画面で確かめます。pd.read_csv はCSVを表として読み込む関数で、head(3) は先頭3行を取り出します。sum() は列の合計を整数で返します。

import pandas as pd
df = pd.read_csv('/data/company_monthly.csv')
first3 = df.head(3)
print(first3[['month', 'revenue_k']].to_string(index=False))
total_k = first3['revenue_k'].sum()
print('合計(千円)', total_k)
print('合計(円)', total_k * 1000)
print('合計(百万円)', total_k / 1000)
print('平均(円)', round(total_k / 3 * 1000))

ステップ6:途中で丸めた場合と比べる。千円の平均を先に整数の842千円に丸めてから円にすると 842,000円で、正しい値より333円ずれます。この例の差は小さいですが、掛ける数が大きくなると、ずれも大きくなります。

ステップ7:結果を読む。単位は円、桁は整数、丸めは四捨五入と書き添えて報告します。

操作して理解する:丸めの順序と偶数丸めを確かめる

次のコードで、途中で丸める場合と最後に丸める場合の差を確かめます。1,000円を3人で分けた1人分の金額(円/人)を使います。

round(x) は小数を整数に丸める関数、round(x, 1) は小数第1位まで残して丸める関数です。結果の型は、引数が1つなら整数(int)、2つなら小数(float)です。

total = 1000
people = 3
unit = total / people
print('正確な1人分', unit)
print('途中で整数に丸めた1人分', round(unit))
print('途中で丸めて3人分を戻す', round(unit) * people)
print('最後に丸める', round(unit * people))
print('--- 偶数丸めの確認 ---')
for x in [0.5, 1.5, 2.5, 3.5]:
    print(x, '->', round(x))

出力は、正確な1人分が 333.3333333333333、途中で丸めると 333、戻すと 999、最後に丸めると 1000 です。偶数丸めの確認では、0.5→0、1.5→2、2.5→2、3.5→4 となります。

ここから次のことがわかります。

total を 2000 に変えたり、people を 7 に変えたりして、最後に丸めた結果が元に戻るかを試してください。

発展:偶数丸め・浮動小数点・切り上げの使い分け

偶数丸めの理由:四捨五入は、ちょうど5のときに必ず切り上げるため、大量のデータを丸めると合計が少しずつ大きく偏ります。偶数丸めは、切り上げと切り捨てがほぼ半々になり、偏りが出にくくなります。統計や会計ソフトで採用されることがありますが、日本の請求書では四捨五入や切り捨てが決まりであることが多く、どの規則を使うかは業務ルールで決まります。

Pythonで四捨五入が必要なときは、標準ライブラリの decimal が使えます。Decimal('2.5').quantize(Decimal('1'), rounding=ROUND_HALF_UP) は 3 を返します。

浮動小数点(ふどうしょうすうてん)の誤差:コンピュータは小数を2進数で近似します。そのため 0.1 + 0.2 は 0.3 ではなく 0.30000000000000004 になります。誤差は非常に小さいので、金額が円の整数なら問題になりませんが、「等しいか」を == で判定すると失敗します。小数の比較は、差が十分小さいかで判断します。

切り上げ・切り捨ての使い分け:24個の荷物を1箱8個まで入れられるとき、必要な箱数は $24 \div 8 = 3$ で割り切れますが、25個なら $25 \div 8 = 3.125$ で、四捨五入すると3箱では足りません。「必要な数」は切り上げ、「入る最大数」は切り捨てます。

有効数字:測定値は、信頼できる桁数に限って書きます。体重を0.1kg単位で測ったなら、平均を小数第5位まで書いても情報は増えません。報告する桁数は、元のデータの精度に合わせます。

よくある失敗

失敗1:単位の違う数字をそのまま足す

誤った例:A部門の売上500(千円単位の表)と、B部門の売上300,000(円単位の表)を足す。

a_k = 500       # 千円
b_yen = 300000  # 円
print('誤:単位を揃えずに足す', a_k + b_yen)
print('正:円にそろえて足す', a_k * 1000 + b_yen)

誤った値は300,500、正しい値は800,000円です。誤りは、「千円」と「円」を同じ単位として足した点にあります。直し方:足す前に、すべての数字を同じ単位にそろえる。表の見出しや列名の _k などの印を探す。

失敗2:途中で丸めてから掛け算をする

誤った例:1,000円の売上を3個で割った単価を333円に丸めて、3個ぶんの売上を逆算する。

sales = 1000
n = 3
unit_rounded = round(sales / n)
print('誤:丸めた単価×個数', unit_rounded * n)
print('正:丸めずに計算', sales / n * n)

丸めた単価333円に3を掛けると999円で、元の売上1,000円に戻りません。この差は個数が増えるほど大きくなります。直し方:計算の途中では、丸めた値を使わない。丸めるのは、報告する最終結果だけにする。

失敗3:Pythonのroundを四捨五入だと思い込む

誤った例:割引後の値引き額が2.5円になったとき、round(2.5) で四捨五入して3円だと考える。

print(round(2.5))
print(round(3.5))
print(int(2.5 + 0.5))

出力は 2、4、3 です。Pythonの round は偶数丸めなので、2.5は2、3.5は4になります。一方、int(2.5 + 0.5) は正の数に限って、四捨五入と同じ結果(3)を返します。業務で「四捨五入」と決まっているときは、使う関数の規則を確認し、必要なら decimal を使うか、整数だけで計算します。直し方:ちょうど5になりうる計算では、関数の丸め規則を確認し、結果を検算する。

まとめ

用語

換算(conversion)

単位を変える計算。千円→円は1,000倍、g→kgは1/1,000にする。

丸め(rounding)

数値を指定した桁で切り詰める操作。四捨五入・切り上げ・切り捨て・偶数丸めがある。

偶数丸め(銀行丸め)(round half to even)

ちょうど5のとき、結果が偶数になる方へ丸める方式。Pythonのroundが採用している。

粗利(粗利益)(gross profit)

売上から仕入原価(売上原価)を引いた額。粗利率は粗利を売上で割った割合。

よくある質問

なぜ千円単位や百万円単位の表があるのですか。

桁が多すぎると読みにくいからです。経営の資料では、千円や百万円で書くことが一般的です。そのため、表の見出しや脚注に単位があるかを必ず確認します。

単位の違いは、どこで一番よく失敗しますか。

異なる部署や期間の表を合体させるときです。見た目は同じ数字の列でも、一方が円、他方が千円ということがあります。結合の前に、列名と脚注から単位を確認します。

丸める桁は、どう決めればよいですか。

読む人が判断に使う細かさで決めます。経営資料なら千円や百万円まで、単価なら円まで、率なら小数第1位までが一般的です。決めたら、資料に桁数を書きます。

表計算ソフトの表示形式で小数を隠すのと、丸めの違いは何ですか。

表示形式は見た目だけを変え、内部の値は変わりません。丸めは値そのものを変えます。内部の値が違うと、表示された数字を電卓で足した結果と、ソフトの合計が1ずれることがあります。

合計が100%にならないのはなぜですか。

各項目を丸めてから足すと、端数のためにずれることがあります。たとえば33.3%、33.3%、33.3%の合計は99.9%です。図表に「端数処理のため合計は100%にならない場合がある」と注記します。

データ量のGBとMBは、1,000倍と1,024倍のどちらですか。

表記や機器によって異なります。ストレージの販売表記は1,000倍が多く、OSの表示は1,024倍が多いため、同じ容量でも表示が違うことがあります。計算では、どちらを使ったかを書きます。

確認問題

問1 売上表の列名が revenue_k で、1月の値が762だった。1月の売上は何円と読むのが最も適切か(列名の _k は千円を表す)。

  1. ① 762円
  2. ② 7,620円
  3. ③ 762,000円
  4. ④ 762,000,000円
解答と解説

正解:③

千円単位の762は 762 × 1,000 = 762,000円です。

問2 次の計算のうち、単位が「円/台」になるものはどれか。

  1. ① 売上(円)÷ 台数(台)
  2. ② 売上(円)+ 台数(台)
  3. ③ 台数(台)÷ 売上(円)
  4. ④ 売上(円)× 台数(台)
解答と解説

正解:①

円を台で割ると、1台あたりの円(円/台)になります。

問3 1,000円を3人で等分した1人分を333円に丸め、それに3を掛けて「合計」を確かめると999円になった。何が問題か。

  1. ① 3人という人数が間違っている
  2. ② 掛け算の単位が間違っている
  3. ③ 割り算の結果が間違っている
  4. ④ 途中で丸めた値を使って後続の計算をした
解答と解説

正解:④

333.33...を333に丸めると、その後の計算に誤差が入ります。丸めは最後の1回だけにします。

問4 Pythonで round(2.5) を実行すると何が返るか。

  1. ① 3
  2. ② 2
  3. ③ 2.5
  4. ④ エラー
解答と解説

正解:②

Pythonのroundは偶数丸めで、ちょうど5のときは偶数側(2)になります。

問5 25個の荷物を1箱8個まで入れて発送する。必要な箱の数を求める丸め方として正しいものはどれか。

  1. ① 25 ÷ 8 = 3.125 を切り捨てて3箱
  2. ② 25 ÷ 8 = 3.125 を四捨五入して3箱
  3. ③ 25 ÷ 8 = 3.125 を切り上げて4箱
  4. ④ 25 ÷ 8 = 3.125 の小数部をそのまま使い3.125箱
解答と解説

正解:③

必要な数は、足りなくならないよう切り上げます。3箱では24個までしか入りません。

問6 2つの部署の売上表を合算するとき、最初に行うべき確認はどれか。

  1. ① 両方の表の単位(円か千円か)と期間・対象をそろえる
  2. ② 小数点以下を2桁に丸める
  3. ③ 列を左から順に足す
  4. ④ グラフの色をそろえる
解答と解説

正解:①

単位や期間が違うと、足し算の結果は意味を持ちません。合算の前に、単位・期間・対象を確認します。

次に学ぶこと

次は 比率・割合・パーセントポイント で、比率・割合・パーセントポイントを扱います。ここで身につけた「単位を揃えてから割る」「最後に丸める」は、割合の計算でも使います。

この授業の確認問題だけで習得とはしません。ON04 の総合テストと自力課題で判定します。

キャリア学習:データサイエンティスト・機械学習エンジニア・DX推進・研究者を目指す人の学習アプリ。164モジュール・984授業を、ブラウザで動くSQLとPythonの演習で。基礎と各分野の最初のモジュールは無料。全部は2,980円の買い切り。

アプリを無料で開く有料版と無料版の違い