それはあなたがあなたの検索がどれほど曖昧である必要があるか正確に少し依存します。完全一致を検索していますか、それともこれらのフィールドで部分一致を検索していますか?
完全に一致すると仮定すると、一致する複数の名前フィールドと複数の部門フィールドを検索する数式が必要です。検索クエリフィールドをNameQueryとDepartmentQueryと呼びましょう。次に、NameQueryの値が名前フィールドの1つにあり、DepartmentQueryの値が部門フィールドの1つにある場合にtrueを返すこの数式を作成できます。
@IsMember(NameQuery; Name1:Name2:Name3) & @IsMember(DepartmentQuery; Department1:Department2:Department3:Department4);
代わりに部分一致を検索する必要がある場合は、@LIKE式を使用できます。まず、@ IMPLODEを使用して、名前と部門のフィールド値を1つの文字列に連結します。その後、ワイルドカード一致を実行できます。これはあまり効率的ではないので、何万ものドキュメントで作業している場合は、より良い解決策を見つけたいと思うかもしれません。
AllNameItems := @Implode(Name1:Name2:Name3; " ");
AllDepartmentItems := @Implode(Department1:Department2:Department3:Department4; " ");
@Like(AllNameItems; "%" + NameQuery + "%") & @Like(AllDepartmentItems; "%" + DepartmentQuery + "%");