「20日締め」の請求月を日付から1つの式で出す:EOMONTHの使い方と2つの注意

「20日締め」の請求月を日付から1つの式で出す:EOMONTHの使い方と2つの注意

記事
IT・テクノロジー
「20日締め」の取引先がある事務では、10月21日の売上は「11月分」、10月20日の売上は「10月分」に入れます。これを日付を見ながら手で振り分けていると、月末にずれが出やすくなります。今回は、日付から「何日締めの何月分か」を1つの式で出す方法を紹介します。

■ 式はこれだけ

A列に日付があるとして、隣の列に次の式を入れます。

=EOMONTH(A2-20,0)+20

答えは「その日付が入る締め日」です(セルの表示形式を日付にしてください)。

- 10月20日 → 10月20日(10月分)
- 10月21日 → 11月20日(11月分)
- 11月5日 → 11月20日(11月分)
- 12月25日 → 翌年1月20日(翌年1月分)

■ なぜこれで締め日になるのか

考え方は「日付から20日を引いて、その月の月末に20日を足す」です。

10月21日から20日引くと10月1日。その月末は10月31日。20日足すと11月20日になります。
10月20日から20日引くと9月30日。月末は9月30日のまま。20日足すと10月20日です。

EOMONTH(日付,0) は「その日付の月の月末」を返す関数です。年をまたぐ12月下旬も、翌年の1月20日になります。

■ 「何月分」と表示したいとき

締め日の列(C列とします)があれば、

=YEAR(C2)&"年"&MONTH(C2)&"月分"

で「2026年11月分」のように出せます。

■ 締め月ごとに合計する

締め日の列ができれば、SUMIFS で締め月ごとに合計できます。

=SUMIFS(B2:B7,C2:C7,G2)

G2 に「2026/11/20」と入れておけば、11月20日締めの合計になります。

25日締めなら、式の 20 を 25 に変えるだけです(=EOMONTH(A2-25,0)+25)。

■ 気をつけること

1. 締め日が29日〜31日のときは、この形では使えません。2月に29日・30日・31日が無いためです。月末締めなら =EOMONTH(A2,0) をそのまま使います
2. 日付が「文字」で入っていると計算できません。書き出したデータで答えがエラーになるときは、日付が文字になっていないかを先に確かめてください

■ 確かめたこと

今回の式は、Python の計算ライブラリ(formulas)で見本のファイルを作って計算させ、上の日付の例(10月20日・10月21日・11月5日・12月25日・3月1日・10月1日)がすべて手で数えた締め日と同じになること、SUMIFS で 11月20日締めが 5,000円、10月20日締めが 7,000円になることを確かめました。Excel や Google スプレッドシートの画面そのものでは確かめていないので、お使いのファイルで数行だけ試してから全体に広げてください。

■ おわりに

締め日の振り分けは、1列足すだけで手作業がなくなります。日付の扱いで迷う式づくりを1つだけ頼みたい方向けに、「スプレッドシート関数・GASを1つお作りします」という出品をしています。動かして確かめてからお渡しします。

※この記事は、生成AI(Claude)を使って下書きし、式は手元で計算して確かめてから公開しています。
サービス数100万件のスキルマーケット、あなたにぴったりのサービスを探す