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

No.015

ワイルドカードや数式を使用した高度な抽出

2003/2007/2010/2013/2016

ワイルドカードとは、部分一致条件を設定するときに使用する記号です。
例えば苗字が山田さんで名前がわからないときに「山田なんとかさん」という場合の「なんとかさん」に当てる文字のことをいいます。

ワイルドカードでよく利用されるのは半角アスタリスク(*)と半角疑問符(?)で、それぞれ次のように当てられます。

  • アスタリスク(*) …全角半角の区別ない、0文字から任意の文字列
  • 疑問符(?) …全角半角の区別ない、1文字の文字列

例えば「山田なんとかさん」の場合は、「山田*」と入力しますね。
するとクエリなどでは、先頭にLike演算子とダブルクォーテーションが表示され、
「Like "山田*"」と設定されます。

アスタリスクや疑問符を使用した、ワイルドカードの基本の使用方法はヘルプ「基本的な抽出条件の書き方について」をご参照ください。

今回は、もう少し高度な設定例をご紹介します。

<角かっこ([])の抽出条件>

  1. [] …指定した文字のいずれかを抽出
  2. [x-z] …指定した範囲内の任意の1文字を抽出
  3. [!] …角かっこ内の文字を除く任意の1文字を抽出
  4. [!x-z] …角かっこ内の範囲に含まれる文字を除く任意の1文字を抽出

これらはすべて部分一致検索となります。確定後にLike演算子が表示されない場合は、先頭に「Like 」を手入力してください。

これだけではわかりづらいので、事例を加え、順番にご案内します。

1. []
「Like "や[まい]だ"」と設定すると、「やまだ」「やいだ」が抽出され、「やるだ」「やまだや」などは抽出されません。
[]内の文字は3つ以上も可能で、もちろんアスタリスクを加えて条件を設定することもできます。

2. [x-z]
「Like "や[あ-け]だ"」と設定すると、「やいだ」「やけだ」などが抽出され、「やまだ」など範囲外の文字のデータは抽出されません。

3. [!]
「Like "や[!い]だ"」と設定すると、「やまだ」「やけだ」などは抽出され、!のあとの文字のデータ「やいだ」は抽出されません。

4. [!x-z]
「Like "や[!あ-け]だ"」と設定すると、「やまだ」「やるだ」などが抽出され、「やいだ」「やけだ」など範囲内の文字のデータは抽出されません。

<In演算子>

In演算子は、指定した値のリストにあるいずれかの値とが等しいかどうかを条件設定できます。

  n(文字列1,文字列2, ...)

「In ("やまだ","やけだ")」と設定すると、完全一致の該当のデータが抽出されます。

<数式を抽出条件>

[抽出条件]セルに、式とその結果を抽出条件として設定することもできます。
例えば「Right([F1],1)="だ"」と設定した場合、「だ」で終了するデータが抽出されます。
この場合、抽出条件はどのフィールドに入力しても構いません。(下図上)

もしくは、演算フィールドに式「Right([F1],1)」を設定し、抽出条件を「"だ"」と指定するのも同じ結果となります。(下図下)

数式の条件

数式の結果を表示しない場合は、[表示]チェック ボックスをオフにしましょう。

関連ヘルプ

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