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

まずはじめに
- SELECT()関数の基本を学びたい人
- 別テーブルに存在する値を取得したい人
- SELECT()関数を構成する基本の形
- SELECT()関数が要求するリストとフィルター条件式の引数
AppSheetでアプリ開発を進める上で、避けて通れない、かつ最も強力な関数の一つがSELECT()関数です。
データの抽出や連携において、まさに「縁の下の力持ち」としてアプリの肝となる働きをします。
このSELECT()関数を使えば、本当に欲しい情報だけを、指定した条件でリストとして抽出することが可能です。
この記事では、SELECT()関数の基本的な使い方を網羅して解説していきます。
「SELECT()関数は難しい」「まだ使いこなせていない」と感じているのであれば、それはAppSheetの脱初心者を目指す上での重要なステップです。
本記事を丁寧に読み込み、この強力な機能をぜひ習得してください。SELECT()関数をマスターすることで、アプリ開発の可能性は格段に広がると思います。
それでは勉強していきましょう(^^)
SELECT()関数の基本:引数(ひきすう)を理解しよう
まずは、SELECT()関数の最も基本的な使い方、つまり引数(ひきすう)について説明していきます。
引数とは、関数に渡す情報のこと。SELECT()関数は、この引数を受け取って、その情報に基づいて結果を返してくれます。
SELECT()関数の基本形は、次のようになっています。
SELECT(from-dataset-column, select-row?[,distinct-only?])
なるほど、分からん!日本語で頼む!!
という読者のためにもっと分かりやすく書くと
SELECT(リストを取得したいカラム, フィルター条件式, [重複を除外するかどうか])
これを具体的に見ていきましょう。
ここには、結果としてリスト形式で取得したい「データの列」を指定します。
例えば、「顧客シート」の「顧客名」のリストを取得したい場合は 顧客シート[顧客名] となります。
リストから特定のデータだけを抽出するための「条件」を指定します。
この条件式は、TRUE(真)かFALSE(偽)で答えられるような形にします。
例えば、「ステータス」が「完了」であるデータのみを抽出したい場合は [ステータス] = “完了” のように記述します。
これはオプションの引数で、TRUEまたはFALSEを指定します。
- TRUE を指定すると、取得したリストから重複する値が自動的に取り除かれ、ユニークな値だけが返されます。
- FALSE を指定するか、省略した場合は、重複する値もそのままリストに含まれます。 基本的には省略しても問題ありませんが、重複のないリストが欲しい場合にTRUEを使うと便利です。
つまり、SELECT()関数で最も重要なのは、
「どの列のデータを(第一引数)」、「どのような条件で抽出するか(第二引数)」を明確にすることです。

この説明だけでは具体的なイメージが湧きにくいかもしれません。
そこで、理解を深めるためにダミーデータを用いた検証を行っていきます。
第一引数:テーブル名[カラム値]
最もシンプルなデータの抽出:テーブル名[カラム名]
SELECT()関数の基本を理解する第一歩として、まずは最もシンプルなリストの取得方法から見ていきましょう。
これは、SELECT()関数の第一引数に入れることができる構文の一つで、特定のテーブルの指定したカラムにあるすべてのデータをリストとして取得する際に使います。
その形は非常に簡単です。
テーブル名[カラム名]
テーブル名とカラム名をただ続けて記述するだけです。
この構文を使うことで、その列にあるデータがすべてリストとして返されます。フィルターをかけずに、特定の列の全データが必要な場合に利用します。
例えば、このようなデータシートがある場合

登録案件[申請者]
とした場合の返り値は、aaa@gmail.com, aaa@gmail.com, bbb@gmail.comです。

リストの概念について別の記事でまとめています
AppSheetで重要なリストの作成方法や関数についてまとめています(^^)
【永久保存版】AppSheetで覚えておくべきList関数
第二引数:フィルター条件式
SELECT()関数の第二引数であるフィルター条件式には、入力した条件が最終的にTRUE(真)かFALSE(偽)で返ってくるような式を設定する必要があります。
つまり、「はい」か「いいえ」で答えられるような質問を AppSheetに投げかけるイメージです。
よく使われる定番の条件式は以下のパターンです。
例: [ステータス] = “完了” (ステータスが「完了」である行のみ)
IN()関数などを使って、対象のカラム値が指定したリストに含まれているか否かを判断します。
例: IN(“東京”, 支店リスト[出店場所]) (「東京」が支店リスト[出店場所]に含まれているか)
簡単に言えば、「この行のこのデータは、〇〇という条件に合っていますか?」と AppSheetに尋ね、それにTRUEかFALSEで答えてもらう、と考えると分かりやすいでしょう(^^)

