LIST型を使いこなす!+(追加)−(除外)によるリスト操作入門

Tips
AppSheetDataTipsデータ型

AppSheetでは、1つのセルに複数の値を持たせることができる List型(EnumListや仮想列など)があり、これを計算式(式演算)で自在に操作することができます

今回は、以下のようなニーズに応えるための 「Listの操作テクニック」 を解説します。


想定ケース

  • チェックリストのように選択された値に、ある条件で値を「追加」したい
  • 重複を避けながら、リストに「別の値セットを結合」したい
  • 特定の値を「除外(削除)」したい

基本構文

追加(+)

[現リスト] + LIST("追加したい値")
LIST("A", "B") + LIST("C", "D")

除外(-)

[現リスト] - LIST("削除したい値")

例1:EnumListに動的に値を追加

ユーザーが選択した部署リスト([完了部署])に、「管理部」を強制的に追加したい。

[完了部署] + LIST("管理部")

🧠 この式を使う場所

  • 仮想列の App Formula
  • Actionの「Set the values of some columns」

例2:既存のリストから特定の部署だけ除外

完了部署に「テスト部」が含まれていたら、それを削除したい。

[完了部署] - LIST("テスト部")

🧠 注意:リスト内に同じ値が複数ある場合、すべて削除されます。


例3:フィルタ結果と手動選択値の合体

ステータスが「完了」になったタスク担当者リストを自動取得し、ユーザーの選択値と結合したい。

[手動選択] + SELECT(Tasks[担当者], [ステータス] = "完了")

注意点

問題解説
重複が発生するAppSheetのリスト演算は重複をそのまま許容するため、重複除去が必要なら UNIQUE() を使用
空のリストに加算すると無視される[リスト] + LIST() は何も変化しません
単一値との演算"管理部" はリストではないので LIST("管理部") にする必要あり

応用:UNIQUE(), INTERSECT(), EXCEPT()

AppSheetには、より高度なリスト演算関数も存在します。

関数機能
UNIQUE()重複を除去UNIQUE([リスト] + LIST("A"))
INTERSECT()共通項を抽出INTERSECT([リスト1], [リスト2])
EXCEPT()リスト1にあって2にない要素EXCEPT([リスト1], [リスト2])

まとめ

操作構文例
値を追加[対象リスト] + LIST("追加したい値")
値を削除[対象リスト] - LIST("削除したい値")
リスト結合LIST("A", "B") + LIST("C", "D")
重複除去UNIQUE([対象リスト])