管理人がみんなに伝えたい!!と思った知識や学びを気ままに書いています(^^)

【永久保存版】汎用性の高いスライスの設定5選

【永久保存版】汎用性の高いスライスの設定5選

本記事はノーコードアプリ開発について全く知らなかった管理人が独学で勉強し、ここ大事!と感じた部分を記事にまとめています。

本ブログでは新UI画面で内容をまとめています。

新旧画面への切り替えは、下図を参考に該当アイコンをクリックしてください(^^)

新UI画面の説明

まずはじめに

本記事はこんな人におすすめ!!
  • 登録中のデータである条件を満たすデータのみを抽出したい
本記事を読んで出来るようになること
  • 自分で登録したデータのみ表示させる方法
  • 進捗管理アプリにおいて進捗段階別にデータを表示させる方法
  • 管理者上司に確認をお願いする案件だけ表示させる方法
  • 所属部署別にViewの表示を変える方法
  • データが登録された時期で区切ってViewに表示させる方法

今回の記事は、AppSheetの根幹をなす機能の一つ、「スライス」に焦点を当てて解説します。

スライスは、AppSheetでアプリ開発を行う上で、非常に頻繁に利用する機能です。データを特定の条件で絞り込んだり、表示をカスタマイズしたりするために使用します。

本記事では、誰にとっても汎用性が高く、すぐにでも使いやすいスライス条件を5つ厳選してご紹介します。

それでは、さっそく勉強していきましょう!


スライス機能とは?

まず、スライス機能について簡単に説明します。

スライスの説明

スライスとは、AppSheetのデータテーブルに登録されているデータを、任意の条件式で抽出する機能のことです。

これにより、元のデータ全体の中から、必要な情報だけを切り出して表示したり、特定の処理の対象にしたりすることができます。

スライスは、特定のViewでのみデータを絞り込みたい場合や、アクションの対象データを一時的に限定したい場合などに非常に便利です。

AppSheetには、スライスと似た機能としてSecurity Filter(セキュリティフィルター)があります。

セキュリティフィルターとスライスの関係

Security Filterは、アプリ全体でユーザーに見せるデータを恒久的に絞り込む機能であり、特にデータ数が数万件を超えてくるような大規模なアプリの場合に、パフォーマンスの向上やセキュリティの確保のために設定を検討すると良いと思います(^^)


汎用性のあるスライス設定

AppSheetには、「こんなカラム設定をしておくとアプリの汎用性が高くなる」という設定がいくつか存在します。

スライス条件に適しているもの

この記事では、その中でも特に「これだけは覚えておいたほうがいい」と私が考える、汎用性の高いスライス設定を5つご紹介します。

スライス設定の検証を行うために、今回は以下のテーブル構成を用いたダミーデータを使用します。

検証テーブルの説明

検証のために実際に用いたダミーデータは、このような内容になっています。

登録案件シート
アプリユーザーシート

使うデータは以上です。それでは早速、これらのデータを使ってスライス設定の検証に取り掛かってみましょう!


自分で入力したデータのみ表示させる

自分のデータのみ表示させるスライス

AppSheetアプリで、ログインしているユーザーが自分自身で入力したデータだけを表示させるのは、非常によく使われるスライス設定の一つです。

この設定を行う前に、AppSheetにデータを読み込んだら、まずはデータタイプの設定を行いましょう。

今回はスライス設定についての記事なので詳細な手順は割愛しますが、以下の設定を済ませておいてください。

  1. 「アプリユーザー」テーブルKey値をEmailLABEL名前に設定する。
  2. 「登録案件」テーブル申請者カラムをRefタイプにし、「アプリユーザー」テーブルと紐づける。
  3. 「登録案件」テーブル申請者カラムのInitial ValueUSEREMAIL()と入力する。

スライスViewの作成

次に、実際にスライス機能を使って、自分自身が入力したデータのみを表示するViewを作成する方法を説明します。

スライステーブルの作成

まず、データテーブルから特定の条件でデータを絞り込むための「スライス」を作成します。

設定は下図を参考にしてください(^^)

自分のデータのみ表示させるスライス条件
  1. Slice Name: 後で見て分かりやすいように、フィルター条件式が想像できるスライス名にすることをおすすめします。
  2. Source Table: 参照する元のテーブル(今回の例では「登録案件」テーブル)を選択します。
  3. Row filter condition: ここに [申請者] = USEREMAIL() と入力します

AppSheetはアプリを使用する際に、ログイン中のユーザーのメールアドレスを自動で取得します。このメールアドレスを自動で取得してくれるのがUSEREMAIL()関数です。

