「最小公倍数ってどうやって求めるんだっけ?」と悩んだことはありませんか。スケジュールの合流日を調べたいときや、異なる単位の部品をまとめ買いしたいときなど。最小公倍数が必要になる場面は意外とあります。
手計算で素因数分解するのは手間ですし、数が大きくなるとミスも増えます。そんなときに使えるのが LCM関数 です。基本の書き方から実務で役立つパターンまで、まとめて紹介します。
LCM関数とは?
読み方と基本概念
LCM関数は、指定した数値の 最小公倍数 を求める関数です。
- 読み方: エルシーエム関数
- 語源: 英語の「Least Common Multiple」(最小公倍数)
最小公倍数とは、複数の数値の公倍数のうち最も小さい数のことです。たとえば 4 と 6 の最小公倍数は 12 です。12 は 4 でも 6 でも割り切れますよね。
LCM関数を使えば、こうした計算をセル1つで完結できます。
構文と引数(数値1〜255個)
LCM関数はExcel 2007以降のすべてのバージョンで使用できます。
=LCM(数値1, [数値2], ...)
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| 数値1 | 必須 | 最小公倍数を求めたい1つ目の数値 |
| 数値2〜255 | 省略可 | 最小公倍数を求めたい追加の数値(最大255個) |
引数には数値またはセル参照を指定します。ポイントは次の3つです。
- 小数は切り捨て: 4.7 を指定すると 4 として処理されます
- 0を含む場合: LCM(5, 0) は 0 を返します(エラーにはなりません)
- 負の数はNG: 負の数を指定すると #NUM! エラーになります
LCM関数の基本的な使い方
値を直接入力する
もっともシンプルな使い方です。数値を直接指定します。
=LCM(4, 6)
結果は 12 です。4 の倍数(4, 8, 12, …)と 6 の倍数(6, 12, 18, …)のうち、最小の共通する数が 12 ということですね。
ほかにもいくつか例を見てみましょう。
| 数式 | 結果 | 考え方 |
|---|---|---|
| =LCM(3, 5) | 15 | 3 x 5(互いに素なので積がそのまま最小公倍数) |
| =LCM(8, 12) | 24 | 8 = 2^3、12 = 2^2 x 3 → 2^3 x 3 = 24 |
| =LCM(7, 7) | 7 | 同じ数値同士の最小公倍数はその数自身 |
| =LCM(4, 6, 10) | 60 | 3つの数値もまとめて指定できる |
3つ以上の数値を指定する場合も、カンマで区切って並べるだけです。
セル参照で複数の値を指定する
実務ではセル参照を使うケースがほとんどです。A2セルとB2セルに数値が入っている場合は次のように書きます。
=LCM(A2, B2)
セル参照にしておけば、数値を変更するだけで結果が自動的に再計算されます。3つ以上のセルを指定する場合は、カンマで区切って追加してください。
=LCM(A2, B2, C2)
配列(範囲)をまとめて指定する
数値がA2:A10のように連続したセルに入っている場合は、範囲をまとめて指定できます。
=LCM(A2:A10)
セルを1つずつカンマで区切る必要がないので、データが多いときに便利です。もちろん、範囲と個別のセルを組み合わせることもできます。
=LCM(A2:A10, C2)
LCM関数の実務活用シーン3選
スケジュールの合流日を調べる
LCM関数の定番の使い方が スケジュール調整 です。異なる周期を持つイベントが同時に発生するタイミングを求められます。
たとえば、Aさんは6日ごと、Bさんは8日ごとに出勤するとします。2人が同時に出勤するのは何日おきかを求める数式はこちらです。
=LCM(6, 8)
結果は 24 です。つまり24日ごとに2人の出勤日が重なります。
3人以上の場合も同様です。Cさんが10日周期なら次のように書きます。
=LCM(6, 8, 10)
結果は 120 です。3人全員の出勤日が揃うのは120日ごとということですね。
まとめ買い数量を計算する
「異なる入り数の部品を、ちょうど同じ個数だけ揃えたい」という場面でLCM関数が役立ちます。
たとえば、ボルトが12本入り、ナットが8本入りで販売されているとします。過不足なく同じ数だけ揃えるには何本ずつ買えばよいでしょうか。
=LCM(12, 8)
結果は 24 です。ボルトは24 / 12 = 2箱、ナットは24 / 8 = 3箱で、どちらも24本ずつちょうど揃います。
この考え方は、印刷物のページ配分(4ページ折りと6ページ折りの共通枚数)やタイルの敷き詰め計算にも応用できます。
共通サイクルでデータを整列する
定期的なデータ更新のタイミングを揃える場面です。たとえば、レポートAは3日ごと、レポートBは5日ごとに更新される場合。両方のレポートが同時に更新されるタイミングは次の式で求められます。
=LCM(3, 5)
結果は 15 です。15日ごとに両レポートの更新日が一致します。
この共通サイクルを基準にすれば、両方のデータが揃ったタイミングで分析を始められます。更新周期が異なるシステム間の同期タイミングを調べるときにも使えるテクニックです。
LCM関数とGCD関数の違いと使い分け
LCM vs GCD 比較表
LCM関数と GCD関数 は対になる関数です。混同しやすいので、違いを整理しておきましょう。
| 比較項目 | LCM関数 | GCD関数 |
|---|---|---|
| 正式名称 | Least Common Multiple | Greatest Common Divisor |
| 日本語 | 最小公倍数 | 最大公約数 |
| 求めるもの | 共通の倍数のうち最小の整数 | 共通して割り切れる最大の整数 |
| 構文 | =LCM(数値1, [数値2], …) | =GCD(数値1, [数値2], …) |
| LCM/GCD(12,18)の例 | 36 | 6 |
| 関係式(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 です。
シーン別:どちらを使うべきか
| やりたいこと | 使う関数 | 理由 |
|---|---|---|
| 複数周期の重なりを求める | LCM | 全周期の最小公倍数が合流タイミング |
| 異なるサイズの部品をまとめ買いする | LCM | すべての数の公倍数で揃える |
| 分数を約分する | GCD | 分子と分母を共通の最大値で割る |
| データを均等に分割する | GCD | 共通して割り切れる最大の単位を知りたい |
結論: 「揃える」操作が絡む場面ではLCM関数、「割る」操作が絡む場面では GCD関数 を選んでください。
LCM関数のエラーと対処法
LCM関数で発生するエラーと対処法をまとめます。
| エラー | 原因 | 対処法 |
|---|---|---|
| #NUM! | 負の数を指定した | ABS関数 で絶対値に変換してから渡す |
| #NUM! | 結果が 2^53 を超える | 値が大きすぎないか確認する(大きな数の組み合わせに注意) |
| #VALUE! | 文字列など数値以外を指定した | セルに数値が入っているか確認する |
| #NAME? | 関数名のスペルミス | 「LCM」のスペルを確認する |
#NUM! エラーの対処例
LCM関数でもっとも多いエラーです。負の数を指定すると発生します。
=LCM(-4, 6)
この数式は #NUM! エラーになります。ABS関数で絶対値にすれば回避できます。
=LCM(ABS(A2), ABS(B2))
データに負の数が含まれる可能性がある場合は、ABS関数で囲んでおくと安心です。
NOTE
LCM関数は結果が非常に大きくなりやすい関数です。たとえば LCM(99, 97, 95) = 912,285 のように、引数が増えると結果が急激に大きくなります。結果が 2^53(約9007兆)を超えると #NUM! エラーになるので注意してください。
0を含む場合の動作
0を引数に指定してもエラーにはなりません。ただし、LCM(5, 0) は 0 を返します。0はすべての整数の倍数とみなされるためです。
GCD関数と動作が異なるポイントです。GCD(5, 0) は 5 を返しますが、LCM(5, 0) は 0 になります。この違いは覚えておきましょう。
まとめ
LCM関数のポイントを整理します。
- 書き方: =LCM(数値1, [数値2], …) で、最小公倍数を求める
- 引数: 最大255個の数値を指定できる。小数は切り捨て処理される
- 実務活用: スケジュール調整、まとめ買い数量の計算、共通サイクルの算出に使える
- GCD関数との違い: 「揃える」場面はLCM、「割る」場面は GCD関数
- エラー対策: 負の数には ABS関数を組み合わせて #NUM! を回避
最小公倍数の計算が必要になったら、ぜひLCM関数を活用してみてください。
biz-tactics の Excel関数リファレンス
biz-tactics ではExcel関数の使い方を多数紹介しています。用途に合わせてご活用ください。
