本記事はノーコードアプリ開発について全く知らなかった管理人が独学で勉強し、ここ大事!と感じた部分を記事にまとめています。
本ブログでは新UI画面で内容をまとめています。
新旧画面への切り替えは、下図を参考に該当アイコンをクリックしてください(^^)

まずはじめに
- 登録中のデータである条件を満たすデータのみを抽出したい人
- 自分で登録したデータのみ表示させる方法
- 進捗管理アプリにおいて進捗段階別にデータを表示させる方法
- 管理者(上司)に確認をお願いする案件だけ表示させる方法
- 所属部署別にViewの表示を変える方法
- データが登録された時期で区切ってViewに表示させる方法
今回の記事は、AppSheetの根幹をなす機能の一つ、「スライス」に焦点を当てて解説します。
スライスは、AppSheetでアプリ開発を行う上で、非常に頻繁に利用する機能です。データを特定の条件で絞り込んだり、表示をカスタマイズしたりするために使用します。
本記事では、誰にとっても汎用性が高く、すぐにでも使いやすいスライス条件を5つ厳選してご紹介します。
それでは、さっそく勉強していきましょう!
スライス機能とは?
まず、スライス機能について簡単に説明します。

スライスとは、AppSheetのデータテーブルに登録されているデータを、任意の条件式で抽出する機能のことです。
これにより、元のデータ全体の中から、必要な情報だけを切り出して表示したり、特定の処理の対象にしたりすることができます。
スライスは、特定のViewでのみデータを絞り込みたい場合や、アクションの対象データを一時的に限定したい場合などに非常に便利です。
AppSheetには、スライスと似た機能としてSecurity Filter
(セキュリティフィルター)があります。

Security Filter
は、アプリ全体でユーザーに見せるデータを恒久的に絞り込む機能であり、特にデータ数が数万件を超えてくるような大規模なアプリの場合に、パフォーマンスの向上やセキュリティの確保のために設定を検討すると良いと思います(^^)
汎用性のあるスライス設定
AppSheetには、「こんなカラム設定をしておくとアプリの汎用性が高くなる」という設定がいくつか存在します。

この記事では、その中でも特に「これだけは覚えておいたほうがいい」と私が考える、汎用性の高いスライス設定を5つご紹介します。
スライス設定の検証を行うために、今回は以下のテーブル構成を用いたダミーデータを使用します。

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


使うデータは以上です。それでは早速、これらのデータを使ってスライス設定の検証に取り掛かってみましょう!
自分で入力したデータのみ表示させる

AppSheetアプリで、ログインしているユーザーが自分自身で入力したデータだけを表示させるのは、非常によく使われるスライス設定の一つです。
この設定を行う前に、AppSheetにデータを読み込んだら、まずはデータタイプの設定を行いましょう。
今回はスライス設定についての記事なので詳細な手順は割愛しますが、以下の設定を済ませておいてください。
- 「アプリユーザー」テーブルの
Key
値をEmail
、LABEL
を名前
に設定する。 - 「登録案件」テーブルの
申請者
カラムをRef
タイプにし、「アプリユーザー」テーブルと紐づける。 - 「登録案件」テーブルの
申請者
カラムのInitial Value
にUSEREMAIL()
と入力する。
スライスViewの作成
次に、実際にスライス機能を使って、自分自身が入力したデータのみを表示するViewを作成する方法を説明します。
まず、データテーブルから特定の条件でデータを絞り込むための「スライス」を作成します。
設定は下図を参考にしてください(^^)

Slice Name
: 後で見て分かりやすいように、フィルター条件式が想像できるスライス名にすることをおすすめします。Source Table
: 参照する元のテーブル(今回の例では「登録案件」テーブル)を選択します。Row filter condition
: ここに [申請者] = USEREMAIL() と入力します
AppSheetはアプリを使用する際に、ログイン中のユーザーのメールアドレスを自動で取得します。このメールアドレスを自動で取得してくれるのがUSEREMAIL()
関数です。
つまり、この式は「現在アプリを使っているユーザーのメールアドレスと、データの[申請者]
カラムに登録されているメールアドレスが一致するか?」を判定し、TRUE
のデータのみを抽出するフラグとなります。
スライステーブルを作成したら、そのスライスを元にしたViewを作成します。

