AppSheetはGoogleが提供しているノーコードツールでスプレッドシートとの親和性に優れています。無料で始められるのも魅力です。参考書が少ないのでネットを検索していろいろ試していますが、初心者の私にはまだまだ簡単なことがよく分かりません。
この記事では解決に時間がかかったものの中から、初心者の参考になりそうなものをいくつか紹介したいと思っています。
今回は日付の表示形式についてです。
なおデータはNHKのHPから都道府県別新型コロナ感染者数をスプレッドシートに保存して使用しました。
1.今回の目標
スマホの画面に表示される日付の表示形式を yyyy/mm/dd (ddd) にします。日付の後に曜日を漢字で表記する形式です。曜日を別の列に表示する方法もありますが、今回はあえて1列で表示します。
2.表示形式は固定されている?
ここからはAppSheetの開発画面で新規アプリが作成されているものとします。日付の表示形式はどこで変更したらよいのでしょうか?
Column設定ダイアログのFOMULA欄に入力しても残念ながら反映されません。
他にそれらしい入力欄はありません。まさかと思いながら元のスプレッドシートの表示形式を変更してもダメです。私の結論は「AppSheetでは日付列の表示形式は yyyy/mm/dd に固定されている」です。
3.表示形式を設定するには仮想列を使う
結局 "yyyy/mm/dd" 以外に表示形式を設定するには仮想列を使うしか方法はありませんでした。仮想列を追加するにはカラム定義ダイアログの右上の [Add Virtual Column] をクリックします。
仮想列の追加ダイアログでColumn nameとApp formulaを入力します。
Column name欄は
_日付 '任意ですが分かりやすく実際の名前に "_" を先頭に付加
App formula欄は
TEXT([日付],"yyyy/mm/dd (ddd)")
と入力します。
表示を仮想列に変更すると設定した表示形式で日付が表示されます(ただし曜日は英語表記となります)。
4.曜日を日本語表記にする方法
曜日を英語(Sun,Mon,・・・)から日本語(日,月,・・・)に変更するにはちょっと工夫が必要です。
App formula欄を
CONCATENATE(TEXT([日付],"YYYY/MM/DD ("),MID("日月火水木金土",WEEKDAY([日付]),1),")")
と変更します。
・CONCATENATE:文字列を結合する関数
・TEXT:数値や日付を表示形式の文字列に変換する関数
・MID:文字列の中から部分文字列を取り出す関数
・WEEKDAY:日付の曜日を取り出す関数(日曜=1,月曜=2,・・・,土曜=7)
関数の詳しい解説は省略しますが、以下の結果が得られます。
完成です。
5.まとめ
表示形式を設定するのにこんなに時間がかかるとは思いませんでした。他に簡単な方法があれば、ぜひ教えてください。
最後にもう一つ、Googleのスプレッドシートの表示形式を変更するのにも驚きが・・・。
「カスタムの日付と時刻の形式」ダイアログを使うとき、[年][月][日]の枠にとらわれすぎて区切り部分については「ここはクリックできないだろう」と思い込んでいました。ところが何かの拍子にクリックしたらなんとビームカーソルが表示され編集可能になったではありませんか!!おかげで漢字でもスラッシュでも区切り文字を自由自在に変更できることが分かりました(笑)。
いい勉強になりました。