つまり、この式は「現在アプリを使っているユーザーのメールアドレスと、データの[申請者]カラムに登録されているメールアドレスが一致するか?」を判定し、TRUEのデータのみを抽出するフラグとなります。

スライスViewの作成

スライステーブルを作成したら、そのスライスを元にしたViewを作成します。

新規Viewの作成

新しいViewを作成する際、For this dataの項目に、先ほど作成したスライステーブルをセットする、と覚えておいてください。

これにより、このViewでは、ログインユーザーが入力したデータのみが表示されるようになります。


スライスViewの確認

最後に、今回作成したViewが意図どおりに動作するか確認してみましょう。

登録案件シート

上記のダミーデータでは、申請者がAさんのメールアドレスであるデータが2つ含まれています。

Viewを構成するテーブルを「登録案件」(全データ)と「自分の案件」(スライステーブル)で分けたときの見え方は、以下のようになります。

ダミーデータの3件が全て表示されています。

Aさんが入力したデータ(2件)のみ表示されています。

これで、[入力者] = USEREMAIL()という条件を満たすデータのみが表示されることが確認できました!

この設定は、運用中のアプリでも、後から新しいカラムを追加するだけで簡単に実装できます。

ユーザーごとに表示するデータを制御したい場合に非常に便利なので、ぜひ覚えておきましょう!


ステータス別で進捗を管理する

次に、データのステータス(進捗状況)に基づいて表示を絞り込むスライス設定を見ていきましょう。

これは、業務の進捗管理アプリと非常に相性が良い設定です。

ステータス別のスライスイメージ

先ほどと同じく、まずはカラムの設定を行います。

「登録案件」シートのステータスカラムのInitial Value"登録"と入力しておきましょう。

これにより、新しいデータが追加された際に、自動的に初期ステータスが「登録」となります。

カラムの編集権限を付与することでより高度なアプリも作成可能です

参考記事

ステータス別のスライステーブルを作成

ステータス別のスライスも、先ほどと同様に、[ステータス] = 〇〇の条件式でスライスViewを作成します。

フィルター条件式は以下の写真を参考にしてください。

スライス条件
ステータス 登録の条件式

[ステータス] = "登録"

ステータス 申請中の条件式

[ステータス] = "申請中"

ステータス 承認の条件式

[ステータス] = "承認"


スライスViewの作成

ステータス別のスライステーブルを作成したら、今度はそれらを活用するViewを作成します。

参照テーブルは登録のスライステーブル、Positionはrefを選択

登録View

参照テーブルは申請中のスライステーブル、Positionはrefを選択

申請中View

参照テーブルは承認のスライステーブル、Positionはrefを選択

承認View

今回のようなステータスの段階別でViewを作成する場合、Dashboard Viewが特におすすめです。

作成した3つのViewを、1つのViewにまとめるダッシュボードを作成してみましょう(^^)

ダッシュボードViewの説明
Dashboard Viewの作成
dashboard Viewの作成

この設定でViewを作成すると・・

完成したViewの確認

このように、ステータス別で登録されたデータを一覧化することが可能です。

この設定もAppSheetでは非常によく使う設定なので、ぜひ覚えておきましょう(^^)

ステータス別に登録されているデータ数をカウントするTIPSをまとめています

参考記事

管理者に承認を促したい案件だけ表示させる

アプリの管理者や特定の担当者に対して、承認が必要な案件だけを表示させる設定は、ワークフローを効率化するために非常に有効です。

管理者に閲覧権限を付与するスライス

管理者のみにViewを見せる方法

実装手順

まず、「登録案件」テーブルの[ステータス]"申請中"であるデータのみを抽出するスライスを作成します。

ステータス 申請中の条件式

スライス条件: [ステータス] = "申請中"

承認者View

次に、このスライスを元にしたViewを作成します。

そして、そのViewの設定にあるDisplayタブ内のShow ifに、「いつそのViewを見せるか?」という条件式を入力します。

Show ifの条件式

Show ifに以下の条件式を入力しましょう。

ANY(SELECT(アプリユーザー[管理者], [email] = USEREMAIL()))

この式は、まずSELECT()関数で「アプリユーザー」テーブルの中から、[email]カラムが現在ログインしているユーザーのメールアドレス(USEREMAIL())と一致する行の[管理者]カラムの値(TRUEまたはFALSE)を取得します。

ANY()関数はその結果を一意にするとここでは覚えておいてください。

つまり、この式は「現在ログインしているユーザーが、『アプリユーザー』テーブルで[管理者]カラムがTRUEに設定されているか?」を判定します。

