いきなり答える備忘録

G Suite・Microsoft 365・LibreOfficeなどに関するメモと日々の実験

(Gスプレッドシート)月の初日の日付を求める

 Googleスプレッドシートで、指定した月の初日(つまり1日)の日付を求める方法についてです。

  • 年と月が与えられている場合は「=DATE(年,月,1)」で月の初日が求められます。
  • 日付(年月日)が与えられている場合は「=EOMONTH(日付,-1)+1」で月の初日が求められます。

手順

年と月の値が与えられている場合

f:id:accs2014:20200714213732p:plain:right:w500

 B3セルに年(2020)が、C3セルに月(7)が入力されています。
 そこでD3セルに次のように入力することで月の初日、つまり2020年7月1日の日付を取得しています。

 D3セル

=DATE(B3,C3,1)

 DATE関数に年,月,日の3つの引数を与えることで日付を取得することができます。
 そこで3つの引数をそれぞれB3,C3,1とすることで2020/07/01という日付を得ています。
 なお「2020/7/1」と表示させる場合は書式の変更で対応します(「表示形式」→「数字」→「表示形式の詳細設定」→「カスタム数値形式」と進み、パターンを「yyyy/m/d」と指定)。

日付(年月日)が与えられている場合

f:id:accs2014:20200714213736p:plain:right:w450

 B3セルに「2020/7/12」という日付が入力されています。
 そこでC3セルに次のように入力して2020年7月1日の日付を取得しています。

 C3セル

=EOMONTH(B3,-1)+1

 EOMONTH関数は指定した日が属する月の末日の日付を求める関数です。さらに第2引数を指定することで○か月後や○か月前の月の月末の日付を求めることもできます。そこで第2引数を-1とし、先月末の日付を求めます。そして最後に1(1日)を足すことで当月の初日を求めています。