「この2つの数値の比率を、もっとシンプルに表したい」
データ整理や資料づくりで、比率を約分したい場面ってありますよね。
手計算で共通の約数を探すのは地味に手間がかかります。
そんなときに使えるのがGCD関数です。数値を指定するだけで、最大公約数を一発で求めてくれます。
この記事では基本の書き方から比率の約分、LCM関数との違いまで紹介します。
GCD関数とは?
GCD関数(読み方: ジーシーディー関数)は、指定した数値の最大公約数を返す関数です。
名前は英語の「Greatest Common Divisor(最大公約数)」の頭文字からきています。
最大公約数とは、複数の数値をすべて割り切れる最大の整数のことです。
たとえば =GCD(12, 18) と書くと「6」が返ります。12と18を両方割り切れる一番大きい数は6ですね。
GCD関数にできることをまとめると、次のとおりです。
- 2つ以上の数値の最大公約数を求める
- 比率や分数を約分する
- LCM関数と組み合わせて最小公倍数を検算する
- ロット数や共通単位を計算する
NOTE
GCD関数はGoogleスプレッドシートの全バージョンで使えます。Excelとの互換性も完全なので、ファイルのやり取りでも安心です。
GCD関数の書き方(構文と引数)
基本構文
=GCD(値1, [値2, ...])
カッコの中に最大公約数を求めたい数値を指定します。2つ以上の数値を指定できます。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 値1 | 必須 | 最大公約数を求める最初の数値またはセル範囲 |
| 値2, … | 任意 | 追加の数値またはセル範囲(最大255個まで) |
引数は最大255個まで指定できます。セル範囲(A1:A10など)で複数の値をまとめて渡すことも可能です。
GCD関数の基本的な使い方
もっともシンプルな使い方
数値を直接指定するパターンです。
=GCD(12, 18)
結果は「6」です。12と18の最大公約数ですね。
=GCD(24, 36)
結果は「12」です。24 = 12 x 2、36 = 12 x 3 なので、12が最大公約数です。
=GCD(7, 13)
結果は「1」です。7と13は互いに素(共通の約数が1しかない)なので、最大公約数は1になります。
セル参照を使う
A1に「24」、B1に「36」が入っているとします。
=GCD(A1, B1)
結果は「12」です。セル参照を使えば、値を変えるだけで結果が自動更新されます。
3つ以上の数値を指定する
GCD関数は3つ以上の数値にも対応しています。
=GCD(12, 18, 24)
結果は「6」です。12・18・24のすべてを割り切れる最大の整数が6です。
特殊なケース
0を含む場合、0以外の数値がそのまま返ります。
=GCD(5, 0)
結果は「5」です。数学的にGCD(n, 0) = n と定義されています。
小数を指定した場合は、小数点以下が切り捨てられて計算されます。
=GCD(12.9, 18.3)
この数式は =GCD(12, 18) と同じ結果で「6」を返します。
GCD関数の実践的な使い方・応用例
比率を約分する
2つの数値の比率をシンプルに表すのに、GCD関数が活躍します。
たとえばA1に「150」、B1に「200」が入っているとします。
=A1/GCD(A1, B1)
結果は「3」です。
=B1/GCD(A1, B1)
結果は「4」です。
つまり150:200の比率が3:4に約分できました。GCD(150, 200)=50なので、それぞれ50で割った結果ですね。
TIP
売上比率やアンケート結果の割合を資料に載せるとき、約分した比率のほうが見やすくなります。
分数を約分する
分子・分母をそれぞれGCDで割れば、最も簡単な分数になります。
A1に分子「36」、B1に分母「48」が入っているとします。
=A1/GCD(A1, B1)
約分後の分子は「3」です。
=B1/GCD(A1, B1)
約分後の分母は「4」です。
36/48 が 3/4 に約分されました。
3つの数値の比を約分する
商品A・B・Cの売上が「120」「180」「240」だったとします。
=GCD(120, 180, 240)
結果は「60」です。各値を60で割ると、売上比は 2:3:4 とシンプルに表現できます。
LCM関数と組み合わせて検算する
GCDとLCMには、次の数学的な関係があります。
GCD(a, b) x LCM(a, b) = a x b
この性質を使って、LCM関数の結果を検算できます。
A1に「12」、B1に「18」が入っているとします。
=GCD(A1, B1) * LCM(A1, B1)
結果は「216」です。
=A1 * B1
こちらも「216」です。2つの結果が一致すれば、GCDとLCMの値が正しいことを確認できます。
よくあるエラーと対処法
GCD関数で発生しやすいエラーをまとめました。
| エラー | 原因 | 対処法 |
|---|---|---|
| #NUM! | 負の数を指定した(例: GCD(-5, 10)) | 0以上の整数を指定する |
| #VALUE! | 引数に文字列が入っている | セル参照先が数値かどうか確認する |
| #ERROR! | 構文ミス(カッコ忘れ等) | 数式の入力内容を見直す |
負の数を指定したとき
もっとも多いエラーです。GCD関数は0以上の整数でしか使えません。
=GCD(-12, 18)
この数式は#NUM!エラーになります。ABS関数で絶対値に変換すれば回避できます。
=GCD(ABS(A1), ABS(B1))
引数に文字列が含まれるとき
セル範囲を指定して、その中に文字列が混ざっていると#VALUE!エラーになります。
数値だけのセル範囲を指定するようにしてみてください。
GCD関数とLCM関数の違い・使い分け
| 関数 | 動作 | 用途 |
|---|---|---|
| GCD | 最大公約数を返す | 比率の約分・共通単位の計算 |
| LCM | 最小公倍数を返す | スケジュールの合流点・共通倍数の計算 |
最大公約数と最小公倍数の違い
最大公約数(GCD)は「すべての数を割り切れる最大の数」です。最小公倍数(LCM)は「すべての数で割り切れる最小の数」です。
12と18の場合で比べてみましょう。
- GCD(12, 18) = 6: 12も18も6で割り切れる。6より大きい公約数はない
- LCM(12, 18) = 36: 36は12でも18でも割り切れる。36より小さい公倍数はない
使い分けの目安
GCD関数を使う場面:
- 比率を約分したい(150:200 → 3:4)
- 分数を約分したい(36/48 → 3/4)
- 共通のロット単位を求めたい
LCM関数を使う場面:
- スケジュールの合流日を求めたい(3日ごとと5日ごと → 15日後)
- 複数の周期の最小公倍数を求めたい
- 通分の分母を求めたい
TIP
GCDは「縮める」計算、LCMは「合わせる」計算と覚えるとイメージしやすいです。
GCDとLCMの関係式
先ほども紹介しましたが、2つの数a, bについて次の関係が成り立ちます。
GCD(a, b) x LCM(a, b) = a x b
つまりLCM関数がなくても、GCD関数から最小公倍数を計算できます。
=A1 * B1 / GCD(A1, B1)
この数式で =LCM(A1, B1) と同じ結果が得られます。
Excelとの違い
GCD関数はExcelとGoogleスプレッドシートで完全に同じ動作です。
| 項目 | Excel | Googleスプレッドシート |
|---|---|---|
| 構文 | =GCD(数値1, [数値2], …) | =GCD(値1, [値2, …]) |
| 動作 | 最大公約数を返す | 最大公約数を返す |
| 小数の扱い | 小数点以下を切り捨て | 小数点以下を切り捨て |
| エラー時 | #NUM! / #VALUE! | #NUM! / #VALUE! |
引数名の表記が若干異なるだけで、機能は完全に同じです。Excelでの使い方はExcelのGCD関数の記事で詳しく解説しています。
まとめ
GCD関数は、指定した数値の最大公約数を求める関数です。
ポイントを整理します。
- 構文は
=GCD(値1, [値2, ...])で、最大255個の数値を指定できる - 比率の約分に便利。各値をGCDで割るだけでシンプルな比率になる
- 小数は切り捨て、負の数は#NUM!エラー、0は許容される
- LCM関数(最小公倍数)との違いは「縮める計算」か「合わせる計算」か
- GCD(a,b) x LCM(a,b) = a x b の関係式で相互に検算できる
- ExcelのGCD関数と完全に同じ動作で、互換性も安心
まずは =GCD(12, 18) で「12と18の最大公約数 = 6」から試してみてください。
