はじめに
hkob の雑記録の第102回目は、取り込みのための CSV ファイルを Excel で作成する方法を紹介します。また、99 で解説した「CSV をインポート」がなくなってしまったので、元々存在していた「CSV取り込み」について解説します。
「CSVをインポート」の削除
先日ビューに「CSV をインポート」という新機能を見つけました。しかし、今日座談会で説明しようと思ったら、機能がなくなっていました。

いろいろ漁っていたら、データベースのフルページを表示したら、「CSV取り込み」という機能が存在していました。ただ、99 で説明した「CSV をインポート」とは実装が別のようで、こちらは ISO8601 の基本形式のものは取り込めませんでした。もしかしたら、あったらいいかもと気づいたインターンの学生などが実装したが、すでにこちらにあるので急遽削除したというものかもしれません。

これだけで終わると悲しいので、座談会ではこの CSV を作成する Excel シートをリアルタイムに作ってみました。

テーブルを使っているので、CSV の列見出しはテーブルの外 (G1) にはみ出しています。G1 の数式は以下のようになっています。

テーブルを使っているので、範囲の指定がわかりやすいですね。名前から status までの見出しを取り出して、TEXTJOIN しています。
=TEXTJOIN(",", TRUE, テーブル1[[#見出し],[名前]:[status]])
データ自体は以下のようになっています。

日付の部分だけ ISO8601 の拡張形式になるように成形しています。また、Excel では TRUE, FALSE が大文字になってしまうので、小文字に変換しています。
=LET( d, [@日付], cond, INT(d) = d, format, IF(cond, "", "THH:mm:ss"), add_str, IF(cond, "", "+09:00"), TEXTJOIN(",", FALSE, [@名前], TEXT([@日付], "yyyy-MM-dd"&format) & add_str, [@親アイテム], IF([@check], "true", "false"), [@user], [@status]) )
これで G 列をコピーして「列1」の行を削除すれば CSV の出来上がりです。
名前,日付,親アイテム,check,user,status A-5,2025-04-23,A,true,Hiroyuki KOBAYASHI,進行中 A-6,2025-04-30T12:30:00+09:00,A,false,,完了 B-5,2025-05-31,B,true,,未着手 B-6,2025-06-13T10:00:00+09:00,B,false,,進行中
おわりに
ics の記事同様 Excel だと連続データが作りやすいのでタスクの一括登録なども便利だと思います。CSV だと日付範囲が設定できないのが面倒ですね。締切系のものだと使いやすいかもしれません。実際の動作は Notion 座談会で説明しているので、是非みてください。