SUMPRODUCT関数とLEFT関数などの文字列関数と組み合わせて一部条件に合ったデータを合計する方法

SUMPRODUCT関数とLEFT関数などの文字列関数と組み合わせて一部条件に合ったデータを合計する方法

前回SUMPRODUCT関数で複数条件に合ったデータを合計する方法について解説しました。

SUMPRODUCT関数で複数条件に合ったデータを合計する方法 | Excelを制する者は人生を制す ~No Excel No Life~

この合計を出す際の条件について、条件の範囲(配列)内にある「○で始まる」「○番目が○」「最後が○」などの一部の条件に合致したものだけを合計したい場合がありますね。

そんなときはLEFT関数などの文字列関数とSUMPRODUCT関数を組み合わせることで求めることが可能です。

今回はSUMPRODUCT関数とLEFT関数などの文字列関数と組み合わせて一部条件に合ったデータを合計する方法について解説していきます。

使用例

SUMPRODUCT関数+LEFT関数

今回のサンプルでは、年齢が20代のスタッフの給与合計を求めます。

合計するデータの条件である箇所、「年齢が20代」=年齢のデータの左から1文字目が「2」であることと読み替えることができます。

年齢のデータはB3:B7にありますので、数式に表すと「(LEFT(B3:B7,1)="2")」となります。

LEFT関数については以下記事をご参照ください。

LEFT関数で任意の文字列の左端から指定した文字数分の文字列を抽出する方法 | Excelを制する者は人生を制す ~No Excel No Life~

上記の条件部分をSUMPRODUCT関数内の最初に記述し、そのあとに"*"[アスタリスク]、最後に合計対象の範囲(今回は「給与」のF3:F7)を指定します。

結果、数式は「=SUMPRODUCT((LEFT(B3:B7,1)="2")*F3:F7)」となり、「340,000」という合計結果が返りました。

検索条件に応じて使用する文字列関数の例

  • ○で始まる:LEFT関数
  • ○番目が○:MID関数
  • 最後が○:RIGHT関数

代表的なものは以上の3種類です。

まとめ

SUMIF関数では一部条件に合ったデータを合計する場合は検索条件が数値だと合計できませんが、今回のSUMPRODUCT関数とLEFT関数などの文字列関数を組み合わせることで合計することが可能になります。

なお、SUMIF関数で文字情報が検索条件であればワイルドカードの利用で合計できます。

基本的にはSUMIF関数で問題ないですが、もし条件範囲の中の一部分を検索条件にしたい場合かつ条件範囲のデータが数値である場合は今回のテクニックをお試しください。