いきなり答える備忘録

Google Workspace・Microsoft 365・LibreOfficeなどに関するメモ

(Gスプレッドシート)書式なしテキストとは

 Googleスプレッドシートの表示形式メニューに現れる「書式なしテキスト」の効果についてです。

  • 値の入力前に「書式なしテキスト」を適用すると、キー入力した内容がそのまま文字列として記録されます。
  • 値の入力後に「書式なしテキスト」を適用すると、その直前のセルの見た目(表示形式の効果を含む)がそのまま文字列になります
  • セルが保持していた情報が失われ、表示形式をどう変えても以前の値に戻せなくなる(「元に戻す」が必要)場合があります。

手順

「書式なしテキスト」の効果

 まずは値の入力前から「書式なしテキスト」を設定しておく例をみてみます。
 ここではB3セルを選択した状態で、メニューから「表示形式」→「数字」→「書式なしテキスト」と選択します。


 これにより、セルにキー入力した内容がそのまま文字列となります。
 画像のように、先頭に0がつく数字を入力したい場合などに使えます(自動のままだと先頭の0が消えて数値として記録されます)。


 ここからは値の入力後に「書式なしテキスト」を設定する例をみてみます。
 B3セルにyyyy/m/d形式の日付が入力されています。
 さらにC3セルに「=ISDATE(B3)」、D3セルに「=ISTEXT(B3)」と記しています。B3セルの値は日付ではありますが文字列とはみなされないので、結果はそれぞれTRUE、FALSEとなります。


 ここでB3セルを選択し、メニューから「表示形式」→「数字」→「書式なしテキスト」と選択します。


 すると「2020/4/15」という文字列となりました。これは日付とも文字列ともみなされる値なのでC3、D3の値はともにTRUEとなりました。
 このように適用した表示形式によって値の型が変わるのがGoogleスプレッドシートの特徴です。


 ちょっとした利用例です。
 日付と文字列を「&」で連結すると、日付部分が数字になって連結されてしまいます。
 これは日付の実体がシリアル値(数値)であるためです。
 そこでB3セルに「書式なしテキスト」を適用すると……


 B3セルの値は見たままの文字列となるので、その見た目どおりに連結することができました。

 ただしこの結果はTO_TEXT関数を使って得ることもできます(下記にて紹介しています)。


 次の例をみてみます。一旦B3セルの表示形式を元のyyyy/m/dに戻したうえで、今度はカスタム数値形式を適用し、フォーマット文字列を「dddd」とします。
 これは曜日を表す文字列ですので……


 セルの表示は「金曜日」となりました。
 ただし、数式バーを見ればわかるようにセルが保持している値はあくまで「2022/04/15」という日付であり、C3、D3セルの値からもその実体が変わっていないことがわかります。
 しかしここでB3セルに「書式なしテキスト」を適用すると……


 ただの「金曜日」という文字列になります。
 最初の例では「2020/4/15」という日付(シリアル値)を「2020/4/15」という文字列に変えただけなので、年・月・日の情報は失われていませんでした。そこから再度日付に戻すことも可能です。
 しかしこの「金曜日」は本当にただの「金曜日」という文字列で、年・月・日の情報が失われています。ここから表示形式をどう変えても「2020/4/15」という日付に戻すことはできず、「元に戻す」を使うしかありません。


 以上でわかったことをまとめてみます。

  • 「書式なしテキスト」を適用すると、その直前に適用されていた表示形式(見た目)そのままの文字列にすることができる。
  • セル内に保持されていた情報が失われる場合がある。

 後者についての別の例ですが、例えば数値のフォーマット文字列を「0」にすると、数値の小数点以下を表示させない(四捨五入して表示される)ことができます。そこに「書式なしテキスト」を適用すると見た目はそのまま文字列になりますが、同時に値の小数部分が失われます。
 表示形式がセルの値(データ)を変化させることはない、というのが表計算ソフトの基本的なあり方というか挙動ですが、「書式なしテキスト」に関しては簡単に起こり得るので使い方には注意が必要です。

TO_TEXT関数について

 TO_TEXT関数により、参照先のセルの値ではなく見た目をそのまま文字列にすることができます
 つまり「書式なしテキスト」を適用したのと同じ結果を関数により得ることができます。
 画像ではD3セルに「=TO_TEXT(B3)&C3」と入力することにより、上記例の6番目の画像と同じ結果が得られています。
 元のセルに手を加える必要がないためデータの損失が起こらず、安全です。