FRL 自由研究ラボ

はじめての道具箱 — 探す・並べる画面

AND で絞るか OR で絞るか

— 0件にしない絞り込み —

一覧の画面に「条件を選んで絞り込む」機能を付けると、必ず「複数の条件をどう組み合わせるか」という問いに行き当たります。この記事では、すべて満たすものだけを残す(AND)か、どれかを満たすものを残す(OR)かで結果がどう変わるかと、絞り込んだら画面が空っぽになる「0件」を防ぐ考え方を、はじめての人向けに説明します。

この記事を読むとできること

  • AND と OR で、絞り込んだ後に残る件数がどう変わるかが分かるようになります
  • 条件を組み合わせると0件になる原因と、0件を防ぐ「連動プルダウン」(選択肢の一覧が開く入力欄を、ほかの条件に合わせて入れ替える仕組み)の考え方が分かるようになります
  • 自分の道具に合う絞り方を選んで、AI に正しく伝えられるようになります

想定している使い方

ブラウザで開くチャット型の AI(Gemini や ChatGPT など)にコードを書いてもらい、 それを自分の Mac に保存して動かす使い方です。この記事の操作や画面の説明は、すべて Mac を前提にしています。

  1. AND と OR とは
  2. 件数のちがい
  3. 0件になる組み合わせ
  4. どちらを選ぶか
  5. よくあるつまずき
  6. AI への伝え方
  7. 確かめ方
  8. 関連する項目

読む目安:約11分 ・ 道具箱の項目 C2(探す・並べる画面)・ 図4枚

AND と OR とは何か ―― なぜ「どちらで絞るか」を AI に伝える必要があるのか

AND(アンド)は、挙げた条件をすべて満たすものだけを残す絞り方です。OR(オア)は、挙げた条件のどれか1つでも満たすものを残す絞り方です。日本語では、AND が「かつ」、OR が「または」にあたります。

動画やクイズの一覧に絞り込みを付けると、「和食」や「煮物」のような条件を選ぶ場面が必ず出てきます。このとき、選んだ複数の条件を AND で結ぶか OR で結ぶかで、画面に残る件数は大きく変わります。この記事では、架空の料理の動画の一覧を例にします。

分類は大・中・小の三段で、大カテゴリーは料理、中カテゴリーは和食・洋食、小カテゴリーは煮物・焼き魚・パスタなどとします。たとえば中カテゴリーの「和食」と、小カテゴリーの「煮物」を選んだとします。AND なら「和食の煮物」だけが残ります。ここでの「煮物」は、和食にも洋食にも付く分類(洋食のシチューも煮物の仲間)とします。OR なら「和食の動画すべて」と「煮物の動画すべて」が合わさって並ぶので、洋食のシチューのような、探していない動画まで混ざります。

やっかいなのは、AI に「絞り込めるようにして」とだけ頼むと、AND と OR のどちらで作られるかが分からないことです。「思った件数と違う」という違和感の多くはここから来ます。そこで、頼む側が「すべて満たすもの」なのか「どれかでよい」のかを先に決めて、言葉にして伝えます。

✕ どちらで絞るかを決めずに頼むと 「和食」と「煮物」を選ぶ 探しているのは和食の煮物 OR(どれかでよい)で 組まれてしまう 洋食のシチューまで 並んでしまう ○ 「すべて満たす」と決めて頼むと 「和食」と「煮物」を選ぶ 探しているのは和食の煮物 AND で絞る すべての条件を満たす ものだけを残す 和食の煮物だけが 残る 残る件数は、AND で結ぶか OR で結ぶかで決まります。

図の見方:上の段は、どちらで絞るかを決めずに頼んだ場合で、OR で組まれると、探していない動画まで並びます。下の段は、「すべて満たす」と決めて頼んだ場合で、和食の煮物だけが残ります。

AND は減らし、OR は増やす

動画が全部で12本あるとして、数えてみます(本数は説明のために決めた架空の数です)。AND は、条件を足すたびに残りが減ります。「和食」を選ぶと6本、そこへ「煮物」を重ねると2本です。AND で条件を足して、件数が増えることはありません(減るか、同じです)。

OR は反対で、条件を足すたびに出る本数が増えます(増えるか、同じです)。「和食」の6本に、「洋食」の4本を足すと10本です。ですから、条件を足したときに件数が減ったのか増えたのかを見れば、画面が AND で動いているのか OR で動いているのかが分かります。

