[Excel 2016/2013/2010/2007]
SUMIF関数、AVERAGEIF関数、COUNTIF関数を使用すると、表の中から条件に合うデータを探して合計、平均、データ数を求められます。ここでは、「ワイルドカード」と呼ばれる記号を使用して、「○○を含む」「○○を含まない」「○○で始まる」「○○で終わる」のようなあいまいな条件を指定する方法を紹介します。
[範囲]から[検索条件]を探し、見つかった行の[合計範囲]のデータの合計を求める
=SUMIF(範囲, 検索条件[, 合計範囲])
[範囲]から[条件]を探し、見つかった行の[平均対象範囲]のデータの平均を求める
=AVERAGEIF(範囲, 条件[, 平均対象範囲)
[範囲]から[検索条件]を探してデータ数を求める
=COUNTIF(範囲, 検索条件)
作例…商品名に「エアコンを含む」商品のデータを集計する
図1の売上表の「商品名」欄(セルA3~A9)から「エアコンを含む」商品を検索して、「売上高」欄(セルB3~B9)の数値の合計と平均、およびデータ数を求めます。
「エアコンを含む」という条件を指定するには、引数[検索条件]に「"*エアコン*"」と指定します。「エアコン」がセルE2に入力されている場合は、「"*" & E2 & "*"」と指定します。「*」は、任意の文字列を表すワイルドカードです。
セルE6 | =SUMIF(A3:A9,"*" & E2 & "*",B3:B9)
セルE7 | =AVERAGEIF(A3:A9,"*" & E2 & "*",B3:B9)
セルE8 | =COUNTIF(A3:A9,"*" & E2 & "*")
条件の指定例
図1では「『エアコン』を含む」という条件を指定しましたが、「*」の使い方に応じて「始まる」「終わる」など、さまざまな条件を指定できます。
条件 | 直接指定 | セル参照指定 | 該当データ |
---|---|---|---|
「エアコン」で始まる | "エアコン*" | E2 & "*" | エアコン、エアコンフィルター |
「エアコン」で終わる | "*エアコン" | "*" & E2 | エアコン、マルチエアコン、業務用エアコン |
「エアコン」を含む | "*エアコン*" | "*" & E2 & "*" | エアコン、マルチエアコン、業務用エアコン、エアコンフィルター、マルチエアコン室外機 |
「エアコン」を含まない | "<>*エアコン*" | "<>*" & E2 & "*" | 室外機、配管化粧カバー |
ワイルドカードの種類と使用例
ワイルドカードには、「*」のほかにも下表の種類があります。いずれも使用するときは半角で入力してください。「~」(チルダ)は、一般的なキーボードでは、半角英数モードで[Shift]キーを押しながら[^]キー(ひらがなの「へ」のキー)を押すと入力できます。
ワイルドカード | 説明 |
---|---|
*(アスタリスク) | 0文字以上の任意の文字列 |
?(クエスチョンマーク) | 任意の1文字 |
~(チルダ) | 「*」「?」の前に付けて「*」「?」を検索 |
文字数制限のない「*」と1文字を表す「?」を組み合わせることで、さまざまな条件を指定できます。例えば、「?*」は「1文字以上の任意の文字列」、「??*」は「2文字以上の任意の文字列」を表します。
下表は、ワイルドカード「*」と「?」を使用して、8つの苗字
谷, 谷岡, 谷川原, 森谷, 加賀谷, 天王寺谷, 長谷部, 長谷川
を検索した場合の例です。
使用例 | 意味 | 該当データ |
---|---|---|
"*谷*" | 「谷」を含む | 8件 谷, 谷岡, 谷川原, 森谷, 加賀谷, 天王寺谷, 長谷部, 長谷川 |
"?谷?" | 1文字+「谷」+1文字 | 2件 長谷部, 長谷川 |
"?谷*" | 1文字+「谷」+0文字以上 | 3件 森谷, 長谷部, 長谷川 |
"谷*" | 「谷」で始まる | 3件 谷, 谷岡, 谷川原(1文字の「谷」はヒットする) |
"谷?" | 「谷」+1文字 | 1件 谷岡 |
"谷?*" | 「谷」+1文字以上 | 2件 谷岡, 谷川原 |
"*谷" | 「谷」で終わる | 4件 谷, 森谷, 加賀谷, 天王寺谷(1文字の「谷」はヒットする) |
"?谷" | 1文字+「谷」 | 1件 森谷 |
"?*谷" | 1文字以上+「谷」 | 3件 森谷, 加賀谷, 天王寺谷 |
"??*谷" | 2文字以上+「谷」 | 2件 加賀谷, 天王寺谷 |
「~」は「*」「?」を検索したいときに使用します。
使用例 | 説明 |
---|---|
" ~*" | 「*」を検索する |
"~?" | 「?」を検索する |
" *~**" | 「*」を含む文字列を検索する |
"*~?*" | 「?」を含む文字列を検索する |