Accessのクエリの抽出条件についてお探しですね。
広告
Accessのクエリで正確にデータを絞り込む!抽出条件の書き方をわかりやすく解説
Accessで売上データや顧客情報を管理していると、「必要なデータだけをサッと取り出したい」という場面がたくさんありますよね。
そんなときに活躍するのが「選択クエリ」です。
でも、いざ使ってみると「AND(かつ)とOR(または)の使い分けがよくわからない…」「条件を入れたのに、なぜか関係ないデータまで出てきちゃう…」なんてことも。
この記事では、Accessのクエリで抽出条件を設定する基本のルールから、実務でよく使うAND・ORの組み合わせ方まで、できるだけわかりやすくまとめました。
思い通りのデータをスムーズに取り出せるようになって、日々の作業をもっと楽にしていきましょう!
まずはここから!データ型によって変わる抽出条件の基本ルール
Accessのクエリで条件を設定するとき、最初につまずきやすいのが「データ型による書き方の違い」です。
対象のフィールド(列)に入っているデータが文字なのか、数字なのか、それとも日付なのかによって、条件の書き方が変わってくるんです。
ここを間違えると「データ型が一致しません」というエラーが出たり、何も表示されなかったりするので、まずはこの基本をしっかり押さえておきましょう。
**文字列(テキスト型)**のデータを指定するときは、前後を**ダブルクォーテーション(“)で囲みます**。
たとえば、商品名が「りんご」のデータを探したいなら、`”りんご”`と書きます。
一方、**数値型**の場合は記号で囲む必要はなく、`1000`のようにそのまま数字を入力すればOKです。
そして、意外と間違えやすいのが**日付/時刻型**。
日付を指定するときは、前後を**シャープ(#)で囲んで**、`#2025/01/01#`のように書く必要があります。
Accessのデザインビュー(クエリを作る画面)で条件を入力すると、たいていは自動でこれらの記号を補ってくれます。
でも、複雑な条件を自分で入力するときは補完が効かないこともあるので、「文字列は”、数値はそのまま、日付は#」という基本ルールは頭に入れておくと安心です。
「AかつB」を指定するAND条件の使い方
実際の業務では、「東京都に住んでいて、なおかつ20代の人」のように、複数の条件を**すべて満たす**データだけを取り出したい場面がよくあります。
こういうときに使うのが**AND条件**です。
AccessのクエリデザインビューでAND条件を設定するのは、実はとっても簡単。
複数のフィールドにまたがってAND条件を指定したいときは、それぞれのフィールドの**「抽出条件」という同じ行**に条件を入力するだけでOKです。
たとえば、「都道府県」フィールドに`”東京”`、「年齢」フィールドに`>=20 And <=29`と入力すれば、東京都に住む20代の人だけが抽出されます。 また、ひとつのフィールドの中でAND条件を使いたいときに便利なのが**「Between」演算子**です。 たとえば、売上金額が1,000円以上5,000円以下のデータを抽出したいなら、`Between 1000 And 5000`と入力します。 これは`>=1000 And <=5000`と書くのと同じ意味ですが、Betweenを使った方がスッキリ見やすくて、入力ミスも減らせます。 日付の範囲指定でも`Between #2025/01/01# And #2025/01/31#`のように頻繁に使われます。 さらに、文字列の一部を含むデータを探す**「部分一致」**もAND条件とよく組み合わせて使います。 部分一致には**「Like」演算子**と、任意の文字を表す**アスタリスク(*)**を使います。 たとえば、住所に「東京」を含んでいて、なおかつ商品名に「りんご」を含むデータを探すなら、住所フィールドに`Like "*東京*"`、商品名フィールドの同じ行に`Like "*りんご*"`と入力すればOKです。 同じ行に条件を並べることで、すべての条件をクリアしたデータだけを正確に取り出せます。
「AまたはB」を指定するOR条件の設定方法
AND条件とは逆に、「東京に住んでいる人、**または**大阪に住んでいる人」のように、**どちらか一方の条件を満たせばOK**というデータを抽出したいときに使うのが**OR条件**です。
AccessのクエリデザインビューでOR条件を設定する方法は主に2つあります。
条件の複雑さによって使い分けると、後から見直すときにもわかりやすくなりますよ。
**1つ目の方法**は、抽出条件の欄に**「Or」演算子**を使って直接書く方法です。
同じフィールド内で複数の候補を指定したいときに便利で、たとえば都道府県フィールドに`”東京” Or “大阪”`と入力します。
これで、東京か大阪のどちらかが入っているレコードがすべて抽出されます。
文字列だけでなく、`100 Or 200`のように数値を指定したり、`Like “*りんご*” Or Like “*みかん*”`のように部分一致を組み合わせたりすることもできます。
**2つ目の方法**は、デザインビューの左側にある**「または」という行**を使う方法です。
抽出条件を入力する行のすぐ下に「または」という行があって、さらにその下にも空白行が続いています。
ここに条件を一段ずらして入力すると、自動的にOR条件として認識されるんです。
たとえば、商品名フィールドの1行目に`”りんご”`と入力して、数量フィールドの2行目(または行)に`3`と入力すると、「商品名がりんご、**もしくは**数量が3」という条件になります。
行を分けることで条件の区切りが見た目でわかりやすくなるので、複数のフィールドにまたがるOR条件を設定するときはこちらの方法がおすすめです。
AND・ORを組み合わせるときの注意点と「Not」の使い方
AND条件とOR条件の基本がわかったら、次はこれらを**組み合わせた複雑な抽出**に挑戦してみましょう。
ただし、ANDとORを混ぜて使うと、思わぬ結果になることがあるので注意が必要です。
たとえば、「商品名がりんご**または**みかんで、**かつ**数量が3以上」という条件を指定したいとします。
これをデザインビューの複数行を使って何も考えずに設定すると、「数量に関係なくりんごを全部抽出する」か「みかんで数量3以上だけを抽出する」という、意図しない結果になってしまうことがあります。
こういう複雑な条件を正確に指定するには、**カッコ「( )」**を使って演算の優先順位をはっきりさせるのがコツです。
ひとつの抽出条件欄に`(“りんご” Or “みかん”)`と入力して、別の数量フィールドに`>=3`と入力すれば、思い通りのデータだけを絞り込めます。
Accessの内部では、ANDの方がORよりも先に処理される仕組みになっているので、ORの条件をひとまとめにして判定させたいときは、必ずカッコでくくるようにしましょう。
また、複数条件とセットで覚えておきたいのが、**「特定のデータを除外する」ための「Not」演算子**です。
たとえば、「りんごとみかん**以外**」のデータを抽出したいなら、`Not (“りんご” Or “みかん”)`と書きます。
ここでもカッコを使わずに`Not “りんご” Or Not “みかん”`と書いてしまうと、「りんごじゃないデータ」と「みかんじゃないデータ」の**両方**を抽出することになり、結果的にほぼすべてのデータが表示されてしまう…という落とし穴があります。
複数条件を組み合わせるときは、論理的におかしなことになっていないかをよく考えて、設定した後は必ずテストデータで意図通りに抽出できているか確認するクセをつけましょう。
最初は難しく感じるかもしれませんが、慣れてくると自由自在にデータを操れるようになりますよ!
広告
