AppSheetの賢い入力補助!「Suggested values」と「Enum」を徹底解説

AppSheetでアプリを作る際、ユーザーがデータ入力する手間を減らし、かつ入力ミスを防ぐための機能は非常に重要です。その中でも特に役立つのが、「Suggested values(候補値)」と「Enum(列挙型)」です。

「どちらも候補から選ばせる機能でしょ?」と思われた方もいるかもしれません。実はこの2つ、似ているようで全く異なる役割を持っています。今回は、これらの機能の具体的な使い方から、決定的な違い、そしてどのような場面で使い分けるべきかを徹底的に解説します。


1. AppSheetの「Suggested values(候補値)」とは?

「Suggested values」は、ユーザーが入力する際に「もしかしたら入力したいであろう値」を提案してくれる機能です。Excelのオートコンプリート機能をイメージすると分かりやすいでしょう。

具体例:備品管理アプリの「部署」選択

例えば、備品管理アプリで「部署」を入力する際、毎回手打ちではミスが発生しやすいですよね。そこで、「Suggested values」を活用します。

  1. 部署マスタテーブルの作成: まず、部署の一覧(例: 営業部、開発部、経理部)を保持する「Departments」といったテーブルを用意します。部署名は「Department_Name」という項目に入れます。
  2. 備品テーブルの「部署」列に設定:
    • 備品テーブルの「部署」列(データタイプはTEXT型が一般的)の編集画面を開きます。
    • 「Data Validity」セクションにある「Suggested values」の項目に、以下の式を入力します。
      [Departments[Department Name]
      この式は、「DepartmentsテーブルのDepartment Name列にあるすべての値を候補として表示する」という意味です。

これで、備品登録フォームの「部署」入力欄をタップすると、設定した部署名がドロップダウンで表示され、選択できるようになります。

「Suggested values」の柔軟性:Allow other values

TEXT型のカラムに「Suggested values」を設定した場合、AppSheetはデフォルトで候補以外の手入力を許可します。つまり、明示的な「Allow other values」というチェックボックスは表示されませんが、その機能は有効になっている状態です。

  • 候補から選択: 入力の手間を削減し、入力ミスを防ぎます。
  • 候補以外の手入力: 新しい部署が追加された場合など、リストにない値を自由に入力できます。

ただし、「候補にない値は絶対に入力させたくない!」という場合は、「Valid_If」と組み合わせることで厳格なバリデーションが可能です。


2. 「Valid_If」で厳格なバリデーションを設定する

「Suggested values」はあくまで入力補助ですが、「Valid_If」を併用することで、入力値を厳しく制限できます。

設定方法:

  1. 上記と同じTEXT型カラムの編集画面を開きます。
  2. 「Data Validity」セクションの「Valid_If」の項目に、「Suggested values」と同じ式を入力します。
    Departments[Department Name]
    これで、ユーザーが候補以外の値を手入力しようとすると、エラーが表示され保存できなくなります。

3. 「Enum(列挙型)」とは?

Enumは、列に格納できる値を厳密に制限するための「データ型」です。
あらかじめ定義されたリストに含まれる値しか入力できません。

具体例:注文アプリの「ステータス」選択

注文アプリで、注文の「ステータス」を管理する場合を考えます。ステータスは「未処理」「処理中」「完了」のいずれかであるべきで、それ以外の値は許容したくありません。

  1. 注文テーブルの「ステータス」列を「Enum」データタイプに設定します。
  2. Enumの設定で、「Values」に 未処理, 処理中, 完了 と直接入力します。

これにより、ユーザーはプルダウンやボタン形式で、定義された3つのステータスの中からしか選択できなくなります。


4. 「Suggested values」と「Enum」の決定的な違い

この2つの機能は「候補から選ばせる」という点では共通しますが、その目的と制約が大きく異なります。

特徴Enum (列挙型)Suggested values (候補値)
目的入力値を厳格に制限する(データの一貫性)入力補助・提案(入力の手間削減、ミス防止)
入力制限厳格:定義された値のみ入力可能柔軟:候補値以外も手入力可能(TEXT型の場合)
主な設定データ型Enum型そのものTEXT型、Number型(主に手入力が伴う型)
バリデーション列型そのものがバリデーションの役割を果たすValid_Ifと組み合わせることでバリデーションが可能

いつどちらを選ぶべきか?

  • Enumを使うべき場面:
    • 厳格なデータの一貫性が求められる場合:性別、支払いステータス、カテゴリ、曜日など、あらかじめ決まった選択肢からのみ選ばせたい場合。
    • カテゴリ分類やマスタデータとして機能させたい場合
  • Suggested valuesを使うべき場面:
    • 入力の手間を減らしつつ、新しい値の追加も許可したい場合:顧客名、商品名、住所の一部など、頻繁に新しいデータが追加される可能性があるフィールド。
    • 過去の入力履歴や他のテーブルの動的なデータから候補を提示したい場合
    • 候補にない値は受け付けないが、エラーメッセージなどでユーザーに修正を促したい場合(Valid_Ifとの併用)。

まとめ

AppSheetの「Suggested values」と「Enum」は、それぞれ異なるアプローチでデータ入力の質を向上させる強力なツールです。

  • Enumは「決められたルール」を適用し、
  • Suggested valuesは「賢いアシスト」を提供します。

あなたのアプリの要件に合わせてこれらを適切に使い分けることで、ユーザーフレンドリーで堅牢なアプリケーションを構築できるでしょう。ぜひこれらの機能を活用して、より良いAppSheetアプリを作成してくださいね!