[AppSheet] 日付形式のカラムをCONCATENATEする際のフォーマットをYYYY/MM/DDとしたい

2021.09.26

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、CX事業本部 IoT事業部の若槻です。

AppSheetは、スプレッドシートやデータベースなどをデータソースとしたアプリを簡単に作成できるノーコード開発プラットフォームです。

今回は、AppSheetで日付形式のカラムをCONCATENATEする際のフォーマットをYYYY/MM/DDとする方法を確認してみました。

1. YYYY/MM/DD HH/mm/ssとしたい場合

こんな感じのデータソースがあります。YYYY/MM/DDという日付形式のカラムを持っています。

このデータソースをもとにAppSheetアプリを立ち上げました。

一覧画面。

詳細画面。

ここで日付列と時刻列を使用してYYYY/MM/DD HH/mm/ssのようなフォーマットのカスタム列をアプリ上で表示させたいです。

そこでアプリ側で日時という仮想カラムを設けて、CONCATENATEを使用して日付列と時刻列を文字列結合してみます。

FOMULAはCONCATENATE([日付]," ",[時刻])とします。

日時列を設けられました。しかしアプリ上での表示は日付部分がMM/DD/YYYYのフォーマットとなってしまいます。

解決

列のTYPEを既定のTextでなくDateTimeとする必要がありました。

日時列のTYPEをDateTimeとします。

するとフォーマットをYYYY/MM/DD HH/mm/ssとさせられました。

2. YYYY/MM/DDTHH/mm/ss+09:00としたい場合

次に、同じく日付列を使用して更に別のフォーマット、例えばYYYY/MM/DDTHH/mm/ss+09:00のような値を表示したいとします。

FOMULAは再度CONCATENATEを使用してCONCATENATE([日付],"T",[時刻],"+09:00")とし、TYPEはDateTimeとします。

すると日付(JST)の値がInvalid dateとなりました。YYYY/MM/DDTHH/mm/ss+09:00のような値はDateTimeTYPEとできないようです。

TEXTTYPEとすると表示はされますが、また日付部分のフォーマットがMM/DD/YYYYとなってしまいます。

解決

FOMULAで日付列に対してTEXT()でフォーマットを指定する必要がありました。

FOMULAはCONCATENATE(TEXT([日付],"YYYY/MM/DD"),"T",[時刻],"+09:00")、TYPEはTEXTとします。

日付(JST)のフォーマットをYYYY/MM/DDTHH/mm/ss+09:00とすることができました。

以上