ここでは、Microsoft Excel の DCOUNTA 関数の書式および使用法について説明します。
説明
リストまたはデータベースのレコードで指定されたフィールド (列) を検索し、条件を満たすレコードの中の空白でないセルの個数を返します。
フィールドは省略可能な引数です。 フィールドを省略すると、データベースから条件を満たすレコードがすべて検索されます。
書式
DCOUNTA(データベース, フィールド, 検索条件)
DCOUNTA 関数の書式には、次の引数があります。
-
データベース 必ず指定します。 リストまたはデータベースを構成するセル範囲を指定します。 データベースは、行 (レコード) と列 (フィールド) にデータを関連付けたリストです。 リストの先頭の行には、各列の見出しが入力されている必要があります。
-
フィールド 省略可能です。 関数の中で使用する列を指定します。 フィールドには、半角の二重引用符 (") で囲んだ "樹齢" や "歩どまり" などのような文字列、またはリストでの列の位置を示す引用符なしの番号 (1 番目の列を示す場合は 1、2 番目の列を示す場合は 2) を指定します。
-
検索条件 必ず指定します。 指定した条件が設定されているセル範囲を指定します。 列見出しと検索条件を指定するセルが少なくとも 1 つずつ含まれている場合は、検索条件に任意のセル範囲を指定できます。
解説
-
セル範囲に検索条件を入力し、検索条件を表す引数として使用することができます。検索条件範囲には、列見出しとその下のセルがそれぞれ 1 つ以上含まれている必要があります。
たとえば、セル範囲 G1:G2 のセル G1 に "収入" という列見出し、セル G2 に 10,000 という数値が入力されている場合、このセル範囲に "年収額" という名前を定義して、データベース関数の検索条件の引数として指定することができます。
-
検索条件はワークシートの任意の範囲に入力することができますが、リストの最終行の次の行は使用しないでください。 リストにデータを追加すると、そのデータはリストの最終行の次の行に追加されます。 リストのすぐ下の行にデータが入力されていると、新しいデータを追加できません。
-
検索条件範囲がリストと重なり合っていないことを確認します。
-
データベース内の列全体に対して検索条件を指定するには、検索条件範囲の列見出しの下に空白行を 1 行挿入します。
使用例
次の表のサンプル データをコピーし、新しい Excel ワークシートのセル A1 に貼り付けます。 数式を選択して、F2 キーを押し、さらに Enter キーを押すと、結果が表示されます。 必要に応じて、列幅を調整してすべてのデータを表示してください。 次のサンプル データのいずれか Excel にコピーする場合は、左上隅のセルを含むこの表のすべてのセルを選択してください。
木 |
高さ |
樹齢 |
収穫高 |
利益 |
高さ |
="=りんご" |
>10 |
<16 |
|||
="=梨" |
|||||
木 |
高さ |
樹齢 |
収穫高 |
利益 |
|
りんご |
18 |
20 |
14 |
105.0 |
|
梨 |
12 |
12 |
10 |
96.0 |
|
さくらんぼ |
13 |
14 |
9 |
105.0 |
|
りんご |
14 |
15 |
10 |
75.0 |
|
梨 |
9 |
8 |
8 |
76.8 |
|
りんご |
8 |
9 |
6 |
45.0 |
|
数式 |
説明 |
計算結果 |
|||
=DCOUNTA(A4:E10,"利益",A1:F2) |
列 A に高さが 10 より高く 16 より低い "りんご" を含む行数 (1) をカウントします。 これら 3 つの条件を満たすのは 8 行のみです。 |
1 |
検索条件の例
-
セルに =文字列 を入力すると、数式として解釈され、計算が試行されます。 =文字列 を入力したときに計算が試行されないようにするには、次の書式を使用します。
=''= 入力内容 ''
入力内容には、検索する文字列または値を指定します。 次に例を示します。
セルに入力する内容 |
Excel による評価と表示 |
="=西脇" |
=西脇 |
="=3000" |
=3000 |
-
テキスト データの抽出では、大文字と小文字は区別されません。 ただし、特定の数式を使用すると、大文字と小文字を区別した検索を実行できます。
次のセクションでは、複雑な検索条件の例を紹介します。
1 つの列に複数の検索条件を指定して、いずれかに一致するデータを抽出する
論理式: (販売員 = "西脇" OR 販売員 = "吉田")
1 つの列に複数の検索条件を指定して、いずれかに一致するデータを抽出する場合、同じ列の個別の行に検索条件を入力します。
次のようにデータ範囲 (A6:C10) と検索条件 (B1:B3) を指定すると、販売員が "西脇" または "吉田" であるすべての行がカウントされます。
|
販売員 |
|
="=西脇" |
||
="=吉田" |
||
|
||
カテゴリ |
販売員 |
売上 |
飲料 |
須山 |
¥5,122 |
肉類 |
西脇 |
¥450 |
農産物 |
吉田 |
¥6,328 |
農産物 |
西脇 |
¥6,544 |
数式 |
説明 |
結果 |
'=DCOUNTA(A6:C10,2,B1:B3) |
2 行目と 3 行目の "販売員" の条件のいずれかを満たす A6:C10 内の行数 (3) をカウントします。 |
=DCOUNTA(A6:C10,2,B1:B3) |
複数の列に検索条件を指定して、すべてに一致するデータを抽出する
論理式: (種別 = "農産物" AND 売上 > 2000)
複数の列に検索条件を指定して、すべてに一致するデータを抽出する場合、同じ行に検索条件を入力します。
次のようにデータ範囲 (A6:C12) と検索条件範囲 (A1:C2) を指定すると、種別が "農産物" で売上が 2,000 より大きいすべての行がカウントされます。
カテゴリ |
販売員 |
売上 |
="=農産物" |
>2000 |
|
カテゴリ |
販売員 |
売上 |
飲料 |
須山 |
¥5,122 |
肉類 |
西脇 |
¥450 |
農産物 |
吉田 |
¥935 |
農産物 |
西脇 |
¥6,544 |
飲料 |
吉田 |
¥3,677 |
農産物 |
西脇 |
¥3,186 |
数式 |
説明 |
結果 |
'=DCOUNTA(A6:C12,,A1:C2) |
2 行目の条件 (="農産物" かつ >2000) を満たす A6:C12 内の行数 (2) をカウントします。 |
=DCOUNTA(A6:C12,,A1:C2) |
複数の列に検索条件を指定して、いずれかの条件に一致するデータを抽出する
論理式: (種別 = "農産物" OR 販売員 = "西脇")
複数の列に検索条件を指定して、いずれかの条件に一致するデータを抽出する場合、別々の行に検索条件を入力します。
次のようにデータ範囲 (A6:C10) と検索条件 (A1:B3) を指定すると、種別が "農産物" であるか、販売員が "西脇" であるすべての行が表示されます。
カテゴリ |
販売員 |
|
="=農産物" |
||
="=西脇" |
||
カテゴリ |
販売員 |
売上 |
飲料 |
須山 |
¥5,122 |
肉類 |
西脇 |
¥675 |
農産物 |
吉田 |
¥937 |
農産物 |
吉田 |
|
数式 |
説明 |
結果 |
'=DCOUNTA(A6:C10,"売上",A1:B3) |
"売上" フィールドが空でない、A1:C3 内の条件のいずれかを満たす A6:C10 内の行数 (2) をカウントします。 |
=DCOUNTA(A6:C10,"売上",A1:B3) |
複数の列を対象とする 2 セット以上の検索条件を指定して、一致するデータを抽出する
論理式: ( (販売員 = "西脇" AND 売上 >3000) OR (販売員 = "吉田" AND 売上 > 1500) )
複数の列を対象とする 2 セット以上の検索条件を指定して、一致するデータを抽出するには、個別の行に検索条件セットを入力します。
次のようにデータ範囲 (A6:C10) と検索条件範囲 (B1:C3) を指定すると、販売員が "西脇" で売上が 3,000 より大きい行、または、販売員が "吉田" で売上が 1,500 より大きい行がカウントされます。
カテゴリ |
販売員 |
売上 |
="=西脇" |
>3000 |
|
="=吉田" |
>1500 |
|
カテゴリ |
販売員 |
売上 |
飲料 |
須山 |
¥5,122 |
肉類 |
西脇 |
¥450 |
農産物 |
吉田 |
¥6,328 |
農産物 |
西脇 |
¥6,544 |
数式 |
説明 |
結果 |
'=DCOUNTA(A6:C10,,B1:C3) |
B1:C3 のすべての条件を満たす A6:C10 内の行数 (2) をカウントします。 |
=DCOUNTA(A6:C10,,B1:C3) |
1 つの列を対象とする 2 セット以上の検索条件を指定して、一致するデータを抽出する
論理式: ( (売上 > 6000 AND 売上 < 6500 ) OR (売上 < 500) )
1 つの列を対象とする 2 セット以上の検索条件を指定するには、複数の列に同じ列見出しを付けて指定します。
次のようにデータ範囲 (A6:C10) と検索条件 (C1:D3) を指定すると、売上が 6,000 ~ 6,500 である行、および、500 より小さい行がカウントされます。
カテゴリ |
販売員 |
売上 |
売上 |
>6000 |
<6500 |
||
<500 |
|||
カテゴリ |
販売員 |
売上 |
|
飲料 |
須山 |
¥5,122 |
|
肉類 |
西脇 |
¥450 |
|
農産物 |
吉田 |
¥6,328 |
|
農産物 |
西脇 |
¥6,544 |
|
数式 |
説明 |
結果 |
|
'=DCOUNTA(A6:C10,,C1:D3) |
行 2 の条件 (>6000 かつ <6500) または行 3 の条件 (<500) を満たす行数 (2) をカウントします。 |
=DCOUNTA(A6:C10,,C1:D3) |
一部の文字だけが一致している文字列を検索する
一部の文字だけが一致する文字列を検索するには、次のいずれかを行います。
-
特定の文字または文字列から始まる文字列値を含む行を検索するには、等号 (=) を使用せずにその文字または文字列を入力します。 たとえば、検索条件として「西」と入力すると、"西脇"、"西田"、"西崎" などが検索されます。
-
ワイルドカード文字を使用します。
比較検索条件として、次のワイルドカード文字を使用できます。
入力する文字列 |
検索対象 |
? (疑問符) |
任意の 1 文字 たとえば、「インターフェ?ス」と入力すると "インターフェイス" や "インターフェース" が検索されます。 |
* (アスタリスク) |
任意の数の文字 たとえば、「Win*」と入力すると "Win98" や "Win2000" が検索されます。 |
˜ (チルダ) (?、*、または ˜ の前に入力) |
疑問符、アスタリスク、またはチルダ たとえば、「fy91~?」と入力すると、 "fy91?" が検索されます |
次のようにデータ範囲 (A6:C10) と検索条件 (A1:B3) を指定すると、種別が "肉" で始まるか、販売員列の 2 文字目が "山" である行がカウントされます。
カテゴリ |
販売員 |
売上 |
肉 |
||
?u* |
||
カテゴリ |
販売員 |
売上 |
飲料 |
須山 |
¥5,122 |
肉類 |
西脇 |
¥450 |
農産物 |
吉田 |
¥6,328 |
農産物 |
西脇 |
¥6,544 |
数式 |
説明 |
結果 |
'=DCOUNTA(A6:C10,,A1:B3) |
A1:B3 の条件のいずれかを満たす行数 (3) をカウントします。 |
=DCOUNTA(A6:C10,,A1:B3) |
数式の計算結果を検索条件として指定する
数式の計算結果を検索条件として使用できます。 次の点に注意してください。
-
TRUE または FALSE に評価される数式しか使用できません。
-
数式は通常と同じように入力する必要があります。次のような式を入力することはできません。
=''= 入力内容 ''
-
列見出しを検索条件のラベルに指定することはできません。検索条件のラベルを指定しないか、セル範囲内の列見出しとは異なるラベル (以降の例では、"平均値評価" と "完全一致") を指定します。
数式で対セル参照や範囲名の代わりに列ラベルを使う場合、#NAME? のようなエラー値がExcel に表示されます。 もしくは、抽出条件を含むセル内に #VALUE! と表示されます。 このエラーはリスト範囲のフィルター処理の結果には影響しないため、無視してかまいません。
-
条件として使用する数式は、先頭行の対応するセルを相対参照する必要があります。
-
それ以外の参照には、絶対参照を使用します。
データ範囲のすべての値の平均より大きい値を抽出する
次のようにデータ範囲 (A6:C10) と検索条件範囲 (C1:C2) を指定すると、売上列が、すべての売上 (C7:C10) の平均を超えている行がカウントされます。 セル C4 内で平均が計算され、数式 =">"&C4 によって結果がセル C2 で組み合わされて使用する条件が作成されます。
売上 |
||
=CONCATENATE(">",C4) |
||
平均値評価 |
||
=AVERAGE(C7:C10) |
||
カテゴリ |
販売員 |
売上 |
飲料 |
須山 |
¥5,122 |
肉類 |
西脇 |
¥450 |
農産物 |
吉田 |
¥6,328 |
農産物 |
西脇 |
¥6,544 |
数式 |
説明 |
結果 |
'=DCOUNTA(A6:C10,,C1:C2) |
C1:C2 の条件 (>4611) を満たす行数 (3) をカウントします。 C2 の条件は、=">" を、C7:C10 から計算された平均値であるセル C4 と連結して作成されます。 |
=DCOUNTA(A6:C10,,C1:C2) |