データベース関数で「○○を含む」のような部分一致の条件を指定する

[Excel 2016/2013/2010/2007]

DSUM関数(合計)、DAVERAGE関数(平均)、DCOUNT関数(数値の個数)、DCOUNTA関数(データの個数)、DMAX関数(最大)、DMIN関数(最小)などのデータベース関数では、引数[条件]で集計対象のデータを指定しますが、文字列の部分一致を条件とするには「ワイルドカード」を使用します。ここでは、データベース関数でワイルドカードを使うときのコツを覚えましょう。

=データベース関数(データベース, フィールド, 条件)

スポンサーリンク

「*エアコン」という条件では、「『エアコン』で終わる」の意味にならない

図1を見てください。DCOUNT関数を使用して、データベースの「商品名」欄から「*エアコン」という条件に合致するデータをカウントしようとしています。「*」は0文字以上の文字列を表す「ワイルドカード」と呼ばれる記号です。「*エアコン」と指定すると、一般的には「『エアコン』の前に0文字以上の文字列が付く」データ、つまり「『エアコン』で終わる」データという意味になります。図1では、「エアコン」「マルチエアコン」が該当します。

しかし、実際には期待した「エアコン」「マルチエアコン」のほかに、予期せぬデータ「エアコンフィルター」もカウントされてしまっています。実は、条件表に「*エアコン」という条件を入力すると、データベース関数では「『*エアコン』で始まる」データが検索され、結果的に「『エアコン』を含む」データがすべてカウントされてしまうのです。

図1 条件表に「*エアコン」と入力して、DCOUNT関数でデータ数をカウントすると、「エアコン」を含むデータがカウントされる。

メモ

「エアコン」と入力すると「『エアコン』で始まる」という条件になる
条件表に「エアコン」と入力した場合は、「『エアコン』で始まる」データが検索されます。詳しくは「データベース関数で文字列の完全一致条件を指定する」を参照してください。

「『エアコン』で終わる」データを集計するには

「商品名」が「『エアコン』で終わる」データを集計するには、図2のように条件表に「="=*エアコン"」と入力します。セルには、「=*エアコン」と表示され、正しい集計が行われます。

図2
1)条件欄に「="=*エアコン"」と入力する。
2)セルには「=*エアコン」と表示される。
3)「『エアコン』で終わる」データの数が正しくカウントされる。

条件の指定例

図2では「『エアコン』で終わる」という条件を指定しましたが、「*」の使い方に応じて「始まる」「含む」など、さまざまな条件を指定できます。

条件 指定例 該当データ
「エアコン」で始まる ="=エアコン*" エアコン、エアコンフィルター
「エアコン」で終わる ="=*エアコン" エアコン、マルチエアコン
「エアコン」を含む ="=*エアコン*" エアコン、マルチエアコン、エアコンフィルター
「エアコン」に等しい ="=エアコン" エアコン

メモ

複数通りの指定方法がある
「エアコン」「エアコン*」「="=エアコン*"」では、いずれも「『エアコン』で始まる」データが検索されます。また、「*エアコン」「*エアコン*」「="=*エアコン*"」では、いずれも「『エアコン』を含む」データが検索されます。

ワイルドカードの種類と使用例

ワイルドカードには、「*」のほかにも下表の種類があります。いずれも使用するときは半角で入力してください。「~」(チルダ)は、一般的なキーボードでは、半角英数モードで[Shift]キーを押しながら[^]キー(ひらがなの「へ」のキー)を押すと入力できます。

ワイルドカード 説明
*(アスタリスク) 0文字以上の任意の文字列
?(クエスチョンマーク) 任意の1文字
~(チルダ) 「*」「?」の前に付けて「*」「?」を検索

文字数制限のない「*」と1文字を表す「?」を組み合わせることで、さまざまな条件を指定できます。例えば、「?*」は「1文字以上の任意の文字列」、「??*」は「2文字以上の任意の文字列」を表します。

下表は、ワイルドカード「*」と「?」を使用して、8つの苗字

, 岡,川原, 森, 加賀, 天王寺, 長部, 長

を検索した場合の例です。

使用例 意味 該当データ
="=*谷*" 「谷」を含む 8件 , 岡, 川原, 森, 加賀, 天王寺, 長部, 長
="=?谷?"  1文字+「谷」+1文字 2件 長部, 長
="=?谷*"  1文字+「谷」+0文字以上 3件 森, 長部, 長
="=谷*" 「谷」で始まる 3件 , 岡, 川原
="=谷?" 「谷」+1文字 1件 
="=谷?*" 「谷」+1文字以上 2件 岡, 川原
="=*谷" 「谷」で終わる 4件 , 森, 加賀, 天王寺
="=?谷"  1文字+「谷」 1件 森
="=?*谷"  1文字以上+「谷」 3件 森, 加賀, 天王寺
="=??*谷"  2文字以上+「谷」 2件 加賀, 天王寺

「~」は「*」「?」を検索したいときに使用します。

使用例 説明
="= ~*"  「*」を検索する
="=~?"  「?」を検索する
="= *~**"  「*」を含む文字列を検索する
="=*~?*"  「?」を含む文字列を検索する
スポンサーリンク

関連記事