「3日ごとと5日ごとのタスク、次に同時に発生するのはいつだろう?」
異なる周期のスケジュールが重なるタイミングを調べたいこと、ありますよね。
手計算で倍数を書き出して探すのは、数が大きくなるほど大変です。
そんなときに使えるのがLCM関数です。数値を指定するだけで、最小公倍数を一発で求めてくれます。
この記事では基本の書き方からスケジュール調整への活用、GCD関数との違いまで紹介します。
LCM関数とは?
LCM関数(読み方: エルシーエム関数)は、指定した数値の最小公倍数を返す関数です。
名前は英語の「Least Common Multiple(最小公倍数)」の頭文字からきています。
最小公倍数とは、複数の数値の公倍数のうち最も小さい数のことです。
たとえば =LCM(4, 6) と書くと「12」が返ります。12は4でも6でも割り切れる、一番小さい数ですね。
LCM関数にできることをまとめると、次のとおりです。
- 2つ以上の数値の最小公倍数を求める
- スケジュールの合流タイミングを計算する
- まとめ買いの数量をそろえる
- GCD関数と組み合わせて検算する
NOTE
LCM関数はGoogleスプレッドシートの全バージョンで使えます。Excelとの互換性も完全なので、ファイルのやり取りでも安心です。
LCM関数の書き方(構文と引数)
基本構文
=LCM(値1, [値2, ...])
カッコの中に最小公倍数を求めたい数値を指定します。2つ以上の数値を指定できます。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 値1 | 必須 | 最小公倍数を求める最初の数値またはセル範囲 |
| 値2, … | 任意 | 追加の数値またはセル範囲(最大255個まで) |
引数は最大255個まで指定できます。セル範囲(A1:A10など)で複数の値をまとめて渡すことも可能です。
LCM関数の基本的な使い方
もっともシンプルな使い方
数値を直接指定するパターンです。
=LCM(4, 6)
結果は「12」です。
4の倍数と6の倍数を並べると、最初に一致するのが12です。
=LCM(3, 5)
結果は「15」です。3と5は互いに素なので、積の15がそのまま最小公倍数になります。
=LCM(8, 12)
結果は「24」です。
8の倍数(8, 16, 24, …)と12の倍数(12, 24, …)を比べると、最小の共通値が24ですね。
セル参照を使う
A1に「4」、B1に「6」が入っているとします。
=LCM(A1, B1)
結果は「12」です。セル参照を使えば、値を変えるだけで結果が自動更新されます。
3つ以上の数値を指定する
LCM関数は3つ以上の数値にも対応しています。
=LCM(4, 6, 10)
結果は「60」です。4・6・10のすべてで割り切れる最小の数が60になります。
特殊なケース
0を含む場合、結果は「0」になります。
=LCM(5, 0)
結果は「0」です。0はすべての整数の倍数とみなされるためです。
NOTE
GCD関数では GCD(5, 0) = 5 ですが、LCM関数では LCM(5, 0) = 0 です。ペア関数ですが0の扱いが異なるので注意してください。
小数を指定した場合は、小数点以下が切り捨てられて計算されます。
=LCM(4.9, 6.3)
この数式は =LCM(4, 6) と同じ結果で「12」を返します。
LCM関数の実践的な使い方・応用例
スケジュールの合流日を求める
LCM関数の定番の使い方が、スケジュール調整です。
たとえばAさんは6日ごと、Bさんは8日ごとに出勤するとします。2人が同時に出勤するのは何日おきでしょうか。
=LCM(6, 8)
結果は「24」です。つまり24日ごとに2人の出勤日が重なります。
3人以上の場合も同様です。Cさんが10日周期なら次のように書きます。
=LCM(6, 8, 10)
結果は「120」です。3人全員の出勤日がそろうのは120日ごとですね。
TIP
基準日に日数を足せば、具体的な合流日も求められます。たとえばA1に基準日が入っていれば
=A1 + LCM(6, 8)で24日後の日付が表示されます。
まとめ買い数量をそろえる
「入り数が違う部品を、過不足なく同じ数だけ揃えたい」という場面で役立ちます。
たとえばボルトが12本入り、ナットが8本入りで売られているとします。
=LCM(12, 8)
結果は「24」です。ボルトは2箱(24 / 12)、ナットは3箱(24 / 8)で、24本ずつちょうど揃います。
通分の分母を求める
分数の足し算で必要な通分にも、LCM関数が使えます。
たとえば 1/4 と 1/6 を足すとき、通分する分母を求めます。
=LCM(4, 6)
結果は「12」です。1/4 = 3/12、1/6 = 2/12 となるので、足し算は 5/12 ですね。
GCD関数と組み合わせて検算する
GCDとLCMには、次の数学的な関係があります。
GCD(a, b) x LCM(a, b) = a x b
この性質を使って、計算結果を検算できます。
A1に「12」、B1に「18」が入っているとします。
=GCD(A1, B1) * LCM(A1, B1)
結果は「216」です。
=A1 * B1
こちらも「216」です。2つの結果が一致すれば、GCDとLCMの値が正しいことを確認できます。
よくあるエラーと対処法
LCM関数で発生しやすいエラーをまとめました。
| エラー | 原因 | 対処法 |
|---|---|---|
| #NUM! | 負の数を指定した(例: LCM(-4, 6)) | ABS関数で絶対値に変換する |
| #NUM! | 結果が大きすぎる | 引数の組み合わせを見直す |
| #VALUE! | 引数に文字列が入っている | セル参照先が数値かどうか確認する |
| #ERROR! | 構文ミス(カッコ忘れ等) | 数式の入力内容を見直す |
負の数を指定したとき
もっとも多いエラーです。LCM関数は0以上の整数でしか使えません。
=LCM(-4, 6)
この数式は#NUM!エラーになります。ABS関数で絶対値に変換すれば回避できます。
=LCM(ABS(A1), ABS(B1))
結果が大きくなりすぎるとき
LCM関数は結果が大きくなりやすい関数です。互いに素な数値を複数指定すると、積がそのまま結果になります。
結果が 2^53(約9007兆)を超えると#NUM!エラーになるので注意してください。
引数に文字列が含まれるとき
セル範囲を指定して、その中に文字列が混ざっていると#VALUE!エラーになります。
数値だけのセル範囲を指定するようにしてみてください。
GCD関数との違い・使い分け
LCM関数とGCD関数は対になるペア関数です。混同しやすいので、違いを整理しておきましょう。
| 項目 | LCM関数 | GCD関数 |
|---|---|---|
| 正式名称 | Least Common Multiple | Greatest Common Divisor |
| 日本語 | 最小公倍数 | 最大公約数 |
| 求めるもの | 共通の倍数のうち最小の整数 | 共通して割り切れる最大の整数 |
| LCM/GCD(12, 18) | 36 | 6 |
| 0の扱い | LCM(5, 0) = 0 | GCD(5, 0) = 5 |
使い分けの目安
LCM関数を使う場面:
- スケジュールの合流日を求めたい(3日ごとと5日ごと → 15日後)
- 複数の周期の最小公倍数を求めたい
- 通分の分母を求めたい
- まとめ買い数量をそろえたい
GCD関数を使う場面:
- 比率を約分したい(150:200 → 3:4)
- 分数を約分したい(36/48 → 3/4)
- 共通のロット単位を求めたい
TIP
LCMは「合わせる」計算、GCDは「縮める」計算と覚えるとイメージしやすいです。
GCDとLCMの関係式
先ほども紹介しましたが、2つの数a, bについて次の関係が成り立ちます。
GCD(a, b) x LCM(a, b) = a x b
つまりGCD関数がわかれば、LCMを使わなくても最小公倍数を計算できます。
=A1 * B1 / GCD(A1, B1)
この数式で =LCM(A1, B1) と同じ結果が得られます。
Excelとの違い
LCM関数はExcelとGoogleスプレッドシートで完全に同じ動作です。
| 項目 | Excel | Googleスプレッドシート |
|---|---|---|
| 構文 | =LCM(数値1, [数値2], …) | =LCM(値1, [値2, …]) |
| 動作 | 最小公倍数を返す | 最小公倍数を返す |
| 小数の扱い | 小数点以下を切り捨て | 小数点以下を切り捨て |
| エラー時 | #NUM! / #VALUE! | #NUM! / #VALUE! |
引数名の表記が若干異なるだけで、機能は完全に同じです。Excelでの使い方はExcelのLCM関数の記事をご覧ください。
まとめ
LCM関数は、指定した数値の最小公倍数を求める関数です。
ポイントを整理します。
- 構文は
=LCM(値1, [値2, ...])で、最大255個の数値を指定できる - スケジュールの合流日やまとめ買い数量の計算に便利
- 小数は切り捨て、負の数は#NUM!エラー、0を含むと結果は0になる
- GCD関数(最大公約数)との違いは「合わせる計算」か「縮める計算」か
- GCD(a,b) x LCM(a,b) = a x b の関係式で相互に検算できる
- ExcelのLCM関数と完全に同じ動作で、互換性も安心
まずは =LCM(4, 6) で「4と6の最小公倍数 = 12」から試してみてください。
