ヘルプの森~Excel・Access・Office全般ヘルプデスクサイト

No.014

基本的な抽出条件の書き方について

2003/2007/2010/2013/2016

抽出条件の書き方は基本中の基本です。
なるべくたくさんご案内しますので、今回の内容は是非とも覚えてください。

条件はクエリのデザイン ビュー下半分のデザイン グリッド、抽出を行うフィールドの[抽出条件]セル以下に設定します。

<完全一致条件>

レコードの値と完全一致の条件を設定する場合は、抽出条件にそのまま設定します。
左側に入力データと()内は確定された設定です。

  • 123 …数値系フィールド「123」のレコードを抽出
  • "ABC" …テキスト系フィールド「ABC」のレコードを抽出
  • #2030/01/01# …日付フィールド「2030/01/01」のレコードを抽出
  • Null(Is Null) …Null値のレコードを抽出
  • "" …Null値ではない空白(長さ 0 の文字列)のレコードを抽出
  • Yes または -1 または True または On …Yes/No型フィールド「Yes」のレコードを抽出
  • No または 0 または False または Off …Yes/No型フィールド「No」のレコードを抽出

値が文字列である場合は前後にダブルクォーテーション、日付時刻の場合は前後に#を指定しますが、クエリのデザイン ビューなどで入力するときは、自動的に表示されます。

<部分一致条件(テキスト)>

テキスト系フィールドの部分一致条件、つまりあいまい条件での抽出は、ワイルドカードを使用して条件を設定します。

ワイルドカードは半角アスタリスク(*)と半角疑問符(?)を必ず覚えておきましょう。
アスタリスクは0文字以上任意の文字列、疑問符は1文字に当てられます。

ワイルドカードを使用して条件設定を行うと、Like演算子が先頭に設定されます。

では、ワイルドカードの基本的な使用例をいくつかご案内します。
入力データと()内は確定された設定です。

  • "A*"(Like "A*") …「A」から始まるレコードを抽出
  • "*A"(Like "*A") …「A」から終了するレコードを抽出
  • "*A*"(Like "*A*") …「A」を含むレコードを抽出
  • "A??"(Like "A??") …「A」から始まり全体が3文字のレコードを抽出
  • "*A*B*"(Like "*A*B*") …「A」そして「B」を含むレコードを抽出

ワイルドカードを詳しく、また上記のほかに、角かっこなどを使用する抽出方法があります。これは別のヘルプ「ワイルドカードや数式を使用した高度な抽出」をご参照ください。

<Not条件>

Not条件は否定の条件で、「でない」条件のことです。
通常の条件の前に、Not演算子、または不等号「<>」を入力します。

  • <>123 …「123」以外のレコードを抽出
  • Not "ABC" …「ABC」でないレコードを抽出
  • Not #2030/01/01# …「2030/01/01」以外のレコードを抽出
  • <>"*A*" …「A」を含まないレコードを抽出
  • Not "*A*"(Not Like "*A*") …「A」を含まないレコードを抽出
  • Not Null(Is Not Null) …Null値でないレコードを抽出

<OR条件>

OR条件は、複数の条件のいずれかが1つでも満たすレコードを抽出するケースで、「または」条件のことです。
OR条件の場合の抽出条件の設定は違う行に入力します。
1つのフィールドで複数の条件がOR条件である場合は、Or演算子を使用することができます。

OR条件

上図上の例は、[F1]フィールドが「A」または[F3]フィールドが「200」の条件、
下の例は、[F1]フィールドが「Aから始まる」または「Bから始まる」条件設定です。

<AND条件>

AND条件は、複数の条件のすべてを満たすレコードを抽出するケースで、「かつ」条件のことです。
AND条件の場合の抽出条件の設定は違う行に入力します。
1つのフィールドで複数の条件がAnd条件である場合は、And演算子を使用することができます。

AND条件

上図上の例は、[F1]フィールドが「A」かつ[F3]フィールドが「200」の条件、
下の例は、[F3]フィールドが「100以上」かつ「200以下」、つまり「100から200まで」の条件設定です。

<大小の条件>

数値系データの以上以下、より大きい小さいといった条件設定です。
Excelと同じように設定します。

  • >123 …「123」より大きいレコードを抽出
  • <123 …「123」より小さいレコードを抽出
  • >=#2030/01/01# …「2030/01/01」以上(以降)のレコードを抽出
  • <=#2030/01/01# …「2030/01/01」以下(以前)のレコードを抽出

<範囲の条件>

数値系データで範囲の条件、どこからどこまでの条件設定です。
Between~And演算子を使用する方法と大なり小なりを使用する方法との2つの設定がありますます。

例えば数値データで「100から200まで」という条件は、「100以上 かつ 200以下」と同義であり、次のような設定となります。
どちらでも同じ結果です。

  • Between 100 And 200
  • >=100 And <=200

また、日付データで「2030/01/01」以上(以降)かつ「2030/03/31」以下(以前)のレコードを抽出する場合も同様に設定します。

  • Between #2030/01/01# And #2030/03/31#
  • >=#2030/01/01# And <=#2030/03/31#
Between~And

演算子の間は必ず半角スペースを入れます。でないと、エラーを言われますのでご注意ください。

twitter hatena line pocket

関連ヘルプ

クエリの演算フィールドについて、式ビルダーの使い方
クロス集計クエリの結果のNull値を「0」と表示する
重複のない一通りデータを取得したい
テーブルのデータ型をクエリで変更する 《データ定義クエリ》
外部結合とは
削除クエリで、別のテーブルまたはクエリと共通するレコードを一括削除する
複数テーブルをつなげてレコードを結合する 《ユニオン クエリ》
クエリで空白(でない)データを抽出したい、Accessの空白について
重複クエリとは
部分一致のパラメーター クエリを作成する、パラメーター クエリの設定方法
更新クエリでテーブルのデータを置換する(文字列の一部更新)
クロス集計クエリを元にパラメーター クエリを実行「~認識できません」エラー
特定のレコードのみ最初に並べ、他のレコードは普通に並べ替えする
ワイルドカードや数式を使用した高度な抽出
クエリで連番、グループ連番をふる
アクション クエリのメッセージを非表示にするには