次の図は、上の枠が AND、下の枠が OR の件数の動きです。

AND(かつ)―― 重ねるほど減る 動画は全部で12本 「和食」を選ぶと6本 さらに「煮物」を重ねると2本 条件を足すたびに、残りは減ります。 探すものが決まっているときに使います。 OR(または)―― 足すほど増える 「和食」を選ぶと6本 + 「洋食」も選ぶと4本 = 合わせて10本(どちらかに当てはまれば出る) 条件を足すたびに、出る本数は増えます。 候補を広げたいときに使います。

AND で重ねると、0件になることがある

AND は重ねるほど減るので、組み合わせによっては0件になります。たとえば、中カテゴリー(分類の2段目)で「和食」を選んだあと、小カテゴリー(分類の3段目)のプルダウン(押すと選択肢の一覧が開く入力欄)から「パスタ」を選んだとします。和食にパスタの動画は無いので、画面は空っぽになります。

何も壊れていないのに、初めての人は「壊れた」と思ってしまいます。選ぶ側にとっては、選択肢に出ているのだから選べるはずだからです。これを防ぐ考え方が連動プルダウンです。ほかの条件を選ぶたびに、残りのプルダウンの中身を「今の条件で実際に残っているもの」だけに入れ替えます。「和食」を選んだら、小カテゴリーの選択肢から和食に無いパスタが消えるので、どれを選んでも1本以上は残ります。

次の図は、上が連動していない場合、下が連動している場合です。

✕ 選択肢が、いつも全部出ている 中カテゴリー:「和食」を選んだ 小カテゴリーの選択肢 煮物  焼き魚  パスタ 「パスタ」を選ぶ → 0件(画面が空っぽ) ○ 残っているものだけが出る(連動) 中カテゴリー:「和食」を選んだ 小カテゴリーの選択肢 煮物  焼き魚 どれを選んでも 1本以上は残る 和食に無い「パスタ」は、最初から選択肢に出しません。 選んだ条件に合わせて他の選択肢が入れ替わるので、「連動」と呼びます。

筆者の体験メモ

筆者の動画の管理道具は、一覧を表の形に作り替えたときに、表の見出しの行(列の名前が並ぶ、いちばん上の行)へ、列ごとの選択肢が連動して入れ替わるプルダウンを入れました。これが連動プルダウン(AND で絞る)です。当時の記録に残した狙いは、「検索したのに0件になる」という無駄な操作をなくし、目当ての動画へすぐ着けるようにすることでした。表の中の色付きのタグ(分類を表す小さな札)をクリックして集める方は、「どれかに当てはまるものを集める」絞り方で、記録では OR 検索と呼んでいます。

のちに(エージェント型コーディング、つまり AI が Mac の中で作業するやり方に移ってから)、先にカテゴリーを選んでから「お気に入り」(気に入った動画に付ける印で絞るボタン)を押すと、選んだカテゴリーや検索の言葉が消えてしまう作りだったのを直し、ほかの条件を残したまま AND で重ねて絞れるようにしました。

どちらを選ぶか

選ぶときの問いは1つだけです。「探しているものは、はっきり決まっているか」です。

決まっているなら AND です。条件を重ねるほど目当てに近づきます。「和食の煮物」のように、中カテゴリー(和食)と小カテゴリー(煮物)といった種類の違う分類を重ねるときは、基本的に AND を使います。

候補を広げたいなら OR です。「和食か洋食のどちらでもいい」のように、同じ種類の分類から複数を選ぶときは OR を使います。1本の動画は、中カテゴリーを1つしか持たないので、同じ種類の中から2つ選んで AND にすると、必ず0件になります。

次の図は、一番上の問いから、AND と OR の使い分けを順に並べたものです。

探すものは、はっきり決まっている? それとも、候補を広げたい? 決まっている ―― AND を使う すべての条件を満たすものだけを残す 例:和食の煮物 (種類の違う分類を重ねるとき:中と小など) 広げたい ―― OR を使う どれか1つでも満たせば残す 例:和食か洋食のどちらか (同じ種類の分類から、複数を選ぶとき) 1つの画面に、AND の絞り込みと OR の絞り込みを両方置くこともできます。

