AppSheetやってみた#4〜ビューの表示条件をいろいろやってみる
今回はAppSheetのビューの操作についてチョット書いてみます。内容的にはRPACommunityで2023年12月9日に行われた「初心者向け|GoogleのAppSheetを使ってアプリ作りに挑戦【イチから解説】」からのフィードバックです。
今回はビューの表示条件などについて整理してみようと思います
ビューのデータを絞り込む
ビューは入力されたデータを可視化するための機能で、AppSheetとしてもとても重要な機能に位置づけられています。たくさんのデータが見られるのは良いのですが、古くなったデータ・・・・たとえばタスク管理における完了してしまったタスクのデータとか、家計簿における先々月の支出情報を見てもあまりメリットはありません
むしろ見るべきデータを探すのに時間がかかってしまい、不便なことこの上が無いといったほうがいいでしょう。
ですからビューに表示するデータを絞り込む事が必要になります。
絞り込みの代表的な方法としては2つの方法が挙げられます。
・ステータスを抽出条件にして未完了の情報に絞り込む
・日時などのデータで「今月」などに絞り込む
これをまずはやってみたいと思います。
使うのは「イベント参加情報」です。
参加済になった情報や参加日が過ぎ去った、もしくはだいぶん先の情報は見る必要がありません。
ステータスを条件にして絞り込む
まずは簡単なステータスで絞り込む方法です。
今回の情報だとステータスとして「予定」と「申込済」のみに(言い換えれば「参加済」以外)絞り込めば良いのです。
絞り込みの方法は
・スライスを作成
・作ったスライスをビューに当てはめる
AppSheetはデーターソース中心に作られているためか、絞り込みはビューではなくデータ側で行います。
この絞り込みを「スライス」と名付けられています。
スライスを作成
スライスはテーブルの下に設定します。
テーブルの横にある「+(Add a new slice filter data)」をクリックします。
Add a new slice の作成画面が出ます。下にテンプレートが選べるようになっていますがとりあえず無視して下の「Create a new slice for」をクリックします。
するとスライスの設定画面になるので必要な項目を入力します。
Slice Name:スライスの名前を選びます
Source Table:元のテーブルを指定します(そのままでいいです)
そして「Row filter condition」の項目をクリックします。
ここでもテンプレートが表示されますが一番下の「Create a custom expression」をクリックします。
Expression Assistant(式のアシスタント)という画面が表示されます。
絞り込みする式を登録する画面です。
下にサンプルの式がいくつも表示されます。探すと・・・・
{value_1} <> {value_2}Yes/No[ステータス] <> "text value"
という式が表示されているので、これを元に式を作りますので右の「insert」をクリックします。
テンプレートの式が表示されます。
"text value"のところを具体的なテキストに入れ替えます。
今回は"参加済"とするとステータスが参加済以外のレコードに絞り込まれます。
枠の下で式が正しいかどうかを判定します。緑のアイコンであればOKです。
問題なければ下の「Save」をクリックします。
元のスライスの編集画面になるので右上の「Preview data」をクリックします。この条件で抽出されるデータが表示されます。
ちゃんと「参加済」が除外されていて絞り込まれていることが確認できます。
作ったスライスをビューに当てはめる
次にビューに作ったスライスを当てはめます。
「View」の「Views」を選択してビューを選択します。(新規で作ってもかまいません)
「for this data」の欄で作ったスライスを選択します。
右上の「Save」をクリックすると右のプレビューも変化します。
プレビューをタブレットに切り替えてもちゃんと絞り込まれていることがわかります。
日時で「今月」に絞り込む
次は関数を使った絞り込みを行います。データには「今月」という項目が存在しないため判定するために関数EOMONTHを使用します。
EOMONTHは本来は「その月の最終日を割り出す関数」です。
これを応用してその日付が今月かどうかを割り出します。
(ちなみに0はその日のXXか月前ということでその月ということです)
①EOMONTH(Today, 0)=今月の最終日
②EOMONTH(参加日, 0)=参加日の月の最終日
つまりは①=②が成立するならば参加日が今月のレコードということです。
ですから式が
EOMONTH([参加日], 0) = EOMONTH(TODAY(), 0)
これで絞り込むことになります
この式をスライスに登録します。
Preview dataで確認すると参加済、未参加にかかわらず、ちゃんと今月のイベントだけに絞り込まれています。
このスライスをビューに組み込んで、最後に「Save」したら完成です。
アプリ画面も確認しました。
ちゃんと出来ています。
まとめ
ビューで絞り込みをするための方法はまとめるとこんな感じです。
・データ側の設定である「スライス」という機能を使います。
・スライスは式により絞り込みます
・関数が使えます
・スライスをビューからデータテーブルとして指定します。
考え方はIT的にはデータベースの仮想表みたいなものですね。
ちなみに関数はだいたい他のツールと同じようなものがあるようですが、調べるには下記のツールが便利そうです。
アプリを作るのを支援するアプリです。