連続した日付のリストで月末のセルを参照する方法を紹介します。
概要
連続した日付のリストのシートで月末のセルのみを参照したい場合があります。
それぞれのセルの値を参照して参照できますが、数が多くなってきた場合に操作が大変になるため、数式で表現してコピーペーストで参照できるようにする手順を紹介します。
手順
Excelを起動します。
Sheet1に日付のリストと値の表を用意します。今回は2009/1/1から連続した日付のリストと日付に対応する値の表を準備しました。
次に Sheet2 にそれぞれの月と月末の値の表を作成します。"2009年1月" は "2009/1/1" の日付型の値を書式設定して表示しています。
Sheet2のC2セルの参照先のセルを確認します。2009年の1月末の値はSheet1のB32セルになります。
Sheet2のC2セルに以下の数式を入力します。
=OFFSET(Sheet1!$B$1,EOMONTH(B2,0)-EOMONTH($B$2,0)+31,0)
数式を確定すると、Sheet1のB32セルの値が参照されて表示されます。
Sheet2のC2セルをコピーして、C3セルにペーストします。ペーストされた数式は下記になります。
=OFFSET(Sheet1!$B$1,EOMONTH(B3,0)-EOMONTH($B$2,0)+31,0)
参照先のセルは2月末の日付のセルになっています。
Sheet2に戻り、C3セルをコピーしてほかのセルにペーストします。
12月の値を確認します。Sheet1の 12/31 のセルの値が参照できていることが確認できます。
数式の解説
OFFSET関数については
こちらの記事を参照して下さい。
OFFSET関数では、Sheet1のB1セルを基点にして、月末のセルの位置を計算してオフセットで参照位置を決定しています。
=OFFSET(Sheet1!$B$1,EOMONTH(B2,0)-EOMONTH($B$2,0)+31,0)
オフセットの数値は下記の数式になります。
Sheet2の表の左側の日付の値をEOMONTH関数を利用して数値にします。基準となる値のB2セルの日付の値を引いて基準日からの日数が求められます。
表の参照位置の調整として31を加算しています。Sheet1の1月31日のセルが32行目のため、31の数値になっています。
EOMONTH(B2,0)-EOMONTH($B$2,0)+31
2009年のみを作成しましたが、同じ数式をコピーペーストすれば、さらにに先の月の月末のセルも参照できます。
著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。
最終更新日: 2024-01-24
作成日: 2020-04-03