当サイトではアフィリエイトプログラムを利用して商品を紹介しています。掲載リンクからご購入いただいた場合、当サイトに報酬が発生することがあります。

Notionのステータスから選択肢を消すと、完了した行が未着手に戻ります

To do・In progress・Done の3列に分かれたホワイトボードと付箋。Notionのステータスの選択肢を消したときの挙動を解説する記事のアイキャッチ

Notionのステータスから、使わなくなった選択肢を消したことはあるでしょうか。

「保留」を作ったけど結局使わなかった。「差し戻し」を「要修正」に統一したい。運用していれば、整理したくなる場面が出てきます。

このとき、その選択肢が入っていた行がどうなるかを確かめました。予想と違いました。しかも、セレクトとステータスで結果が逆になります。

消した選択肢の行は、空にならない

結論から書きます。

「完了」が「未着手」になりました

ステータスの列に「未着手」「進行中」「完了」の3つを用意して、それぞれの値が入った行を3つ作りました。そこから「完了」という選択肢だけを削除しました。

行 消す前 消したあと
行1 未着手 未着手
行2 進行中 進行中
行3 完了 未着手

空欄になるだろう、と思っていました。実際には、先頭の選択肢に書き換わりました。

空欄より、こちらのほうが危ない

なぜ危ないのか。空欄なら、見れば分かるからです。値が入っていない行があれば、何かあったと気づきます。

別の値に化けていると、気づきません。終わっていた案件が、未着手として一覧に並びます。集計すれば、完了件数が減って未着手件数が増えます。

しかも、その数字はもっともらしく見えます。件数の合計は変わっていないので、検算しても引っかかりません。

誰の操作だったかも残りません

もう1つ厄介なのが、この書き換えは列の設定を変えた副作用として起きることです。行を編集したわけではありません。

その行の更新履歴を見ても、誰かが値を変えた記録としては残りにくい。あとから追いかけるのが難しくなります。

セレクトとステータスで、結果が逆になる

同じことをセレクトの列でも試しました。

セレクトは、きちんと空になる

セレクトの列に「A」「B」「C」を用意して、それぞれの値が入った行を3つ作り、「C」だけを削除しました。

列の種類 使われている選択肢を消すと
セレクト その行は空欄になる
ステータス その行は先頭の選択肢に変わる

同じ操作なのに、結果が逆です。

理由は、たぶん「空を許すかどうか」

ステータスは、必ずどれか1つが選ばれている列です。新しい行を作ると、何も指定しなくても初期値が入ります。空という状態を持たない作りになっています。

だから、値の行き場がなくなったときに空にできない。どこかに寄せるしかなくて、先頭に寄せている。そう考えると筋は通ります。

セレクトは空を許すので、素直に空欄になります。

使い分けに跳ね返ります

以前、外からデータを入れると選択肢が勝手に増えるという話を書きました。そこでは、増えてほしくないものはステータスで持つほうが安全だと書いています。

それは今も変わりません。ただ、ステータスは選択肢を消すときの危険が高いという面も持っています。入れるときは厳しく、消すときは静かに書き換える。そういう性格だと理解しておくのがよさそうです。

図にすると、こうなります

使われている選択肢を消したとき、その行はどうなるか 「完了」の行がある そこで「完了」を消す セレクトの列 その行は空欄になる ステータスの列 先頭の選択肢に変わる 空欄なので 見れば気づける 完了が未着手に化ける 気づけない 件数の合計は変わらないので、検算しても引っかからない 消す前に、その選択肢を使っている行を別の値に移しておく。
同じ操作を両方の列で行い、行の値を記録した結果です。

選択肢を送ると、送らなかったものが消える

外から列の設定を書き換えるときに、もう1つ危ない挙動がありました。

一部だけ送ったら、残りが消えました

「A」「B」「C」の3つがあるセレクトの列に、「A」だけを指定して送りました。Aの設定を変えるつもりです。

結果、選択肢は「A」だけになりました。BとCが消えています。

つまり、選択肢の指定は「足す」ではなく「丸ごと置き換える」ということです。送らなかったものは、消したことになります。

これは事故になります

選択肢を1つ足したいとき、その1つだけを送りたくなります。素直な発想です。

それをやると、既存の選択肢が全部消えます。そして前の章のとおり、使われていた選択肢が消えれば、行の値も巻き込まれます。

セレクトなら空欄、ステータスなら先頭の値に。データベース全体で起きます。

正しいやり方

先に現在の選択肢を全部取得して、そこに新しいものを足した完全な一覧を送ります。既存のものは、識別子も一緒に送ると確実です。

手間は1ステップ増えるだけです。取得してから送る。これを飛ばさないでください。

グループは指定しても効かない

