よくあるかはわからないが、タスクリストをスプレッドシートに落とし込んで日毎にまとめてフォーマットする、みたいなやつ
すぐ忘れるだろうなと思ったので残しておく
画像のようにB列の日付ごとにD列の情報をグループ化してI列に表示している
いきなり式だが次のようにする
=JOIN(CHAR(10),transpose(QUERY($A$2:$D,"SELECT D WHERE B=DATE '"&TEXT(G2,"YYYY-MM-DD")&"'")))
日付のユニーク
G2のセルに=unique(B2:B)
と入力しB列のユニークを取るようにしている
複数行展開される
QUERY
画像のように対象行の日付での検索を行っている
外部のセルを参照するだけであればクエリの中でB="&G2&"
のように一度クオートでクエリ式を区切って対象セルを&
で挟んであげれば良い
日付で検索する場合は上記のように外部のセルを指定するだけではヒットしない
DATE
を含めるTEXT
でフォーマット指定- 年月日は
-
区切り'
で囲む
必要がある
参考: (Gスプレッドシート)QUERY関数で日付を抽出条件に指定する - いきなり答える備忘録
TRANSPOSE
配列またはセルの範囲の行と列を入れ変える
QUERYの結果は複数行なのでそれを複数列に展開する
参考: TRANSPOSE - ドキュメント エディタ ヘルプ
JOIN
複数の値をつなげる、引数として配列を受け取れるようなのでQUERY+TRANSPOSEで複数列にまたがったデータをつなげる
今回はD列をSELECTで抽出してつなげている
区切り文字を指定できるので改行CHAR(10)
を指定する
参考: (Gスプレッドシート)改行をはさんで文字列を結合する - いきなり答える備忘録
おわり
Slackのワークフローとスプレッドシートを使ってリマインダーの内容をカスタマイズしたいなと思ってやってみた
とりあえずそれっぽい内容の整形までは行えた