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時間かかりました。
少し謎めいた内容になりましたが、ご興味のある方は、ぜひご自身で考えてみてください♪
-  前の記事
  2025年11月2日の英語勉強日誌 2025.11.03
 -  次の記事
記事がありません