新しいViewを作成する際、For this data
の項目に、先ほど作成したスライステーブルをセットする、と覚えておいてください。
これにより、このViewでは、ログインユーザーが入力したデータのみが表示されるようになります。
スライスViewの確認
最後に、今回作成したViewが意図どおりに動作するか確認してみましょう。

上記のダミーデータでは、申請者
がAさんのメールアドレスであるデータが2つ含まれています。
Viewを構成するテーブルを「登録案件」(全データ)と「自分の案件」(スライステーブル)で分けたときの見え方は、以下のようになります。
ダミーデータの3件が全て表示されています。

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

これで、[入力者] = USEREMAIL()
という条件を満たすデータのみが表示されることが確認できました!
この設定は、運用中のアプリでも、後から新しいカラムを追加するだけで簡単に実装できます。
ユーザーごとに表示するデータを制御したい場合に非常に便利なので、ぜひ覚えておきましょう!
ステータス別で進捗を管理する
次に、データのステータス(進捗状況)に基づいて表示を絞り込むスライス設定を見ていきましょう。
これは、業務の進捗管理アプリと非常に相性が良い設定です。

先ほどと同じく、まずはカラムの設定を行います。
「登録案件」シートのステータス
カラムのInitial Value
に"登録"
と入力しておきましょう。
これにより、新しいデータが追加された際に、自動的に初期ステータスが「登録」となります。

カラムの編集権限を付与することでより高度なアプリも作成可能です
Editableに関数を入力することで、特定の権限を持った人しかデータを編集できないようにできます(^^)
【TIPS】Editableに関数を入れたときの挙動
ステータス別のスライステーブルを作成
ステータス別のスライスも、先ほどと同様に、[ステータス] = 〇〇
の条件式でスライスViewを作成します。
フィルター条件式は以下の写真を参考にしてください。

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

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

[ステータス] = "承認"
スライスViewの作成
ステータス別のスライステーブルを作成したら、今度はそれらを活用するViewを作成します。
参照テーブルは登録のスライステーブル、Positionはrefを選択

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

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

今回のようなステータスの段階別でViewを作成する場合、Dashboard View
が特におすすめです。
作成した3つのViewを、1つのViewにまとめるダッシュボードを作成してみましょう(^^)


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

このように、ステータス別で登録されたデータを一覧化することが可能です。
この設定もAppSheetでは非常によく使う設定なので、ぜひ覚えておきましょう(^^)

ステータス別に登録されているデータ数をカウントするTIPSをまとめています
スライスView別に登録されたデータの件数を数える設定についてまとめた記事です(^^)
【コピペでOK】データ件数を動的にカウントする方法
管理者に承認を促したい案件だけ表示させる
アプリの管理者や特定の担当者に対して、承認が必要な案件だけを表示させる設定は、ワークフローを効率化するために非常に有効です。

管理者のみにViewを見せる方法
まず、「登録案件」テーブルの[ステータス]
が"申請中"
であるデータのみを抽出するスライスを作成します。

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

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

Show if
に以下の条件式を入力しましょう。
ANY(SELECT(アプリユーザー[管理者], [email] = USEREMAIL()))
この式は、まずSELECT()
関数で「アプリユーザー」テーブルの中から、[email]
カラムが現在ログインしているユーザーのメールアドレス(USEREMAIL()
)と一致する行の[管理者]
カラムの値(TRUE
またはFALSE
)を取得します。
ANY()
関数はその結果を一意にするとここでは覚えておいてください。
つまり、この式は「現在ログインしているユーザーが、『アプリユーザー』テーブルで[管理者]
カラムがTRUE
に設定されているか?」を判定します。
結果として、管理者権限を持つユーザーのみが、この「申請中案件」のViewを見られるようになります。

