やりたいこと
下記のようなスプレッドシートのデータがあります。
日付 | 曜日 | やること |
---|---|---|
2018/04/01 | 日 | 市場へ出かける |
2018/04/02 | 月 | お風呂をたく |
2018/04/03 | 火 | お風呂にはいる |
2018/04/04 | 水 | 友達がくる |
2018/04/05 | 木 | 送っていく |
※スプレッドシート自体、6行目までしか存在しないものとします。
このとき、スプレッドシートの末尾に行追加をしたら、自動で日付(と曜日)が入るようにしたい。
日付 | 曜日 | やること |
---|---|---|
2018/04/01 | 日 | 市場へ出かける |
2018/04/02 | 月 | お風呂をたく |
2018/04/03 | 火 | お風呂にはいる |
2018/04/04 | 水 | 友達がくる |
2018/04/05 | 木 | 送っていく |
2018/04/06 | 金 | |
2018/04/07 | 土 |
完成した数式(日付部分)
=ArrayFormula(date(2018,3,30)+row(A2:A))
説明
経緯
行を追加した時に自動で値が入るという挙動は、ARRAYFORMULAで実現するのが良いかなと思ったので、ARRAYFORMULAを使う方法から逆算して考えました。
いったんARRAYFORMULAを外して考える。
=date(2018,3,30)+row(A2)
2018年3月30日 date(2018,3,30)
にA2セルの行番号row(A2)
(=2)を足すので、「2018/04/01」になります。
date()
に入れる日付は、数式を入力する行番号と、最初に表示したい日にちから適宜設定してください。
ARRAYFORMULAで列に展開
=ArrayFormula(date(2018,3,30)+row(A2:A))
A2列以降のA列row(A2:A)
に対して、数式を適用します。
適用イメージ
- A3セル=2018年3月30日+3(行目)=2018/04/02
- A4セル=2018年3月30日+4(行目)=2018/04/03
- A5セル=2018年3月30日+5(行目)=2018/04/04
(以降繰り返し)
補足
曜日部分は下記の通りです。
=ArrayFormula(text(WEEKDAY(A2:A,1),"ddd"))