★うめじ英語塾 お問い合わせフォーム★

Excelで「○ヶ月後」をスマートに計算する方法

Excelで「○ヶ月後」をスマートに計算する方法

つい最近(2025年10月29日)、エクセルの関数を改良しました。
と言っても、わたしが知らなかっただけなのですが…。

エクセルで「7月の5ヶ月後は?」のように、月を足す計算をする必要がありました。これまでは、MOD関数を使って

=IF(MOD(A1,12)=0,12,MOD(A1,12))

のようにしていました。

というのも、月を足す計算では「7月の2ヶ月後」なら単純に「7+2」でいいのですが、「7月の6ヶ月後」を足すと「7+6」で「13月」になってしまいます。

MOD関数を使うと、ある数字を割ったときの余りを求めることができます。上の式では、A1の値を12で割ったときの余りが0、つまりA1が12の倍数なら12を、それ以外ならA1の値を12で割った余りが表示されます。

「7月の5ヶ月後は?」の例でいうと、A1に「=7+5」と入力し、別のセル(例えば、B1)に上記の式を入れるイメージです。7+5=12なので、12で割った余りは0。余りが0の場合は、B1に12が表示されます。

ところが、人工知能(AI)のClaudeに「もっと簡単にできないか(英語では “Simplify this”)」と尋ねたところ、

=1 + MOD(A1-1,12)

で同じことができるとわかりました。まるで魔法のようですが、これで本当にうまくいきます。

なぜこの式が機能するのか

最初は不思議に思いましたが、よく考えると理にかなっています。
A1から1を引くことで、「12の倍数のとき0になる」という問題を回避しているのです。

たとえばA1が12の場合、12-1=11。11を12で割った余りは11。そこに1を足すと12になります。
A1が13の場合は、13-1=12。12を12で割った余りは0。そこに1を足すと1になります。

たったこれだけのことですが、AIに言われるまま、該当のワークシートでエクセルの関数を7箇所修正し、さらに計算の理屈を自分で理解して、AIの修正が正しいことを確認するのに4時間かかりました。

少し謎めいた内容になりましたが、ご興味のある方は、ぜひご自身で考えてみてください♪