ステータスには、選択肢をまとめるグループがあります。未着手系、進行中系、完了系のような分類です。

新しい選択肢は、全部「未着手」系に入る

選択肢を足すと、グループを指定しなければ「To-do」に入りました。「保留」も「差し戻し」も、まとめてそこです。

完了系に入れたい選択肢があっても、自動では振り分けられません。

グループの指定は、受け取られて無視されます

では指定すればいいのかというと、ここが厄介でした。

グループの中身を指定して送ると、成功が返ってきます。それなのに、中身は変わっていません。試しに存在しないグループ名を送っても、同じく成功が返ってきました。

エラーにならないので、動いたと思ってしまいます。読み返して初めて、何も変わっていないことに気づきます。

効いた指定のしかた

1つだけ効く形がありました。グループの側から指定するのではなく、選択肢の側に「どのグループか」を書いて送ると、その選択肢が移動します。

ただしこの形は、選択肢の一覧を送ることになります。前の章のとおり、送らなかった選択肢は消えます。グループを直すときこそ、完全な一覧を送ってください。

「ステータスは外から作れない」はもう古い

最後に、情報の更新をひとつ。

作れました

ステータスの列は外から作れない、という説明をよく見かけます。今回試したところ、作れました。選択肢を後から追加することもできています。

作ると、「Not started」「In progress」「Done」の3つの選択肢と、それに対応する3つのグループが自動で付いてきます。

日本語の名前にしたいときは、作り直す

自動で付く選択肢は英語です。日本語にしたい場合は、選択肢の一覧を丸ごと日本語で送り直すことになります。

ここでも全置換なので、まだ行が入っていない段階でやるのが安全です。運用を始める前に整えておくと、あとが楽になります。

事故を起こさない手順

ここまでを踏まえた手順をまとめます。画面から操作する場合にも当てはまります。

1. 消す前に、使っている行を移す

いちばん大事なのがこれです。選択肢を消す前に、その選択肢が入っている行を絞り込んで、別の値に付け替えます。

付け替えてから消せば、巻き込まれる行がゼロになります。行が1つも使っていない選択肢なら、そのまま消して問題ありません。

絞り込んで件数がゼロであることを確認してから消す。この順番を守ってください。

2. 外から書き換えるなら、取得してから送る

選択肢の指定は全置換です。足したいときも、現在の一覧を取得して、そこに足した完全な形で送ります。

一部だけ送るのは、残りを消すのと同じ意味になります。

3. 列の設定を変える前に、行を控える

大きなデータベースで選択肢を整理するときは、作業の前に行の状態を書き出しておきます。

選択肢の書き換えは元に戻せますが、巻き込まれて書き換わった行の値は、自動では戻りません。控えがあれば、比べて直せます。

4. ステータスは、最初に整える

運用を始めてからステータスの選択肢を直すのは、ここまでのとおりリスクがあります。

使う種類と、その並び順を先に決めておく。並び順が大事なのは、何かあったときに寄せられる先が「先頭」だからです。先頭を「未着手」にしておけば、化けても不自然になりにくいと思います。

よくある質問(FAQ)

選択肢を消したあと、行の値を元に戻せますか。

選択肢を作り直しても、行の値は自動では戻りませんでした。書き換わった行を1つずつ直すことになります。消す前に、その選択肢を使っている行を控えておくと復旧が楽です。

どの選択肢に寄せられるかは決まっていますか。

今回の検証では、先頭の選択肢に寄りました。3つ目を消したときも先頭に戻っています。ただし並び順を変えた場合まで試せていないので、先頭が必ずそうなるとまでは言い切れません。

セレクトなら安全ということですか。

空欄になるので気づきやすい、という意味では安全です。ただし値が失われることに変わりはありません。どちらにしても、消す前に行を付け替えるのが確実です。

グループを分けたいのですが、うまくいきません。

グループの側から指定すると、成功が返るのに反映されませんでした。選択肢の側にどのグループかを書いて送ると移動します。その際は選択肢の完全な一覧を送ってください。一部だけ送ると残りが消えます。

ステータスの選択肢を日本語にしたいです。

作った直後は英語の選択肢が3つ入っています。日本語にする場合は、選択肢の一覧を丸ごと日本語で送り直すことになります。行が入る前にやっておくのが安全です。

画面から消す場合も同じことが起きますか。

今回確かめたのは外から操作した場合です。ただ、値の行き場がなくなるという状況は同じなので、消す前に行を付け替えておく手順はどちらでも有効だと思います。

消す前に、絞り込んで件数を見てください

その選択肢を使っている行が何件あるかを先に確かめて、別の値に付け替えてから消す。件数がゼロになっていれば、巻き込まれる行はありません。順番を変えるだけで防げます。

Notionを使ってみる

上部へスクロール