FileMaker で AND 検索、OR 検索

FileMaker は複数の検索条件で検索する場合、AND 検索と OR 検索の2種類がある。

FileMaker で OR 検索をするには、Find モードに入った上で「New Request」で検索条件を追加する。1行目の条件 OR 2行目の条件 OR 3行目の条件・・・のように OR 検索できる。

AND 検索をするには、Find モードに入った上で、複数のフィールドに検索条件を記入することでそれらすべてを満たすレコードを検索できる(=フィールド A の条件 AND フィールド B の条件 AND フィールド C の条件・・・)。

一つややこしいのが、「条件 A には合致するが、条件 B には合致しない」という場合は New Request で行を追加する方法で検索することだ。Find モードで1行目に条件 A を入力し、New Request で2行目に条件 B を入力。条件 B の行を選択した上で、Matching Records を Omit にし、Perform Find を実行する。New Request を使って行を追加すると OR 検索になりそうだが、この場合は AND 検索的になるのだ。

* * *

では単一のフィールドにおいて、複数条件で検索するにはどうすればいいか。

OR 検索の場合は簡単で、New Request で検索行を追加して入力すればいい。

AND 検索の場合はどうだろう。例えば日付の範囲を検索したい場合など、よくあるシチュエーションではないだろうか。2020/7/13 〜 2020/10/20 で検索するような状況だ。

1つの方法は、一旦最初の条件で検索し、続けて絞り込み(Requests > Constrain Found Set)による再検索をする。

例えば日付フィールドで 2020/7/13 〜 2020/10/20 の範囲を検索するなら、以下の2ステップで検索する。

(1)>=2020/07/13
(2)<=2020/10/20
(実際は < > = は半角で入力。)

この方法はスクリプトを作ってしまえば簡単だけど、単にデータを検索したい場合などは一発ではできないので手間だ。

2つ目の方法は、「…」を使う方法だ。2020/07/13…2020/10/20 のように入力すれば一発で検索できる。なお両端の 2020/7/13 と 2020/10/20 の日付も検索結果に含まれるため、日付以外の検索で「5より大きく 10 より小さい」を検索したい場合は「6…9」で検索する必要がある。

参考:
複数の検索条件に一致するレコードを検索する
https://fmhelp.filemaker.com/help/16/fmp/ja/index.html#page/FMP_Help/finding-records-multiple-criteria.html

特定の範囲に一致する情報の検索
https://fmhelp.filemaker.com/help/13/fmp/ja/html/find_sort.5.8.html