「3日ごとと5日ごとのタスク、次に同時に発生するのはいつだろう?」
スプレッドシートで異なる周期のスケジュールを管理していると、こんな場面に出くわしますよね。手計算で倍数を書き出して探すのは、数が大きくなるほど大変です。
そんなときに便利なのがスプレッドシートのLCM関数です。数値を指定するだけで、最小公倍数を一発で求めてくれますよ。
この記事では基本の書き方からスケジュール調整への活用、GCD関数との違いまで紹介します。
LCM関数とは?スプレッドシートで最小公倍数を求める関数
LCM関数(読み方: エルシーエム関数)は、指定した数値の最小公倍数を返す関数です。
名前は「Least Common Multiple(最小公倍数)」の頭文字からきています。
最小公倍数とは、複数の数値に共通する倍数のうち最も小さい数のことです。たとえば =LCM(4, 6) と書くと「12」が返ります。12は4でも6でも割り切れる、一番小さい数ですね。
LCM関数にできることをまとめると、次のとおりです。
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)
!_images/spreadsheet-lcm-function/02_formula_lcm-basic.png
結果は「12」です。セル参照を使えば、値を変えるだけで結果が自動更新されますよ。
!_images/spreadsheet-lcm-function/03_result_lcm-basic.png
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の結果を入り数で割ればOKです。
| 部品 | 入り数 | 必要箱数(=LCM / 入り数) | 合計数 |
|---|---|---|---|
| ボルト | 12本 | 2箱 | 24本 |
| ナット | 8本 | 3箱 | 24本 |
通分の分母を求める
分数の足し算で必要な通分にも、LCM関数が使えます。
たとえば 1/4 と 1/6 を足すとき、通分する分母を求めます。
=LCM(4, 6)
結果は「12」です。1/4 = 3/12、1/6 = 2/12 となるので、足し算は 5/12 ですね。
MOD関数と組み合わせた割り切り判定
MOD関数(余りを返す関数)とLCM関数を組み合わせると、ある数値が複数の数で割り切れるかを判定できます。
たとえば「A1の数値が4と6の両方で割り切れるか」を調べたい場合、次のように書きます。
=MOD(A1, LCM(4, 6))=0
LCM(4, 6)は12なので、A1が12で割り切れればTRUE、割り切れなければFALSEを返します。12で割り切れる数は、4でも6でも必ず割り切れますよ。
この仕組みを応用すれば、IF関数と組み合わせた条件分岐も作れます。
=IF(MOD(A1, LCM(4, 6))=0, "両方で割り切れる", "割り切れない")
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関数の使い方の記事も参考にしてみてください。
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
- MOD関数と組み合わせると割り切り判定ができる
- GCD関数(最大公約数)とはペア関数。「合わせる計算」と「縮める計算」の違い
- GCD(a,b) x LCM(a,b) = a x b の関係式で相互に検算できる
- ExcelのLCM関数と完全に同じ動作で、互換性も安心
まずは =LCM(4, 6) で「4と6の最小公倍数 = 12」から試してみてください。