入力した条件式がYes/Noで取得できる記事についてまとめています
Yes/Noを返す条件式が求められる箇所や関数についてまとめました(^^)
【永久保存版】AppSheetで覚えておくべきYes/No関数

このようなデータシートがある場合で考えてみましょう。
SELECT(登録案件[申請者], [ステータス] = “申請中“)
この場合の返り値は、aaa@gmail.com,aaa@gmail.comです。
第三引数:重複排除のオプション
SELECT()関数の第三引数である重複Yes/Noは、実は省略可能です。
この引数を省略した場合、FALSEを指定した時と同じ扱いになります。
具体的に見てみましょう。
関数の入力値 | 返り値 |
---|---|
SELECT(登録案件[申請者], [ステータス] = “申請中“ ,FALSE) | aaa@gmail.com,aaa@gmail.com |
SELECT(登録案件[申請者], [ステータス] = “申請中”, TRUE) | aaa@gmail.com |
表のとおり、この第三引数は、返ってくるリストの値に重複を許すか許さないかを決めるためのものです。
ほとんどのケースでは、この重複Yes/Noは意識しなくても全く問題ありません。必要な場面になったら思い出してください(^^)
SELECT()関数の応用:鍵は「フィルター条件式」にあり!
SELECT()関数の基本的な使い方をマスターすると、ある重要なことに気づくはずです。
それは、この関数の応用範囲を広げる鍵が、実は「フィルター条件式」にしかないということです。
第一引数で指定する「リストを取得したいカラム」は、そのまま特定の列のデータを指定するだけ。
第三引数の重複排除オプションも、TRUEかFALSEの選択肢しかありません。
しかし、第二引数に指定するフィルター条件式は、非常に柔軟に記述できます。

ここを工夫することで、SELECT()関数は多種多様なデータの抽出要求に応える、強力なツールとなります。
様々な関数や演算子を組み合わせ、複雑な条件を構築することで、AppSheetアプリの機能性と利便性は格段に向上します。
それではダミーデータを用いて検証してみましょう!

名前、性別、年齢、血液型のカラムを用意します。
試しに入力したSELECT()関数の返り値を表にまとめました。
関数の入力値 | 返り値 |
---|---|
SELECT(検証[名前], TRUE) | Aさん,Bさん,Cさん,Dさん,Eさん,Fさん,Gさん,Hさん |
SELECT(検証[名前], [性別] = “男性”) | Aさん,Cさん,Eさん,Gさん |
SELECT(検証[名前], OR([性別] = “男性”, [血液型] = “O”)) | Aさん,Cさん,Eさん,Fさん,Gさん |
SELECT(検証[名前], [年齢] >= 35) | Eさん,Fさん,Gさん,Hさん |
SELECT(検証[名前], AND([年齢] >= 35, [性別] = “女性”)) | Fさん,Hさん |
自分で一度入力してみるのが上達への近道です(^^)
まとめ
今回は、AppSheetにおける非常に重要な関数、SELECT()関数の使い方について詳しく解説しました。
AppSheetでアプリを開発する際、SELECT()関数はほとんどすべてのアプリで利用されると言っても過言ではないほど頻繁に登場します。それくらい、データの抽出や連携には不可欠な関数です。
もう一度、基本の形をおさらいしておきましょう。
SELECT(リストを取得したいカラム, フィルター条件式, [重複を除外するかどうか])
- 第一引数:リストとして取得したいデータの列を指定します。
- 第二引数:リストからデータを絞り込むためのフィルター条件式(TRUE/FALSEで判断できる条件)を指定します。
- 第三引数:取得するリストから重複する値を除外するかどうかをTRUEまたはFALSEで指定します(省略可能です)。
この基本構造を習得することで、実際のアプリ開発における経験を通じて、より深く理解が促進されると思います。
着実な学習を継続することで、SELECT()関数を自在に活用し、AppSheetアプリの機能をさらに強化することが可能となります。
記事内容について何かありましたらページ下にあるコメント欄からコメントをお願いします。
わかりにくかった部分や間違った情報などご指摘いただけると嬉しいです!
勉強お疲れさまでした(^^)

この記事で説明しきれなかったSELECT()関数の応用をまとめた記事です
直前に選んだ選択肢によって、あとに続く選択肢を変化・制限する設定を知りたい人におすすめ(^^)
【脱初心者!】SELECT()関数で依存型ドロップダウンリストを作成する方法
とてもわかりやすい!たすかりました!
コメントありがとうございます!
select()関数は非常によく使う関数なので、なるべく分かりやすくまとめたつもりです。
勉強教材としてこの記事を活用してくれたら嬉しいです(^^)