Field Filterとは?設定方法・変数との違いを解説
「Field Filterって普通の変数と何が違うのか?」
Metabaseを使い始めたとき、私が一番分からなかったのが Field Filter でした。
{{}}は分かるけど、Field Filterだけ設定項目が多い…。
「テーブル?カラム?Widget?」と最初は戸惑った記憶があります。この記事では、Field Filterの仕組みから設定方法、実務での使いどころまで初心者向けに解説します。
前回のおさらい
前回の記事では、Metabase独自のSQL構文である
{{}}[[ ]]- Optional Clause
について紹介しました。
まだ読んでいない方はこちらからどうぞ。
今回は、その中でも実務で最も利用することが多い Field Filter を詳しく見ていきます。
Field Filterとは?
まずは普通の変数との違いを見てみます。
普通の変数なら、このように書きます。
SELECT *
FROM ORDERS
WHERE USER_ID = {{user_id}}
この場合、{{user_id}} には入力した値がそのまま入ります。
一方、Field Filterは書き方が少し異なります。
SELECT *
FROM ORDERS
WHERE {{created_at}}
「created_at = が無いの?」と思った方もいるかもしれません。
実はこれがField Filterの特徴です。
Field Filterでは、比較演算子(= や BETWEEN など)をMetabaseが自動で組み立ててくれるため、WHERE {{created_at}} のように条件式を書くだけで利用できます。
クエリプレビューを見ると、実際にどのようなSQLへ変換されるか確認できます。
普通の変数との違い
Field Filterと通常の変数の違いをまとめると次のようになります。
| 項目 | Text / Number / Date | Field Filter |
|---|---|---|
| 入力値をそのままSQLへ渡す | ○ | × |
| カラムとの紐付け | × | ○ |
| ドロップダウン表示 | × | ○ |
| 日付範囲検索 | △ | ○ |
| Dashboardフィルター連携 | △ | ◎ |
| MetabaseがSQLを自動生成 | × | ○ |
Field Filterは「値」を渡すというよりも、
"どのカラムをどの条件で検索するか" をMetabaseに任せる仕組み
と言った方がイメージしやすいかもしれません。
Field Filterの設定方法
Field Filterを利用するには、変数の種類を Field Filter に変更します。
すると、通常の変数には無い設定項目が表示されます。
これらを設定することで、Metabaseがどのカラムを検索対象にするか判断できるようになります。
テーブル・カラムを紐付ける
ここが一番重要な設定です。
Field Filterでは
- 対象テーブル
- 対象カラム
を指定する必要があります。
例えば
Table:Orders
Field:Created At
のように設定します。
この設定が無いと、Metabaseはどのカラムを検索すればよいか分からないため、Field Filterは正しく動作しません。
Widgetとは?
Widgetは、画面上でどのように入力させるかを決める設定です。
例えば日付なら
- Single Date
- 検索したい日付を指定できる
- Date Range
- 開始日と終了日を指定する
文字列なら
- Search Box
- 値を自由に入力する
- Dropdown
- 候補一覧から選択する
などを選択できます。
クエリプレビューを見てみる
Field FilterはSQLを書き換えて実行しています。
例えば自分が書いたSQLは
SELECT *
FROM ORDERS
WHERE {{created_at}}
だけですが、
実際にはMetabaseが
SELECT *
FROM ORDERS
WHERE CAST("PUBLIC"."ORDERS"."CREATED_AT" AS date)
BETWEEN date '2025-12-01'
AND date '2026-04-01'
のようなSQLへ変換して実行しています。
この動作は クエリプレビュー から確認できます。
Field Filterの挙動が分からなくなったときは、まずクエリプレビューを見るのがおすすめです。
実務ではこんな場面で使う
私の業務では、ユーザー分析用のダッシュボードで
- ユーザーID
- Platform
- 言語
- 国
- 作成日
- 更新日
などをField Filterにすることが多いです。
特にダッシュボードで利用する場合は、Field Filterを使うことがほとんどです。
ユーザー側もSQLを意識せずに条件を変更できるため、レポートとして非常に扱いやすくなります。
よくあるハマりポイント
テーブル・カラムを設定していない
Field Filterで一番多いミスです。
変数を作っただけでは動かず、対象のカラムまで設定する必要があります。
クエリプレビューを確認していない
「SQLがおかしい」と思ったら、まずクエリプレビューを確認しましょう。
MetabaseがどのSQLを生成したのか確認できるため、原因を見つけやすくなります。
大量データでドロップダウンが重い
Field Filterは便利ですが、データ量が多いテーブルではドロップダウン表示が重くなることがあります。
私も原因調査中に何度も再実行してしまい、想像以上にDBへ負荷を掛けてしまったことがあります。
まとめ
Field Filterは最初は少し分かりづらいですが、一度仕組みを理解するとSQLを書く量を大きく減らせます。
特に
- Dashboardとの連携
- 日付範囲検索
- ドロップダウン検索
など、Metabaseらしい便利な機能を使うためには欠かせない機能です。
困ったときは クエリプレビュー を確認すると、多くの場合原因を見つけられます。





