単位と桁と丸め|表・単位・割合・グラフ
このページはプロモーション(広告)を含みます。
表・単位・割合・グラフ(初級・読む22分+演習28分)
この授業のゴール
- 円・千円・百万円、g・kg、分・時間などの単位を換算して、同じ単位にそろえられる
- 掛け算・割り算の結果の単位を、式から言い当てられる
- 丸めを最後に1回だけ行い、途中で丸めた場合との差を数値で示せる
- 四捨五入と、Pythonのround関数(偶数丸め)の違いを説明できる
仕事でどう使うか
「売上は762です」と言われて、円なのか千円なのか百万円なのかわからなければ、その数字は使えません。単位の取り違えは1,000倍の誤りになり、報告書の信頼を一度に失います。
| 路線 | この授業の使いどころ |
|---|---|
| DS(データサイエンティスト) | 売上や費用の表の単位(千円など)を確認して合算する。グラフや表の見出しに単位を書く |
| ML(機械学習エンジニア) | 特徴量の単位(g と kg、秒と分)を揃える。単位が混ざると、学習が不安定になったり、予測値の解釈を誤ったりする |
| DX(DX推進・AI企画) | 業務の工数(分と時間)やコスト(月額と年額)を揃えて比較する。KPI定義書に単位と丸め方を明記する |
| RS(研究者) | 測定の単位と有効な桁数を論文の表に書く。丸めの規則を決めて、再現できるようにする |
この授業の目標は、単位をそろえてから計算し、丸めを最後に1回だけ行う習慣をつけることです。
前提
この授業は、四則計算(足し算・引き算・掛け算・割り算)と小数の読み方を前提にします。
- 表の1行が何を表すか → 行と列と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か月か、年間か、累計か。
- 対象:全社か、1店舗か。
この授業では、特に単位と丸めを扱います。期間と対象はグラフの授業(軸とグラフを読む)でも確認します。
直感的な説明:単位はものさしの目盛り
長さを「1.5」とだけ書いて、メートルなのかキロメートルなのかを書かなければ、距離はわかりません。お金も同じです。単位はものさしの目盛りです。
換算は、目盛りが大きくなるほど数字は小さくなると覚えます。
- 762,000円 を千円で表すと 762(千円)。目盛りが1,000倍になったので、数字は 1/1,000。
- 762,000円 を百万円で表すと 0.762(百万円)。
逆に、千円の数字を円にするには、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)は、数値を指定した桁で切り詰める操作です。
- 四捨五入:切り詰める位の次の桁が5以上なら繰り上げ、4以下なら切り捨てる。
- 切り上げ/切り捨て:必ず上/下へそろえる。必要な個数(箱の数など)は切り上げ、数えられる最大個数は切り捨てる。
- 偶数丸め(銀行丸め):ちょうど5のとき、結果が偶数になる方へそろえる。Pythonの
round関数はこの方式で、round(2.5)は 3 ではなく 2 になります。
丸めの鉄則:計算の途中では丸めず、最後の結果だけを丸める。報告書では、「単位」「桁数」「丸め方」を書きます。
段階付き例題:千円の表から平均月売上を円で求める
問題:最初の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 となります。
ここから次のことがわかります。
- 途中で丸めた333円に3を掛けると999円で、元の1,000円に戻りません。1円が消えています。
round(2.5)が3ではなく2になるのは、ちょうど5のときに偶数へ寄せるためです。四捨五入が必要なときは、後で扱う方法(発展)か、表計算の標準の四捨五入関数を使います。
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になりうる計算では、関数の丸め規則を確認し、結果を検算する。
まとめ
- 数字を見たら、単位・期間・対象を確認する。千円と円は1,000倍違う。
- 足し算・引き算は同じ単位どうし。掛け算・割り算では単位も一緒に計算される(円÷台=円/台)。
- 丸めは最後に1回だけ。途中で丸めると誤差が積み重なる。
- Pythonのroundは偶数丸め。必要な数は切り上げ、入る最大数は切り捨てなど、目的で丸め方を選ぶ。
用語
- 換算(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 は千円を表す)。
- ① 762円
- ② 7,620円
- ③ 762,000円
- ④ 762,000,000円
解答と解説
正解:③
千円単位の762は 762 × 1,000 = 762,000円です。
問2 次の計算のうち、単位が「円/台」になるものはどれか。
- ① 売上(円)÷ 台数(台)
- ② 売上(円)+ 台数(台)
- ③ 台数(台)÷ 売上(円)
- ④ 売上(円)× 台数(台)
解答と解説
正解:①
円を台で割ると、1台あたりの円(円/台)になります。
問3 1,000円を3人で等分した1人分を333円に丸め、それに3を掛けて「合計」を確かめると999円になった。何が問題か。
- ① 3人という人数が間違っている
- ② 掛け算の単位が間違っている
- ③ 割り算の結果が間違っている
- ④ 途中で丸めた値を使って後続の計算をした
解答と解説
正解:④
333.33...を333に丸めると、その後の計算に誤差が入ります。丸めは最後の1回だけにします。
問4 Pythonで round(2.5) を実行すると何が返るか。
- ① 3
- ② 2
- ③ 2.5
- ④ エラー
解答と解説
正解:②
Pythonのroundは偶数丸めで、ちょうど5のときは偶数側(2)になります。
問5 25個の荷物を1箱8個まで入れて発送する。必要な箱の数を求める丸め方として正しいものはどれか。
- ① 25 ÷ 8 = 3.125 を切り捨てて3箱
- ② 25 ÷ 8 = 3.125 を四捨五入して3箱
- ③ 25 ÷ 8 = 3.125 を切り上げて4箱
- ④ 25 ÷ 8 = 3.125 の小数部をそのまま使い3.125箱
解答と解説
正解:③
必要な数は、足りなくならないよう切り上げます。3箱では24個までしか入りません。
問6 2つの部署の売上表を合算するとき、最初に行うべき確認はどれか。
- ① 両方の表の単位(円か千円か)と期間・対象をそろえる
- ② 小数点以下を2桁に丸める
- ③ 列を左から順に足す
- ④ グラフの色をそろえる
解答と解説
正解:①
単位や期間が違うと、足し算の結果は意味を持ちません。合算の前に、単位・期間・対象を確認します。
次に学ぶこと
次は 比率・割合・パーセントポイント で、比率・割合・パーセントポイントを扱います。ここで身につけた「単位を揃えてから割る」「最後に丸める」は、割合の計算でも使います。
この授業の確認問題だけで習得とはしません。ON04 の総合テストと自力課題で判定します。
キャリア学習:データサイエンティスト・機械学習エンジニア・DX推進・研究者を目指す人の学習アプリ。164モジュール・984授業を、ブラウザで動くSQLとPythonの演習で。基礎と各分野の最初のモジュールは無料。全部は2,980円の買い切り。
アプリを無料で開く有料版と無料版の違い