[Excel 2016/2013/2010/2007]
DSUM関数(合計)、DAVERAGE関数(平均)、DCOUNT関数(数値の個数)、DCOUNTA関数(データの個数)、DMAX関数(最大)、DMIN関数(最小)などのデータベース関数では、引数[条件]で集計対象のデータを指定しますが、文字列の部分一致を条件とするには「ワイルドカード」を使用します。ここでは、データベース関数でワイルドカードを使うときのコツを覚えましょう。
=データベース関数(データベース, フィールド, 条件)
「*エアコン」という条件では、「『エアコン』で終わる」の意味にならない
図1を見てください。DCOUNT関数を使用して、データベースの「商品名」欄から「*エアコン」という条件に合致するデータをカウントしようとしています。「*」は0文字以上の文字列を表す「ワイルドカード」と呼ばれる記号です。「*エアコン」と指定すると、一般的には「『エアコン』の前に0文字以上の文字列が付く」データ、つまり「『エアコン』で終わる」データという意味になります。図1では、「エアコン」「マルチエアコン」が該当します。
しかし、実際には期待した「エアコン」「マルチエアコン」のほかに、予期せぬデータ「エアコンフィルター」もカウントされてしまっています。実は、条件表に「*エアコン」という条件を入力すると、データベース関数では「『*エアコン』で始まる」データが検索され、結果的に「『エアコン』を含む」データがすべてカウントされてしまうのです。
メモ
「『エアコン』で終わる」データを集計するには
「商品名」が「『エアコン』で終わる」データを集計するには、図2のように条件表に「="=*エアコン"」と入力します。セルには、「=*エアコン」と表示され、正しい集計が行われます。
条件の指定例
図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件 加賀谷, 天王寺谷 |
「~」は「*」「?」を検索したいときに使用します。
使用例 | 説明 |
---|---|
="= ~*" | 「*」を検索する |
="=~?" | 「?」を検索する |
="= *~**" | 「*」を含む文字列を検索する |
="=*~?*" | 「?」を含む文字列を検索する |