DSUM 関数
適用対象: Microsoft Excel 2010, Excel Web App, SharePoint Online for enterprises, SharePoint Online for professionals and small businesses , Excel 2007, Excel 2003
ここでは、Microsoft Excel の DSUM 関数の書式および使用法について説明します。
説明
リストまたはデータベースのレコードで指定されたフィールド (列) を検索し、条件を満たすレコードの合計を返します。
書式
DSUM(データベース, フィールド, 検索条件)
- データベース 必ず指定します。リストまたはデータベースを構成するセル範囲を指定します。データベースは、行 (レコード) と列 (フィールド) にデータを関連付けたリストです。リストの先頭の行には、各列の見出しが入力されている必要があります。
- フィールド 必ず指定します。関数の中で使用する列を指定します。フィールドには、半角の二重引用符 (") で囲んだ "樹齢" や "収穫高" などのような文字列、またはリストでの列の位置を示す、引用符なしの番号、たとえば、1 番目の列を示す場合は 1 を指定します。2 番目の列を示す場合は 2 を指定します。
- 検索条件 必ず指定します。指定した条件が設定されているセル範囲を指定します。列見出しと検索条件を指定するセルが少なくとも 1 つずつ含まれている場合は、検索条件に任意のセル範囲を指定できます。
解説
たとえば、セル範囲 G1:G2 のセル G1 に "収入" という列見出し、セル G2 に 10,000 という数値が入力されている場合、このセル範囲に "年収額" という名前を定義して、データベース関数の検索条件の引数として指定することができます。
- 検索条件はワークシートの任意の範囲に入力することができますが、リストの最終行の次の行は使用しないでください。リストにデータを追加すると、そのデータはリストの最終行の次の行に追加されます。リストのすぐ下の行にデータが入力されていると、新しいデータを追加できません。
- 検索条件範囲がリストと重なり合っていないことを確認します。
- データベース内の列全体に対して検索条件を指定するには、検索条件範囲の列見出しの下に空白行を 1 行挿入します。
使用例
使用例を新規のワークシートにコピーすると、計算結果を確認できます。
その方法は?
- Ctrl キーを押しらながら C キーを押します。
- 空のブックまたはワークシートを作成します。
- ワークシートでセル A1 を選択し、Ctrl キーを押しながら V キーを押します。Excel Web App を使用している場合は、使用例のセルごとにコピーと貼り付けを繰り返します。
検索条件の例
重要
- 文字列や値をセルに入力する際に、数式であることを示すために等号が使用されます。これにより、入力内容が Microsoft Excel によって自動的に評価されますが、このことが原因で、予期しない抽出結果が返される場合があります。テキストと値のいずれの場合でも検索条件が適切に適用されるようにするには、検索条件範囲の対応するセルに条件を次のような文字列式として入力します。
"入力内容" には、検索する文字列または値を指定します。次にその例を示します。
- テキスト データの抽出では、大文字と小文字は区別されません。ただし、特定の関数を使用することによって、大文字と小文字を区別した検索を実行できます。具体的な例については、「大文字と小文字を区別して文字列を抽出する」を参照してください。
1 つの列に複数の検索条件を指定して、いずれかに一致するデータを抽出する
論理式: (販売員 = "西脇" OR 販売員 = "吉田")
1 つの列に複数の検索条件を指定して、いずれかに一致するデータを抽出する場合、同じ列の個別の行に検索条件を入力します。
次のようにデータ範囲 (A6:C10) と検索条件 (B1:B3) を指定すると、販売員が "西脇" または "吉田" であるすべての行が表示されます (A8:C10)。
A | B | C | |
---|---|---|---|
1 | 種別 | 販売員 | 売上 |
2 | =西脇 | ||
3 | =吉田 | ||
4 | |||
5 | |||
6 | 種別 | 販売員 | 売上 |
7 | ジュース | 須山 | ¥5122 |
8 | 肉類 | 西脇 | ¥450 |
9 | ビール | 吉田 | ¥6328 |
10 | ビール | 西脇 | ¥6544 |
複数の列に検索条件を指定して、すべてに一致するデータを抽出する
論理式 : (種別 = "ビール" AND 売上 > 1000)
複数の列に検索条件を指定して、すべてに一致するデータを抽出する場合、同じ行に検索条件を入力します。
次のようにデータ範囲 (A6:C10) と検索条件範囲 (A1:C2) を指定すると、種別が "ビール" で売上が 1,000 より大きいすべての行が表示されます (A9:C10)。
A | B | C | |
---|---|---|---|
1 | 種別 | 販売員 | 売上 |
2 | =ビール | >1000 | |
3 | |||
4 | |||
5 | |||
6 | 種別 | 販売員 | 売上 |
7 | ジュース | 須山 | ¥5122 |
8 | 肉類 | 西脇 | ¥450 |
9 | ビール | 吉田 | ¥6328 |
10 | ビール | 西脇 | ¥6544 |
複数の列に検索条件を指定して、いずれかの条件に一致するデータを抽出する
論理式 : (種別 = "ビール" OR 販売員 = "西脇")
複数の列に検索条件を指定して、いずれかの条件に一致するデータを抽出する場合、別々の行に検索条件を入力します。
次のようにデータ範囲 (A6:C10) と検索条件 (A1:B3) を指定すると、種別が "ビール" であるか、販売員が "西脇" であるすべての行が表示されます (A8:C10)。
A | B | C | |
---|---|---|---|
1 | 種別 | 販売員 | 売上 |
2 | =ビール | ||
3 | =西脇 | ||
4 | |||
5 | |||
6 | 種別 | 販売員 | 売上 |
7 | ジュース | 須山 | ¥5122 |
8 | 肉類 | 西脇 | ¥450 |
9 | ビール | 吉田 | ¥6328 |
10 | ビール | 西脇 | ¥6544 |
複数の列を対象とする 2 セット以上の検索条件を指定して、一致するデータを抽出する
論理式: ( (販売員 = "西脇" AND 売上 >3000) OR (販売員 = "吉田" AND 売上 > 1500) )
複数の列を対象とする 2 セット以上の検索条件を指定して、一致するデータを抽出するには、個別の行に検索条件セットを入力します。
次のようにデータ範囲 (A6:C10) と検索条件範囲 (B1:C3) を指定すると、販売員が "西脇" で売上が 3,000 より大きい行、または、販売員が "吉田" で売上が 1,500 より大きい行が表示されます (A9:C10)。
A | B | C | |
---|---|---|---|
1 | 種別 | 販売員 | 売上 |
2 | =西脇 | >3000 | |
3 | =吉田 | >1500 | |
4 | |||
5 | |||
6 | 種別 | 販売員 | 売上 |
7 | ジュース | 須山 | ¥5122 |
8 | 肉類 | 西脇 | ¥450 |
9 | ビール | 吉田 | ¥6328 |
10 | ビール | 西脇 | ¥6544 |
1 つの列を対象とする 2 セット以上の検索条件を指定して、一致するデータを抽出する
論理式 : ( (売上 > 6000 AND 売上 < 6500 ) OR (売上 < 500) )
1 つの列を対象とする 2 セット以上の検索条件を指定するには、複数の列に同じ列見出しを付けて指定します。
次のようにデータ範囲 (A6:C10) と検索条件 (C1:D3) を指定すると、売上が 6,000 ~ 6,500 である行、および、500 より小さい行が表示されます (A8:C10)。
A | B | C | D | |
---|---|---|---|---|
1 | 種別 | 販売員 | 売上 | 売上 |
2 | >6000 | <6500 | ||
3 | <500 | |||
4 | ||||
5 | ||||
6 | 種別 | 販売員 | 売上 | |
7 | ジュース | 須山 | ¥5122 | |
8 | 肉類 | 西脇 | ¥450 | |
9 | ビール | 吉田 | ¥6328 | |
10 | ビール | 西脇 | ¥6544 |
一部の文字だけが一致している文字列を検索する
一部の文字だけが一致する文字列を検索するには、次のいずれかを行います。
- 特定の文字または文字列から始まる文字列値を含む行を検索するには、等号 (=) を使用せずにその文字または文字列を入力します。たとえば、検索条件として「西」と入力すると、"西脇"、"西田"、"西崎" などが検索されます。
- ワイルドカード文字を使用します。
入力する文字列 | 検索対象 |
---|---|
? (疑問符) | 任意の 1 文字 たとえば、「インターフェ?ス」と入力すると "インターフェイス" や "インターフェース" が検索されます。 |
* (アスタリスク) | 任意の数の文字 たとえば、「Win*」と入力すると "Win98" や "Win2000" が検索されます。 |
˜ (チルダ) (?、*、または ˜ の前に入力) | 疑問符、アスタリスク、またはチルダ たとえば、「fy91~?」と入力すると "fy91?" が検索されます。 |
次のようにデータ範囲 (A6:C10) と検索条件 (A1:B3) を指定すると、種別が "肉" で始まるか、販売員列の 2 文字目が "山" である行が表示されます (A7:C9)。
A | B | C | |
---|---|---|---|
1 | 種別 | 販売員 | 売上 |
2 | 肉 | ||
3 | =?山* | ||
4 | |||
5 | |||
6 | 種別 | 販売員 | 売上 |
7 | ジュース | 須山 | ¥5122 |
8 | 肉類 | 西脇 | ¥450 |
9 | ビール | 吉田 | ¥6328 |
10 | ビール | 西脇 | ¥6544 |
数式の計算結果を検索条件として指定する
数式の計算結果を検索条件として使用できます。次の点に注意してください。
数式には、相対セル参照や範囲名の代わりに列見出しを指定することができます。列見出しを使用すると、検索条件を入力したセルに "#NAME?"、"#VALUE" などのエラー値が表示されますが、このエラーはセル範囲の抽出結果には影響しないため、無視してかまいません。
以降のサブセクションでは、数式の結果を検索条件に用いる例を紹介しています。
データ範囲のすべての値の平均より大きい値を抽出する
次のようにデータ範囲 (A6:D10) と検索条件範囲 (D1:D2) を指定すると、売上列が、すべての売上 (C7:C10) の平均を超えている行が表示されます。数式の中で "C7" は、データ範囲における抽出列 (C 列) の先頭行 (7 行目) を参照しています。
A | B | C | D | |
---|---|---|---|---|
1 | 種別 | 販売員 | 売上 | 平均値評価 |
2 | =C7>AVERAGE($C$7:$C$10) | |||
3 | ||||
4 | ||||
5 | ||||
6 | 種別 | 販売員 | 売上 | |
7 | ジュース | 須山 | ¥5122 | |
8 | 肉類 | 西脇 | ¥450 | |
9 | ビール | 吉田 | ¥6328 | |
10 | ビール | 西脇 | ¥6544 |
大文字と小文字を区別して文字列を抽出する
次のようにデータ範囲 (A6:D10) と検索条件範囲 (D1:D2) を指定し、EXACT 関数を使用すると、大文字と小文字を区別した検索が実行され、種別列が "農産物" である行が表示されます (A10:C10)。数式の中で "A7" は、データ範囲における抽出列 (A 列) の先頭行 (7 行目) を参照しています。
- dsum関数のページへのリンク