「最大公約数ってどうやって求めるんだっけ?」と悩んだことはありませんか。分数を約分したいときや、データを均等に分けたいときなど。最大公約数が必要になる場面は意外とあります。
手計算で素因数分解するのは手間ですし、数が大きくなるとミスも増えます。そんなときに使えるのが GCD関数 です。基本の書き方から実務で役立つパターンまで、まとめて紹介します。
GCD関数とは?
読み方と基本概念
GCD関数は、指定した数値の 最大公約数 を求める関数です。
- 読み方: ジーシーディー関数
- 語源: 英語の「Greatest Common Divisor」(最大公約数)
最大公約数とは、複数の数値を割り切れる整数のうち最も大きい数のことです。たとえば 12 と 18 の最大公約数は 6 です。12 も 18 も 6 で割り切れますよね。
GCD関数を使えば、こうした計算をセル1つで完結できます。
構文と引数(数値1〜255個)
GCD関数はExcel 2007以降のすべてのバージョンで使用できます。
=GCD(数値1, [数値2], ...)
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| 数値1 | 必須 | 最大公約数を求めたい1つ目の数値 |
| 数値2〜255 | 省略可 | 最大公約数を求めたい追加の数値(最大255個) |
引数には数値またはセル参照を指定します。ポイントは次の3つです。
- 小数は切り捨て: 4.7 を指定すると 4 として処理されます
- 0は有効: GCD(5, 0) は 5 を返します(エラーにはなりません)
- 負の数はNG: 負の数を指定すると #NUM! エラーになります
GCD関数の基本的な使い方
値を直接入力する
もっともシンプルな使い方です。数値を直接指定します。
=GCD(12, 18)
結果は 6 です。12 と 18 をどちらも割り切れる最大の整数が 6 ということですね。
ほかにもいくつか例を見てみましょう。
| 数式 | 結果 | 考え方 |
|---|---|---|
| =GCD(8, 12) | 4 | 8 = 4 x 2、12 = 4 x 3 |
| =GCD(15, 25) | 5 | 15 = 5 x 3、25 = 5 x 5 |
| =GCD(7, 13) | 1 | 互いに素(共通の約数が1のみ) |
| =GCD(24, 36, 60) | 12 | 3つの数値もまとめて指定できる |
3つ以上の数値を指定する場合も、カンマで区切って並べるだけです。
セル参照で複数の値を指定する
実務ではセル参照を使うケースがほとんどです。A2セルとB2セルに数値が入っている場合は次のように書きます。
=GCD(A2, B2)
セル参照にしておけば、数値を変更するだけで結果が自動的に再計算されます。3つ以上のセルを指定する場合は、カンマで区切って追加してください。
=GCD(A2, B2, C2)
配列(範囲)をまとめて指定する
数値がA2:A10のように連続したセルに入っている場合は、範囲をまとめて指定できます。
=GCD(A2:A10)
セルを1つずつカンマで区切る必要がないので、データが多いときに便利です。もちろん、範囲と個別のセルを組み合わせることもできます。
=GCD(A2:A10, C2)
GCD関数の実務活用シーン3選
分数を約分して表示する
GCD関数の定番の使い方が 分数の約分 です。分子と分母の最大公約数で割れば、約分後の値が得られます。
A2セルに分子(18)、B2セルに分母(24)が入っている場合の数式はこちらです。
約分後の分子を求める数式です。
=A2/GCD(A2, B2)
約分後の分母を求める数式です。
=B2/GCD(A2, B2)
具体的に確認してみましょう。
| A列(分子) | B列(分母) | 約分後の分子 | 約分後の分母 | 結果 | |
|---|---|---|---|---|---|
| 例1 | 18 | 24 | 3 | 4 | 3/4 |
| 例2 | 45 | 60 | 3 | 4 | 3/4 |
| 例3 | 14 | 35 | 2 | 5 | 2/5 |
18 と 24 の最大公約数は 6 です。18 ÷ 6 = 3、24 ÷ 6 = 4 で、約分後は 3/4 になります。
データを均等分割する共通単位を求める
「複数のデータを同じ単位で均等に分けたい」というときにGCD関数が役立ちます。
たとえば、3種類の商品の在庫数が 120個、180個、240個だとします。これらをすべて同じ個数ずつセットにまとめたいとき、1セットあたりの個数は次の式で求められます。
=GCD(120, 180, 240)
結果は 60 です。つまり60個ずつのセットにすれば、どの商品もちょうど割り切れます。
この考え方は、ケーキの等分、予算の均等配分、倉庫スペースの区画割りなど、さまざまな場面で応用できます。
スケジュールの共通サイクルを調べる
「Aさんは6日ごと、Bさんは8日ごとに出勤する。2人が同時に出勤するのは何日おき?」という問題。これは最小公倍数(LCM関数)で求められますが、その途中計算でGCD関数が活躍します。
2数の場合、最小公倍数は次の関係式で計算できます。
=A2*B2/GCD(A2, B2)
A2に6、B2に8が入っている場合、GCD(6, 8) = 2 なので、6 x 8 ÷ 2 = 24 です。24日ごとに2人の出勤日が重なります。
TIP
Excelには最小公倍数を直接求める LCM関数 もあります。最小公倍数だけが必要な場合はLCM関数が簡単です。関係式を知っておくと、GCD関数の理解が深まります。
GCD関数とLCM関数の違いと使い分け
GCD vs LCM 比較表
GCD関数と LCM関数 は対になる関数です。混同しやすいので、違いを整理しておきましょう。
| 比較項目 | GCD関数 | LCM関数 |
|---|---|---|
| 正式名称 | Greatest Common Divisor | Least Common Multiple |
| 日本語 | 最大公約数 | 最小公倍数 |
| 求めるもの | 共通して割り切れる最大の整数 | 共通の倍数のうち最小の整数 |
| 構文 | =GCD(数値1, [数値2], …) | =LCM(数値1, [数値2], …) |
| GCD(12,18)の例 | 6 | 36 |
| 関係式(2数) | GCD(a,b) x LCM(a,b) = a x b | 同左 |
2数の場合、GCD と LCM の積はもとの2数の積に等しいという関係があります。GCD(12, 18) = 6、LCM(12, 18) = 36 で、6 x 36 = 12 x 18 = 216 です。
シーン別:どちらを使うべきか
| やりたいこと | 使う関数 | 理由 |
|---|---|---|
| 分数を約分する | GCD | 分子と分母を共通の最大値で割る |
| データを均等に分割する | GCD | 共通して割り切れる最大の単位を知りたい |
| 複数周期の重なりを求める | LCM | 全周期の最小公倍数が合流タイミング |
| 異なるサイズの部品をまとめ買いする | LCM | すべての数の公倍数で揃える |
結論: 「割る」操作が絡む場面ではGCD関数、「揃える」操作が絡む場面では LCM関数 を選んでください。
GCD関数のエラーと対処法
GCD関数で発生するエラーと対処法をまとめます。
| エラー | 原因 | 対処法 |
|---|---|---|
| #NUM! | 負の数を指定した | ABS関数 で絶対値に変換してから渡す |
| #NUM! | 結果が 2^53 を超える | 値が大きすぎないか確認する |
| #VALUE! | 文字列など数値以外を指定した | セルに数値が入っているか確認する |
| #NAME? | 関数名のスペルミス | 「GCD」のスペルを確認する |
#NUM! エラーの対処例
GCD関数でもっとも多いエラーです。負の数を指定すると発生します。
=GCD(-12, 18)
この数式は #NUM! エラーになります。ABS関数で絶対値にすれば回避できます。
=GCD(ABS(A2), ABS(B2))
データに負の数が含まれる可能性がある場合は、ABS関数で囲んでおくと安心です。
0を含む場合の動作
0を引数に指定してもエラーにはなりません。GCD(5, 0) は 5 を返します。すべての整数は0の約数とみなされるためです。
ただし GCD(0, 0) は 0 を返します。この点は覚えておきましょう。
まとめ
GCD関数のポイントを整理します。
- 書き方: =GCD(数値1, [数値2], …) で、最大公約数を求める
- 引数: 最大255個の数値を指定できる。小数は切り捨て処理される
- 実務活用: 分数の約分、データの均等分割、スケジュール計算に使える
- LCM関数との違い: 「割る」場面はGCD、「揃える」場面は LCM関数
- エラー対策: 負の数には ABS関数を組み合わせて #NUM! を回避
最大公約数の計算が必要になったら、ぜひGCD関数を活用してみてください。
biz-tactics の Excel関数リファレンス
biz-tactics ではExcel関数の使い方を多数紹介しています。用途に合わせてご活用ください。