補足:検索ボックスに言葉を2つ並べたときの扱い(両方を含むものだけか、どちらかを含むものか)も、作る側の決めごとです。気になるときは、AI に「両方を含むものだけ」のように言葉で決めて伝えます。

よくあるつまずき

起きていることから探してください。

起きていること 原因 どうするか
条件を足したのに、件数が増えた 「すべて満たす」つもりが、OR で組まれている 「AI への伝え方」の①で、「条件を足すほど減る形」と言葉にして頼み直します
条件を足したら、目当ての動画まで消えた 「どれかでよい」つもりが、AND で組まれている 「AI への伝え方」の②で、「どれか1つでも当てはまれば出す」と頼み直します
選択肢に出ているものを選んだら、0件になった 選択肢が、ほかの条件と連動していない(全部がいつも出ている) 「AI への伝え方」の③で、連動プルダウンにしてもらいます
同じ種類の分類(例:和食と洋食)を2つ選んだら、必ず0件になる 1本の動画は、その種類の分類を1つしか持たないのに、AND で重ねている 「AI への伝え方」の②で、OR で動くようにしてもらいます
ボタンを押したら、先に選んでいたカテゴリーや検索の言葉が消えた ボタンを押すたびに、ほかの条件を初期の状態に戻す作りになっている 「ほかの条件は残したまま、重ねて絞る」と頼みます

AI への伝え方

※ この道具箱は対話型コーディング(ブラウザの画面でチャットの AI と文章をやりとりして、コードを書いてもらうやり方)の前提です。 チャットの AI はあなたの Mac を見られないので、頼むのは「コードを書いて」、困ったら出た文字を貼って伝えます。 コツは、「すべて満たす」か「どれかでよい」かを、言葉にして先に伝えることです。「AND」「OR」という言葉を知らなくても、日本語で書けば伝わります。 下の文は、そのまま写すためのものではなく、言い方の見本です。

① すべて満たすもの(AND)に絞りたいとき

「動画の一覧に、大カテゴリー(料理)・中カテゴリー(和食・洋食)・小カテゴリー(煮物・焼き魚・パスタ)を選ぶプルダウンを付けて。複数選んだときは、選んだ条件をすべて満たす動画だけが残るようにして。条件を足すほど件数が減る形にして。絞り込んだ後の件数を画面に表示して。コードを書いて」

② どれかに当てはまるもの(OR)を集めたいとき

「中カテゴリーのボタンを、複数選べるようにして。選んだもののうち、どれか1つでも当てはまる動画を全部出して。ボタンを足すほど件数が増える形にして。コードを書いて」

③ 0件になる組み合わせを無くしたいとき

「プルダウンを連動させて。ほかのプルダウンで条件を選んだら、残りのプルダウンの選択肢を、今の条件で実際に残っている動画に当てはまるものだけにして。選んだら0件になる組み合わせは、選べないようにして。ほかの条件や検索の言葉は、選び直すまで消さないで」

うまくいかないとき

「中カテゴリーで『和食』を選んだあと、小カテゴリーで『パスタ』を選ぶと、0件になって画面が空っぽになる。画面に出ている件数の表示は:(ここに貼る)。『パスタ』は選択肢に出さないようにして」

確かめ方 ―― 頼んだ絞り方になっているか

①で頼んだ件数の表示を見ながら、条件を1つずつ足したり外したりすれば確かめられます(無ければ、頼み足します)。

  1. 1

    条件を1つ足して、件数の動きを見る。何も選ばない状態の件数を覚えてから、条件を1つ選び、さらにもう1つ選びます。件数が減っていけば AND、増えていけば OR です(OR でも同じ件数のままのことはあります)。頼んだ方と逆に動いていたら、頼み直します。

  2. 2

    0件になる組み合わせが無いか探す。1つめのプルダウンを選んだら、2つめのプルダウンの選択肢を上から順に選んでいきます。どれを選んでも1件以上が残れば、連動できています。0件になる選択肢が見つかったら、その組み合わせを AI に伝えます。

  3. 3

    条件を外して、元に戻るか見る。選んだ条件を1つずつ外し、全部外したときに最初の件数へ戻るか確かめます。戻らなければ、ボタンを押すたびにほかの条件を消している可能性があります。