SUMIFS関数で指定できる複数条件は「AND」。検索条件のいずれかを満たした値を「OR」で指定して合計するには、データベース関数の「DSUM」を使います。
DSUMの構成
DSUM(ディーサム)は表から条件に一致するデータを取り出して合計します。DATABASEの頭文字「D」を冠したデータベース関数の一つです。
データベース関数は「関数ライブラリ」に載っていないので、引数のダイアログを開く時は「関数の挿入」ボタンをクリックします。
「関数の挿入」が開いたら「関数の分類」ボックスの▼を押して下へスクロールし、「データベース」をクリックします。
「関数名」の一覧が「データベース」配下のものに切り替わるので、スクロールして「DSUM」を選択し、「OK」。
DSUM関数の引数ダイアログが開きます。
引数は「データベース」「フィールド」「条件」の3つ。
「データベース」はデータベース仕様で作られた表のこと。できればテーブル化しておくのが望ましいと思います。
この引数は列見出しも含めて表を指定します。
「フィールド」は表の列見出しのこと。集計するデータ範囲ではなく、集計する列の見出しのセルだけを指定します。
「条件」は値の検索条件です。これは別に「条件表」を作って指定します。
下の例は「30代女性の月間来店数」を求めるDSUM関数の引数で指定するそれぞれの範囲です。
関数の引数ダイアログでの指定は以下のようになります。
※「データベース」も「条件」も必ず列見出しまで含めて指定しましょう。これをうっかりしてエラーになるケースが多いようです。
数式は「=DSUM(A1:E11,E1,G1:I2)」です。
「条件表」の作り方と条件の指定方法
「条件表」とは検索条件を入力したセル範囲です。
「列見出し」と「条件」を表形式で並べる
条件表には条件を検索する元表の列(フィールド)と対応する「列見出し」を置きます。「性別」フィールドの値を条件にするなら同じ「性別」という列見出しを作り、「年齢」フィールドの値を条件にするなら同じ「年齢」という列見出しを作り、その下のセルに条件を入力します。同じ列見出しを複数並べることもできます。
「元表」と「条件表」の列見出しの文字は完全に一致している必要があります。
DSUM関数ではAND条件とOR条件のどちらも指定できますが、条件表の並べ方にルールがあります。
AND条件
指定した全ての条件に一致する値を取り出す「AND条件」は同じ行に並べます。
「30代女性」というAND条件を指定する場合は、「性別→女」「年齢→>=30」「年齢→<40」と3条件を横並びにします。
OR条件
指定した条件のどちらかが一致する値を取り出す「OR条件」は行をずらして並べます。
異なるフィールドでOR条件を指定する条件表
「5回以上のリピーターか、またはスタイリストを指名した顧客」というOR条件を指定します。「来店回数」という列見出しの下に「5回以上」と条件を入力、「指名料」という列見出しの下に「\500」という条件を行を1段ずらして入力します。
同一のフィールドでOR条件を指定する条件表
「カット、またはカラー」というOR条件の指定です。
「施術」という見出しの列に、「カット」「カラー」という条件を縦に並べます。
ANDとORの複合条件
AND条件とOR条件を組み合わせる例です。
「(AND)5回以上来店し、担当者「佐藤」を指名した顧客」(OR)または、「(AND)5回以上来店し、担当者「鈴木」を指名した顧客」
「(AND)佐藤が担当した来店5回以上の顧客」(OR)または、「(AND)担当者「佐藤」を指名した顧客」
- DSUM関数はデータベースから条件に一致するデータを取り出して合計する
- 関数ライブラリにはないので、「関数の挿入」から操作する
- 引数「データベース」と「条件(条件表)」は列見出しを含めて指定する
- 引数「フィールド」は列見出しそのものを指定。データは含めない
- 引数「条件」には検索条件を入力したセル範囲の「条件表」を作って指定する
- 条件表のAND条件は同じ行に並べる
- 条件表のOR条件は異なる行に並べる
- 条件表に同じ列見出しを複数並べて条件指定できる