結果として、管理者権限を持つユーザーのみが、この「申請中案件」のViewを見られるようになります。

ANY()関数とSELECT()関数はAppSheetにおいて習得必須レベルの関数です

参考記事

承認者Viewの確認

作成した承認者Viewが正しく機能するか確認してみましょう。

承認権限を持たないAさんがログインした場合は、Viewのタブは3つしか表示されません。

AさんのView

一方、承認権限を持つC上司がログインした場合は、新たに「承認者View」がタブに追加されて確認できます。

承認者View

このように、ANY(SELECT())関数は、ログインユーザーの属性に基づいてViewの表示を動的に制御できるため、さまざまなアプリで応用が効く汎用性の高い設定を実装できます。

この機会にぜひ覚えておきましょう!


ログインユーザーの所属部署別にView画面を変える方法

このスライス設定では、SELECT()関数が非常に重要な役割を果たします。

ログインしているユーザーの所属部署に応じて、表示されるViewを切り替えることが可能です。

所属部署別のユーザーイメージ

SELECT()関数については別の記事にまとめています

参考記事

今回の検証に用いるテーブルは2つです。

追加検証シート

テーブルに所属と登録日を用意します。

アプリユーザーテーブル

テーブルに名前とemailと所属を用意します。

テーブルの準備ができたら、さっそくスライスの条件式を入力していきます。

この記事では、所属が「開発部」の人の場合でまとめています。

データテーブル
視認性を高めるために色を付けています
スライスのRow filter conditionに関数を入力
row filter condition

作成するスライスのRow filter conditionに以下の関数を入力します。

[所属] = TEXT(SELECT(アプリユーザー[所属], [email] = USEREMAIL()))

解説:

  • USEREMAIL(): 現在ログインしているユーザーのメールアドレスを取得します。
  • SELECT(アプリユーザー[所属], [email] = USEREMAIL()): 「アプリユーザー」テーブルの中から、ログインユーザーのメールアドレスに一致する行の[所属]カラムの値を取得します。
  • TEXT(...): SELECT関数が返す値をテキスト型に変換します。
  • [所属] = ...: 最後に、「登録案件」テーブルの[所属]カラムが、ログインユーザーの所属部署と一致するかを判定します。

これにより、ログインユーザーが所属する部署と一致するデータのみが抽出されるスライスが作成されます。

作成したスライスでViewを作成

最後に、先ほど作成したスライステーブルを参照テーブルに指定して新しいViewを作成します。

このViewは、ログインユーザーの所属部署に該当したデータのみを表示する画面となります。

スライスViewの作成
結果の確認
所属別viewの画面

これで、スライステーブルを基にしたViewでは、ログインユーザーが「開発部」に所属している場合、「開発部」のデータしか表示されなくなりました(^^)


今年に登録されたデータのみを表示させる

最後に、今年に登録されたデータのみを表示させる方法を説明します。

これは、データの期間を絞り込んで表示したい場合に非常に役立ちます。

今年のカレンダーイメージ

検証データは、先ほどと同じ所属部署のデータを使用します。

今回は、登録日がピンク色になっているデータ(2022年のデータ)のみを表示させたいと思います。

検証データ

スライステーブルのRow filter conditionには、以下の関数を入力します。

year関数のスライス条件式

YEAR([登録日]) = YEAR(NOW())

この関数の意味は、「[登録日]の日付のが、現在時刻(NOW())のと等しいもの」ということです。

このスライス条件式で作成したスライステーブルでViewを作成すると…

今年登録分のデータ

このように、2022年に登録されたデータのみが表示されました。

YEAR()関数とNOW()関数を組み合わせることで、動的に現在の年を基準にデータを絞り込むことができ、毎年手動で条件を変更する必要がなくなります。

EOWEEK()関数やEOMONTH()関数も合わせて使えるようになっておきましょう

参考記事

まとめ

今回は、AppSheetでアプリ開発を行う上で非常に役立つ、汎用性の高いスライス設定を5つご紹介しました。

特に、スライスViewをDashboardに並べて進捗管理をする仕組みは、簡単に作成でき、かつ応用が効くため、幅広い業務で活用できます。

スライスは、AppSheetでアプリ開発を進めるなら、避けては通れない基本的な知識です。

しかし、特別に複雑な設定があるわけではありません。繰り返し使っているうちに、自然と身についていくと思います(^^)

記事内容について何かありましたらページ下にあるコメント欄からコメントをお願いします。

わかりにくかった部分や間違った情報などご指摘いただけると嬉しいです!

勉強お疲れさまでした(^^)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA



reCaptcha の認証期間が終了しました。ページを再読み込みしてください。