Home
»
Excelの基本操作の目次
»
関数・数式を入力する方法
»
データベース関数でのワイルドカードの使い方(検索条件の書き方)
データベース関数でのワイルドカードの使い方(検索条件の書き方)
データベース関数の検索条件でのアスタリスクの使い方について
詳細設定の検索条件でのアスタリスクの使い方について
データベース関数の検索条件でのアスタリスクの使い方について
Topへ
ここではExcel2016を使って説明します。
ここで書くことはExcel2002には適用されませんのでご注意ください。
データベース関数では検索条件 Criteria(クライテリア)をシートに書き出す必要があります。その時にワイルドカード文字を使って検索条件を指定することができます。
ところが、アスタリスクを使用するときには注意が必要です。理由は文字列が検索条件として入力されていると、前方一致で検索を行うためです。
この動作は Excel2002を除いたバージョンに共通します。Excel 2002 では検索条件として入力された文字列が完全一致で検索されるためです。
[XL2002]複雑な検索条件を使用してリストデータを抽出する方法
https://support.microsoft.com/ja-jp/kb/402757
ワイルドカード文字の *(アスタリスク)を使うと
○* 「〜で始まる」
*○ 「〜で終わる」
*○* 「〜を含む」
といった指定の仕方ができます。
この条件の指定の仕方をデータベース関数の検索条件に使ってみます。
ここでは DSUM関数を例にして示しますが、他のデータベース関数でも同じですのでご注意ください。
また、フィルターオプション(詳細設定)などの条件を書き出す機能でも同様のことが起こりますのでご注意ください。
他のデータベース関数としてはDAVERAGE、DCOUNT,DCOUNTA、DMAX、DMINなどがあります。
下図のように黄色の箇所には
=DSUM($A$1:$B$8,$B$1,E1:E2)
といった数式が入力してあります。
計算結果が正しいセルは黄色く塗りつぶしています。計算結果が正しくないセルは赤く塗りつぶしてあります。
この結果が正しいとは意図した結果と同じという意味合いになります。Excelとしてはこれらの結果はすべて正しいわけですので(-_-;)
ややこしいですが、計算結果が間違っているというわけではなく、計算式を作成した者の意図とは異なるということになります。
〜で始まる
条件を指定しているE2セルには
島*
と入力してあり、E3セルの計算結果も正しい結果 2 が返されています。
この 〜で始まる の
指定の仕方には問題ありません。
〜と同じ
E6セルには 鹿児島 と入力してありますので、普通には 「鹿児島」と同じといった条件を指定したことになると考えます。
ところが E7セルの =DSUM($A$1:$B$8,$B$1,E5:E6) の計算結果は 2 となっています。
「鹿児島」とだけ指定すると、「鹿児島」と「鹿児島県」の2つが該当すると判断されて、意図した結果と異なっています。
つまり、鹿児島で始まるものが検索されます。
よって、〜と同じ という条件は
="=文字列"
といった指定の仕方をする必要があります。
F6セルのように ="=鹿児島" と入力すると、F7セルの数式 =DSUM($A$1:$B$8,$B$1,F5:F6) の結果は 1となります。
〜で終わる
この場合も 島で終わるという指定は *島 としたいのですが、検索条件を指定するセルに *島 と入力すると「*島」で始まるものが検索されてしまいます。I3セルのように計算結果は 7 となってしまいます。
つまり、「*島」と指定すると、島を含むものが検索されてしまします。
このようなケースでは J2セルのように
="=*島"
と入力して、指定する必要があります。
〜を含む
条件を指定しているJ6セルには
*島*
と入力してあり、J7セルの計算結果も正しい結果 7 が返されています。
この 〜を含む の
指定の仕方には問題ありません。
ワイルドカード文字 ?(クエスチョンマーク)を使ったケースでも同様ですのでご注意ください。
計算結果が正しいセルは黄色く塗りつぶしています。計算結果が正しくないセルは赤く塗りつぶしてあります。
繰り返しますが、この結果が正しいとは意図した結果と同じという意味合いになります。
計算結果が間違っているというわけではなく、計算式を作成した者の意図とは異なるということになります。
2文字の文字列で2文字目が島のものを検索する場合、ワイルドカード文字 ?(クエスチョンマーク)を使って
?島
と書きます。
これを検索条件を指定するセルに入力して、データベース関数で計算すると、30となっています。
つまり、「福島県」「徳島県の」「広島」の3つが該当すると判断されています。 ?島 で始まるデータが検索されています。
2文字の文字列で2文字目が島といった条件を指定するときはF3
="=?島"
と指定する必要があります。
3文字の文字列で2文字目が島のものを検索する場合も同様です。
?島? と指定した条件で検索すると ?島? で始まるものが検索されます。「福島県」「徳島県の」2つが検索されます。
よって、F8セルのように
="=?島?"
と指定します。
詳細設定の検索条件でのアスタリスクの使い方について
Topへ
ここではExcel2016で詳細設定を実行した例を示しますが、結果はデータベースと同じです。
検索条件をセルに *島 のように文字列で指定した場合は 島 を含むものが検索されます。
="=*島" と指定すると、島で終わるものが検索されます。
通常は 「*島」は「島で終わる」を意味しますので、ちょと違和感を感じますが、Excel2002以外のバージョンではこのような結果となりますので、ご注意ください。
下図は詳細設定(フィルターオプションの設定)を実行した結果です。検索条件の下に抽出結果が表示されています。
計算結果が正しいセルは黄色く塗りつぶしています。計算結果が正しくないセルは赤く塗りつぶしてあります。
繰り返しますが、この結果が正しいとは意図した結果と同じという意味合いになります。計算結果が間違っているというわけではなく、計算式を作成した者の意図とは異なるということになります。
条件検索のセルに 「*島」「鹿児島」と入力した結果が、意図した結果と異なっています。
詳細設定の操作例
A1:B8のデータ内のセルを1つ選択します。[データ]タブの[詳細設定]を実行します。
フィルターオプションの設定ダイアログボックスが開きます。
抽出先で「指定した範囲」にチェックを入れます。
リスト範囲にA1:B8、検索条件範囲にE1:E2、抽出範囲にE4を指定します。
[OK]ボタンをクリックします。
データが抽出されました。
Home
|
Excelの基本操作の目次
|データベース関数でのワイルドカードの使い方(検索条件の書き方)