
目次
業務の型を作って運用していると、あとから列の種類を変えたくなります。文字で入れていたものを数値にしたい、自由入力だったものを選択式にしたい。
以前、型を変えても値は消えていないという記事を書きました。戻せば元どおりになる、という話です。
今回、そこに例外があることが分かりました。セレクトだけは戻りません。前の記事の補足として書きます。
たいていの型は、戻せば戻る
まず、前の記事の結論を確かめ直しました。
5つの列を、別の型に変えて戻しました
数値、日付、チェックボックス、文字、セレクト。それぞれに値を入れた行を1つ作って、別の型に変えてから元に戻します。
| 列 | 変えた先 | 戻したあと |
|---|---|---|
| 数値(1500) | 文字 | 1500に戻った |
| 日付(2026-03-01) | 文字 | 日付に戻った |
| チェック(オン) | 数値 | オンに戻った |
| 文字(長い文章) | 数値 | 全文が戻った |
| セレクト(A) | 複数選択 | 空のまま |
4つは戻りました。チェックボックスは数値に変えた時点で空になりましたが、戻すとオンの状態が復活しています。
見えなくなっても、消えてはいません
途中で空に見えても、値は裏に残っています。だから戻せば復活します。型を変えること自体は、それほど怖くありません。
怖いのは、空になったのを見て「消えた」と思い、慌てて手で入力し直すことです。戻せば済むものを、上書きしてしまいます。
セレクトだけ、戻りませんでした
表のいちばん下が、今回の発見です。
複数選択に変えて戻したら、空のままでした
「A」が入ったセレクトの列を、複数選択に変えました。この2つは似た型なので、値はそのまま移ると思っていました。
その場で空になりました。そして元のセレクトに戻しても、空のままです。
念のため、まっさらな列を作り直して同じことを試しました。結果は同じでした。再現します。
似ている型どうしなのに
数値を文字にしても戻る。日付を文字にしても戻る。それなのに、セレクトから複数選択という、いちばん近そうな変換で値が失われます。
理屈は分かりませんが、結果は明確でした。セレクトの列は、他の型に変えた時点で値が戻らなくなります。
選択肢の一覧ごと消えます
失われるのは、行の値だけではありませんでした。
列の設定も空になります
セレクトの列には、選べる選択肢の一覧が設定されています。「A」と「B」を登録していました。
複数選択に変えたあと、この一覧を確認しました。空でした。戻しても空のままです。
| 操作 | 行の値 | 選択肢の一覧 |
|---|---|---|
| 最初の状態 | A | A、B |
| 複数選択に変えた | 空 | 空 |
| セレクトに戻した | 空 | 空 |
これが痛いところです
行の値が消えるだけなら、まだ入れ直せます。選択肢の一覧が消えると、何を選べる列だったのかが分からなくなります。
30種類の選択肢を時間をかけて整理した列なら、その整理が丸ごと消えます。行が何百件あれば、正しい値を思い出すのも困難です。
しかも、変えた瞬間に起きます。確認も警告もありません。
図にすると、こういう分かれ方です
文字に変えるなら、値は残る
セレクトの中でも、変え先によって違いがありました。
文字にした場合は、中身が読めます
「丙」が入ったセレクトの列を、文字の列に変えました。すると「丙」という文字がそのまま入っています。
複数選択に変えたときは即座に空になったのに、文字にすると残る。同じセレクトからの変換なのに、行き先で結果が変わります。
ただし、戻しても復活しません
文字のまま残っていた値を、セレクトに戻してみました。空になりました。選択肢の一覧も空です。
つまり、文字にした時点で「読める形では残っているが、セレクトとしては失われている」状態になります。
復旧の手がかりにはなります
とはいえ、何が入っていたかが読めるのは大きいです。文字として残っている値を見ながら、選択肢を作り直して入れ直せます。
どうしてもセレクトの型を変える必要があるなら、いったん文字に変えて、内容を確認してから次に進む。これだけで、何を選んでいたかが分からなくなる事態は避けられます。
文字を数値に変えると、先頭の数字だけ残る
もう1つ、面白い挙動がありました。
「2024-05-01 と 123 を含むメモ」を数値にしました
文章の入った文字の列を、数値の列に変えます。数字が混ざった文章です。
結果は2024でした。先頭に出てくる数字だけが拾われています。日付の「05-01」も、後ろの「123」も無視されました。
意味のない数字が入ります
2024という数字に、元の文章としての意味はありません。たまたま先頭にあった数字です。
これが集計の対象になっていると、意味のない数字が合計や平均に混ざります。しかも値が入っている以上、件数にも数えられます。
文字に戻せば、全文が復活します
救いはここです。数値にしたあと文字に戻すと、元の文章がそのまま返ってきました。数字だけが残るのは表示上のことで、中身は保たれています。
だから、間違えて数値に変えてしまっても慌てなくて大丈夫です。戻せば済みます。
型を直すときの手順
ここまでを踏まえた手順です。
1. セレクトを変えるときだけ、先に控える
他の型なら戻せるので、そこまで身構える必要はありません。セレクトだけは別です。
変える前に、選択肢の一覧と、どの行に何が入っているかを書き出しておきます。行が少なければ画面を写しておくだけでも足ります。
この一手間を惜しむと、あとで何を選べる列だったのかが分からなくなります。
2. セレクトから変えるなら、まず文字に
行き先が決まっていても、いったん文字の列を経由します。値が読める形で残るからです。
内容を確認して、書き出してから次の型に進む。遠回りに見えて、いちばん安全です。
3. 空に見えても、手で入力し直さない
型を変えた直後に空になっていても、まず戻してみてください。多くの場合、復活します。
慌てて手入力すると、戻せたはずの値を上書きしてしまいます。順番を間違えなければ、失わずに済みます。
4. 変えたあと、集計を確認する
文字を数値に変えたような場合、意味のない数字が入ることがあります。その列を集計しているなら、数字が変わっているはずです。
型を変えたら、それを使っている集計も見にいく。変えた本人しか気づけない場所です。
5. 数式とロールアップは、別の話です
前の記事でも書きましたが、参照している列を消した場合は数式やロールアップが壊れます。名前を変えるだけなら自動で追従します。
型を変えることと、列を消すことは別に考えてください。型を変えるのは戻せる、消すのは戻せない。この線引きです。
よくある質問(FAQ)
セレクトの選択肢が消えてしまいました。戻せますか。
元のセレクトに戻しても、選択肢の一覧は空のままでした。作り直すことになります。もし文字の列を経由していれば、行に値が文字として残っているので、それを見ながら選択肢を作れます。
複数選択に変えるだけなら安全だと思っていました。
いちばん近い型に見えますが、値も選択肢も即座に空になりました。まっさらな列で試し直しても同じ結果です。近い型だから安全、とは考えないほうがよさそうです。
チェックボックスを数値に変えたら空になりました。
戻せば復活します。チェックが入っていた行は、チェックボックスに戻した時点でオンの状態が返ってきました。
文字を数値に変えたら、変な数字が入りました。
文章の先頭に出てくる数字が拾われます。文字に戻せば全文が復活するので、戻してから対応してください。その列を集計している場合は、数字が変わっていないか確認したほうがいいです。
型を変えると、数式は壊れますか。
参照している列の型を変えた場合は、値だけが空になり、式そのものは残ります。壊れるのは列を消したときです。前の記事で詳しく測りました。
行が数百件あるセレクトを、安全に変えたいです。
先に文字の列を新しく1つ作って、そこに値を書き写してから型を変えるのが確実です。元の列を直接変えるのではなく、控えを別の列に取っておく形になります。
セレクトを変える前に、一覧を控えてください
選択肢の一覧と、どの行に何が入っているか。この2つを書き出してから型を変える。他の型は戻せますが、セレクトだけは戻りません。変えた瞬間に、警告もなく消えます。