FileMakerでスクリプトや計算式を作っていると、「もしAならこれ、Bならあれ、それ以外は…」という条件分岐がどんどん増えて、あとから見返したときに自分でも何を書いたのか分からなくなることがあります。
そんなときに役立つのが、条件分岐をスッキリひとまとめにできる「Switch関数」です。
この記事では、Switch関数の基本的な考え方から、よくある使い方、注意点までを分かりやすく整理して解説します。
Switch関数とは?基本の考え方
Switch関数は、「条件」と「結果」をペアで並べていくことで、分かりやすく条件分岐を表現できる関数です。
ざっくり言うと、
- 条件1が真(True)なら結果1
- そうでなければ条件2をチェック、真なら結果2
- …という流れで順番に評価していく
という動きをします。
書式は次のようになります。
Switch (
条件1 ; 結果1 ;
条件2 ; 結果2 ;
条件3 ; 結果3 ;
…
)
最初に「真」になった条件に対応する結果を返します。
Case関数と似ていますが、Switchの方が「条件と結果のセット」が並んでいて、視覚的に整理しやすいのが特徴です。
具体例:ステータスコードを分かりやすい文字に変換する
よくある使い方として、数字や記号で管理している値を、人が読んで分かりやすい文字に変換するケースがあります。例えば、受注データでステータスを次のように管理しているとします。
- 1:受付
- 2:確認中
- 3:出荷待ち
- 4:完了
このステータスコードを、画面上では分かりやすい文字で表示したいとき、Switch関数を使うと次のように書けます。
Switch (
ステータス = 1 ; "受付" ;
ステータス = 2 ; "確認中" ;
ステータス = 3 ; "出荷待ち" ;
ステータス = 4 ; "完了"
)
このように、「条件」と「表示したい文字」がペアで並んでいるので、あとから見返しても意味がつかみやすくなります。
Case関数との違いと使い分け
FileMakerで条件分岐といえば、Case関数が定番です。
Case関数は次のような形になります。
Case (
条件1 ; 結果1 ;
条件2 ; 結果2 ;
結果_それ以外
)
Case関数には最後に「それ以外」の結果を指定できるのが特徴です。一方、Switch関数には決まった「それ以外」の項目がありません。その代わり、自分で「それ以外」を定義する形になります。
例えば先ほどのステータス例で、「どれにも当てはまらないときは『不明』と表示したい」場合は、最後に「常に真になる条件」を置きます。
Switch (
ステータス = 1 ; "受付" ;
ステータス = 2 ; "確認中" ;
ステータス = 3 ; "出荷待ち" ;
ステータス = 4 ; "完了" ;
1 = 1 ; "不明"
)
1 = 1 は必ず真になるので、「どの条件にも合わなかったときの最後の受け皿」として働きます。
このようにしておけば、予期しない値が入ってきても、意味のあるメッセージを返せます。
Switch関数を使うメリット
Switch関数を使うことで、次のようなメリットがあります。
- 見た目が整理される
条件と結果がセットで横並びになるため、長い条件分岐でも構造が一目で分かりやすくなります。 - 修正・追加がしやすい
新しい条件を追加したいとき、1行(条件と結果)を足すだけで対応できます。 - ネスト(入れ子)を減らせる
IfやCaseを入れ子にして複雑になっていたロジックを、1つのSwitchにまとめてシンプルにできます。
実務でよくあるパターン例
Switch関数は、次のような場面で特に効果を発揮します。
曜日の表示を切り替える
数値で管理されている曜日(1〜7)を、日本語表記の曜日に変換する例です。
Switch (
曜日番号 = 1 ; "日" ;
曜日番号 = 2 ; "月" ;
曜日番号 = 3 ; "火" ;
曜日番号 = 4 ; "水" ;
曜日番号 = 5 ; "木" ;
曜日番号 = 6 ; "金" ;
曜日番号 = 7 ; "土" ;
1 = 1 ; "不明"
)
ランクに応じて表示文言を変える
顧客のランクによって、画面上のメッセージを変えることも簡単です。
Switch (
顧客ランク = "A" ; "いつもありがとうございます(ゴールド会員)" ;
顧客ランク = "B" ; "ご利用ありがとうございます(レギュラー会員)" ;
顧客ランク = "C" ; "初めてのご利用ありがとうございます" ;
1 = 1 ; "会員情報を確認してください"
)
Switch関数を使うときの注意ポイント
便利なSwitch関数ですが、使うときに気をつけたい点もあります。
- 上から順に評価される
最初に真になった条件の結果だけが返されます。似た条件がある場合は、評価の順番に気をつけましょう。 - どの条件にも合わない場合の扱い
何も返さない(空になる)と原因が分かりにくくなるので、最後に「必ず真になる条件」を入れておくと安心です。 - 条件の重複に注意
同じ条件を複数書いてしまうと、上に書いた方しか評価されません。条件内容がかぶっていないか、ざっと見直すようにしましょう。
まとめ:分岐が増えてきたらSwitchで整理する
FileMakerでの開発が進むと、どうしても条件分岐が増えて複雑になりがちです。
そんなとき、「条件がいくつも並んでいて読みにくい」「似たようなIfがいっぱい出てくる」と感じたら、Switch関数にまとめられないかを検討してみてください。
条件と結果を1セットとして並べるだけでも、ロジックの全体像がつかみやすくなり、あとから修正・拡張するときのストレスも減ります。
まずは、ステータスコードやランク、曜日など、「決まったパターンを文字に変換する場面」からSwitch関数を試してみると、効果を実感しやすいはずです。