フィルターは、シナリオのコスト管理でいちばん効く部品です。
何をどう書くか(条件の書き方)ばかり気になりますが、あえて言うなら、本当に効くのはどこに置くかのほう。フィルターの位置を1つ前に動かすだけで、無駄なモジュール実行が消え、クレジットの消費が目に見えて減る。逆にフィルターが後ろにあると、捨てるデータのぶんまでお金を払い続けることになるわけです。
この記事では、まずフィルターの役割と位置の考え方を整理してから、条件の書き方、ハマりやすいポイントの順で解説します。
先に結論:フィルターは「できるだけ前に置く」が鉄則
Make.comのフィルターは、モジュールとモジュールをつなぐ線の上に置く「自動改札」です。条件に合うデータだけを通し、合わないデータはそこで止まる。止まったデータはそれ以降のモジュールに流れないので、後続のクレジット消費もゼロになります。
だから判断軸はこれ。100件のデータを10モジュール処理してから3件に絞るのか、最初に3件に絞ってから10モジュール処理するのか。前者は100×10=1,000クレジット、後者は100×1(取得)+3×10=130クレジット。同じ結果で消費が7倍以上違います。
このブログの記事生成をMake.comで回していたときも、フィルターを取得モジュールの直後に置き直しただけで月の消費が半分以下に落ちた経験があります。条件の書き方を学ぶより先に、「今あるフィルターの位置は最善か」を見直すほうが即効性があります。
ルーターとの違い(前回の復習)
フィルターとルーターはセットで使うことが多いので、改めて整理します。
- ルーター:1本の流れを複数の枝に分ける「構造」
- フィルター:各枝(または1本道)に条件を設定する「関所」
ルーターなしでも、1本道のシナリオにフィルターだけ置いて「この条件に合うときだけ続行」という使い方もできます。フィルターのほうが出番は広い部品です。
フィルターの設定手順
- フィルターを置きたい場所のモジュール間の矢印(線)をクリック
- フィルター設定画面が開く。名前(Label)に分かりやすい名称を付ける(例:「営業のみ通す」)
- Condition欄で、左辺(データの項目)・演算子・右辺(値)を設定する
- 「OK」で保存。矢印の上にフィルターアイコンが付けば完了
Labelは省略できますが、絶対に付けてください。3か月後の自分が「このフィルターは何を通すやつだっけ」と迷う時間をゼロにできます。
演算子の使い分け(よく使う6つ)
条件の核になる演算子を、使用頻度の高い順に整理します。
| 演算子 | 意味 | 使いどころの例 |
|---|---|---|
| Equal to | 完全一致 | ステータスが「pending」のもの |
| Not equal to | 一致しない | ステータスが「done」以外 |
| Contains | 含む(部分一致) | メール件名に「請求」を含む |
| Does not contain | 含まない | スパムっぽいキーワードを除外 |
| Exists | 値がある(空でない) | メールアドレス欄が空でないものだけ通す |
| Does not exist | 値がない(空) | 未入力の行をスキップ |
この6つで日常の条件分岐はほぼカバーできます。数値の大小比較(Greater than等)は、日付やスコアで絞るときに使いますが、出番は上の6つより少ないです。
AND条件とOR条件
複数の条件を組み合わせる場合。
- AND(すべて満たす):Condition欄に条件を追加していけば、自動的にAND結合になります。「ステータスがpending」かつ「カテゴリが営業」の両方を満たすデータだけ通す
- OR(いずれか):フィルター設定画面の下部にある「Add OR rule」を押すと、別の条件ブロックが追加されます。どちらかを満たせば通る
直感に反するのがOR。「条件を足せばAND」なので、ORを書くには明示的にORブロックを追加する必要があります。「営業またはサポートを通す」を書くときに、ANDのまま2つ並べると何も通りません。ここは初心者が確実にハマるポイントです。
日本語でハマる3つの落とし穴
全角・半角の不一致
フォームから来るデータで、半角の「ABC」と全角の「ABC」は別の文字列です。Equal toは完全一致なので、見た目が同じでも通らない。日本語のフォームは全角が混ざりやすいので、Containsで部分一致にするか、事前にテキスト変換関数で統一するのが安全です。
前後のスペース
スプレッドシートからの取り込みで、セルの値の前後に見えない空白が付いていることがあります。「pending」ではなく「pending 」(末尾に半角スペース)だとEqual toが通らない。Trim関数(空白除去)を左辺にかませるのが定石です。
空文字列とnullの違い
「空欄」にも種類があります。空文字列(長さゼロの文字列)とnull(値自体が存在しない)は、フィルターでは別扱いになることがあります。「値がない行をスキップしたい」場合は、Existsだけでなく「Not equal to 空文字列」も併用すると取りこぼしが減ります。
よく使う設定パターン
パターン1:ステータスで絞る(いちばん基本)
スプレッドシートの行を取得した直後に置き、ステータスが「pending」のものだけ通す。この1つのフィルターで、done済みの行を全部スキップできます。最も使用頻度が高い形です。
パターン2:空欄チェック(データの品質管理)
Existsで必須項目が空でないか確認し、空なら止める。不完全なデータを後続に流さない門番役です。メールアドレスのない行にメールを送ろうとしてエラー、という事故を予防します。
パターン3:日付で絞る(今日以降だけ処理)
日付プロパティに対してGreater thanやLess thanを使い、今日の日付(now関数)と比較する。「過去のイベントは無視」「今月の分だけ集計」のような条件に。
パターン4:ルーターと組み合わせる(前回記事の実例)
ルーターの各枝にフィルターを1つずつ置き、データの種類によって異なる処理に振り分ける。前回の「問い合わせの担当振り分け」がまさにこの型です。
よくある質問
フィルターを通過しなかったデータはどうなりますか?
消えます(そのルート上では処理されません)。ログには残るので、History画面から「何件が止められたか」は確認できます。大事なデータを取りこぼしたくない場合は、ルーターでFallbackルートを用意するのが安全です。
フィルターはクレジットを消費しますか?
フィルター自体は独立したモジュールではなく、クレジット消費に直接カウントされません。ただし、フィルターが置かれたモジュール間の上流モジュールは消費します。だからこそ「前に置く」が効くのです。
フィルターの条件が合っているのにデータが通りません
原因の8割は、全角半角の不一致、前後の空白、大文字小文字の違いのどれかです。Historyで実際にモジュールに入ってきたデータを見て、目で照合してください。条件と見比べるのではなく、実データを見るのが最短ルートです。
「AまたはB」の条件が書けません
Condition欄に2つ並べるとAND(両方満たす)になります。ORは「Add OR rule」で別ブロックを追加する必要があります。UIが分かりにくいポイントなので、OR条件を書くときは注意してください。
まとめ:フィルターは「何を通すか」ではなく「どこで止めるか」で考える
フィルターの設定で「どの条件を書くか」に集中しがちですが、まず考えるべきは止める場所です。不要なデータは早く止める。止めれば止めるほど、後続のクレジットが浮く。条件の精度は後から調整できますが、場所を間違えたまま運用すると、毎月の消費がじわじわ積み上がります。
今あるシナリオを開いて、フィルターの位置を1つ確認してみてください。もし5モジュール目に置いてあるなら、2モジュール目に動かせないか。それだけで、来月のクレジット消費が変わります。
※本リンクはアフィリエイトリンクです。 Make.com(※アフィリエイトリンクです)


コメント