Excelには、条件付きで合計を求められる関数として、DSUMという関数も用意されている。今回は、この関数の使い方を紹介していこう。関数DSUMの特長は、「合計するデータの条件」を手軽に変更できること。様々な条件指定に対応するため、関数SUMIFより使い勝手がよい場合もある。使い方を覚えておくとよいだろう。

関数DSUMの使い方

ここでは、以下の表を例にして関数DSUMの使い方を解説していく。この表は、都道府県の「面積」「人口」「人口密度」をまとめたもので、各都道府県を「地方」に分類したフィールド(D列)も用意されている。また、最終行には「日本全国」のデータが集計されている。

都道府県のデータをまとめた表(上部)

都道府県のデータをまとめた表(下部)

この表を例にして関数DSUMの使い方を説明していこう。関数DSUMを使うときは、「条件を指定する表」をあらかじめ作成しておく必要がある。今回の例では、「地方」「面積」「人口密度」といった3つの条件を指定できるように、以下のような表を作成した。

条件を指定する表

続いて、関数DSUMの入力を行う。この関数の書式は以下のようになっている。

◆関数DSUMの書式 =DSUM(データベース, フィールド, 検索条件)

  • 第1引数・・・対象となる表のセル範囲(見出しを含む)
  • 第2引数・・・合計する列(見出し)の指定
  • 第3引数・・・条件を指定するセル範囲

今回の例では、対象となる表のセル範囲は「B4:G51」。52行目は「日本全国」についてデータを集計した行なので、表のセル範囲には含めない。

続いて、第2引数に「数値を合計する列」を指定する。今回は「人口」の数値を合計するので、この指定は「"人口"」となる。このように、合計する列は「見出しの文字」を「"」(ダブルクォーテーション)で囲って記述すればよい。

そして最後に、「条件を指定する表」のセル範囲を第3引数に指定するので、今回は「=DSUM(B4:G51,"人口",I4:K5)」と入力する。

関数DSUMの入力

以上で、関数DSUMの入力は完了。現時点では条件が何も入力されていないため、関数DSUMの計算結果は、すべての都道府県の「人口」を合計した数値になる。

関数DSUMにより算出された合計

念のため、表の52行目で算出した「日本全国」の「人口」と比較するための数式も用意しておこう。「=(関数DSUMの計算結果) / (日本全国の人口)」という数式をK9セルに入力し、「パーセンテージ」の表示形式を指定する。もちろん、現時点では、この計算結果は100%と表示される。

「日本全国の人口」に対する割合を求める数式

それでは、条件を指定して合計を求める方法を紹介していこう。たとえば、東北地方についてのみ「人口」の合計を算出したい場合は、「条件を指定する表」の「地方」の列に「東北」と入力すればよい。

すると、「地方」(D列)の値が「東北」のデータについてのみ、「人口」の合計を算出できるようになる。今回の場合、その合計は「8,982,080」となり、全人口に占める割合は「7.1%」という結果になった。

地方を「東北」に限定して合計を求めた場合

もちろん、複数の条件を指定したり、比較演算式で条件を指定したりすることも可能だ。今度は、「関東」地方で、人口密度が「1000以上」の都道府県についてのみ、「人口」の合計を求めてみよう。

この場合は「条件を指定する表」を以下のように「>=1000」と変更すればよい。すると、新しい条件で関数DSUMの再計算が行われ、「36,126,355」という計算結果が表示される。

「関東」地方で人口密度「1000以上」の都道府県の人口の合計

このように「条件を指定する表」の値を変更するだけで、様々な条件下における「合計」を算出できることが関数DSUMの特長だ。もちろん、「地方」「面積」「人口密度」の3つの条件を同時に指定しても構わない。

そのほか、合計する列となる「人口」を条件にすることも可能。たとえば、「人口が300万人以上の都道府県についてのみ「人口」の合計を求めたい場合は、以下のように条件を指定すればよい。

人口が「300万人以上」の都道府県の合計

複数の条件を「または」で結ぶ場合は?

先ほど示した例のように、指定した各条件は「かつ」(and)で結ばれる仕組みになっている。一方、各条件を「または」(or)で結ぶ方法も用意されている。この場合は、「条件を指定する表」の入力欄を2行以上にすればよい。

具体的な例で示していこう。たとえば、「関東」地方と「近畿」地方について「人口」の合計を求める場合は、「条件を指定する表」を以下のように作成する。このとき、関数DSUMの第3引数を「I4:K6」に修正しておくのを忘れないこと。

「関東」地方と「近畿」地方の人口の合計

さらに、条件を追加することも可能だ。たとえば、「面積が3000未満」という条件を追加すると、以下のような計算結果が表示される。

「関東」地方で面積「3000未満」または「近畿」地方の人口の合計

この場合における条件の考え方は、

  • 「関東地方で面積3000未満」(東京、神奈川)

または

  • 「近畿地方」(三重、滋賀、京都、大阪、兵庫、奈良、和歌山)

となる。面積「3000未満」の条件は「関東」地方だけに追加される条件であり、「近畿」地方には影響を与えない点に注意。「近畿」地方にも面積「3000未満」の条件を追加したいときは、以下の図のように条件を記述する必要がある。

「関東地方で面積3000未満」または「近畿地方で面積3000未満」の条件指定

この場合の条件は、

  • 「関東地方で面積3000未満」(東京、神奈川)

または

  • 「近畿地方で面積3000未満」(大阪)

となり、結果として「東京」「神奈川」「大阪」の3都府県の「人口」が合計されることになる。

参考までに、「関東地方」または「面積3000未満」という条件を指定する場合の例も紹介しておこう。この場合は、以下の図のように条件を指定すればよい。

「関東地方」または「面積3000未満」の条件指定

結果として、関東地方(茨城、栃木、群馬、埼玉、千葉、東京、神奈川)と面積3000未満の大阪、香川、佐賀、沖縄の計11の都府県の「人口」を合計した数値が表示される。

関数DSUMは「複雑な条件指定」にも対応できる関数だが、複数の条件を指定するときは、その記述方法に十分に注意しなければならない。基本的には、

  • 同じ行に書いた条件は「かつ」(and)
  • 別の行に書いた条件は「または」(or)

で結ばれると考えればよい。