ANY()関数とSELECT()関数はAppSheetにおいて習得必須レベルの関数です
AppSheetでアプリ開発をするうえで覚えておくべき関数をまとめています(^^)
【まとめ】AppSheetでよく使う関数一覧
承認者Viewの確認
作成した承認者Viewが正しく機能するか確認してみましょう。
承認権限を持たないAさんがログインした場合は、Viewのタブは3つしか表示されません。

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

このように、ANY(SELECT())
関数は、ログインユーザーの属性に基づいてViewの表示を動的に制御できるため、さまざまなアプリで応用が効く汎用性の高い設定を実装できます。
この機会にぜひ覚えておきましょう!
ログインユーザーの所属部署別にView画面を変える方法
このスライス設定では、SELECT()
関数が非常に重要な役割を果たします。
ログインしているユーザーの所属部署に応じて、表示されるViewを切り替えることが可能です。


SELECT()関数については別の記事にまとめています
SELECT()関数の使い方、引数の渡し方について詳しくまとめています(^^)
【これで解決!】SELECT()関数の使い方
SELECT()関数の応用で、直前に選んだ選択肢によって続く選択肢を制限する方法をまとめています(^^)
【脱初心者!】SELECT()関数で依存型ドロップダウンリストを作成する方法
今回の検証に用いるテーブルは2つです。

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

テーブルに名前とemailと所属を用意します。
テーブルの準備ができたら、さっそくスライスの条件式を入力していきます。
この記事では、所属が「開発部」の人の場合でまとめています。


作成するスライスのRow filter condition
に以下の関数を入力します。
[所属] = TEXT(SELECT(アプリユーザー[所属], [email] = USEREMAIL()))
解説:
USEREMAIL()
: 現在ログインしているユーザーのメールアドレスを取得します。SELECT(アプリユーザー[所属], [email] = USEREMAIL())
: 「アプリユーザー」テーブルの中から、ログインユーザーのメールアドレスに一致する行の[所属]
カラムの値を取得します。TEXT(...)
:SELECT
関数が返す値をテキスト型に変換します。[所属] = ...
: 最後に、「登録案件」テーブルの[所属]
カラムが、ログインユーザーの所属部署と一致するかを判定します。
これにより、ログインユーザーが所属する部署と一致するデータのみが抽出されるスライスが作成されます。
最後に、先ほど作成したスライステーブルを参照テーブルに指定して新しいViewを作成します。
このViewは、ログインユーザーの所属部署に該当したデータのみを表示する画面となります。


これで、スライステーブルを基にしたViewでは、ログインユーザーが「開発部」に所属している場合、「開発部」のデータしか表示されなくなりました(^^)
今年に登録されたデータのみを表示させる
最後に、今年に登録されたデータのみを表示させる方法を説明します。
これは、データの期間を絞り込んで表示したい場合に非常に役立ちます。

検証データは、先ほどと同じ所属部署のデータを使用します。
今回は、登録日がピンク色になっているデータ(2022年のデータ)のみを表示させたいと思います。

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

YEAR([登録日]) = YEAR(NOW())
この関数の意味は、「[登録日]
の日付の年が、現在時刻(NOW()
)の年と等しいもの」ということです。
このスライス条件式で作成したスライステーブルでViewを作成すると…

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

EOWEEK()関数やEOMONTH()関数も合わせて使えるようになっておきましょう
先週分や先月分、今月分など期間を短く区切りたい場合の設定方法をまとめています(^^)
【これで解決!】EOWEEK()関数とEOMONTH()関数の使い方
まとめ
今回は、AppSheetでアプリ開発を行う上で非常に役立つ、汎用性の高いスライス設定を5つご紹介しました。
特に、スライスViewをDashboard
に並べて進捗管理をする仕組みは、簡単に作成でき、かつ応用が効くため、幅広い業務で活用できます。
スライスは、AppSheetでアプリ開発を進めるなら、避けては通れない基本的な知識です。
しかし、特別に複雑な設定があるわけではありません。繰り返し使っているうちに、自然と身についていくと思います(^^)
記事内容について何かありましたらページ下にあるコメント欄からコメントをお願いします。
わかりにくかった部分や間違った情報などご指摘いただけると嬉しいです!
勉強お疲れさまでした(^^)