4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Google Spreadsheetで行が追加になった場合に自動で日付を入力する数式

Posted at

やりたいこと

下記のようなスプレッドシートのデータがあります。

日付 曜日 やること
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"))
4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?