条件の合致する数値のみを選択的に集計できるSUMIF系関数の使い方を実用的に解説します。
特に、部分一致や日付の指定方法などはよく使うものだと思いますが、いざ記述するとなるとふと迷われたことはないでしょうか。
基礎的な内容から順に解説していきますのでぜひご一読ください。
なお、SUMIFSはExcel2007から加わった関数で、SUMIFが条件を1セットしか指定できないのに対して、SUMIFSは条件を1~127セットまで指定できます。
つまり、SUMIFSは機能的にSUMIFの完全上位互換になる関数です。
すでにExcel2007のリリースから10年以上も経過し、Excel2007のサポートも終了していることを考えると、SUMIFSはもうじゅうぶん普及したと見て良いのではないでしょうか。
Excel2003を未だに使用されている方とファイルを共有するような特別な事情がない限り、SUMIF系関数はSUMIFSだけを使えばいいと思います。
一応、このページでは「SUMIF:基礎」から順にレベルを上げて解説しています。
いきなりSUMIFSの使用例を読んで理解ができなかった場合は、一度SUMIFに戻って順に読んでみてください。
構成確認
=SUMIF(検索範囲,検索条件,合計範囲)
=SUMIFS(合計範囲,検索範囲1,検索条件1,検索範囲2,検索条件2,…)
冒頭に記載したとおり、SUMIFは集計条件(検索範囲と検索条件)を1セットしか指定できないのに対し、SUMIFSでは最大127セットの集計条件を指定可能です。
その他の違いとしては、合計範囲の指定場所が、SUMIFは末尾、SUMIFSが先頭になっています。
それ以外の考え方(集計条件の指定方法)は同じです。
使用例
SUMIF:基礎
表の左側の販売記録から、右側の集計欄(赤枠部分)に品目ごとの売上の合計を表示します。
一応、最も基本的な例として、品目別に数式を個別入力する場合は次の数式で算出できます。
りんご:=SUMIF(C5:C13,”りんご*”,D5:D13)
みかん:=SUMIF(C5:C13,”みかん”,D5:D13)
みかん:=SUMIF(C5:C13,”ばなな”,D5:D13)
各品目とも、「C5:C13」で品目名の記載された検索範囲を指定し、次に検索条件である品目名を””で囲って文字列指定し、最後に合計範囲として売上欄「D5:D13」を指定しています
りんごの後の「*」はワイルドカード※といって、条件の部分指定を実現するための指定方法です。
この指定によって、「りんご(袋)」や「りんご(個別)」のように、「りんご」と完全一致していない検索項目に対しても、「りんご」の部分のみが一致していれば集計対象とする数式となります。
もちろん、みかんやばななの後に「*」を付けても特に支障はありません。
個別に数式を入力するのは最も基本的な例として記載しましたが、Excelの機能をうまく使っているとは言えません。
次の項目ではもう少しスマートな方法を紹介します。
SUMIF:通常
この表の場合は、集計欄(赤枠)の一番上のG5セル(りんごの集計欄)に数式を入力して、オートフィルで、みかん、ばななの集計欄にも数式を適用するのが通常です。
個別に入力するよりはるかに効率的ですし、集計項目が増えれば個別入力で対応するのは難しくなります。
そして、入力する数式は次のとおりです。
=SUMIF($C$5:$C$13,$F5&”*”,$D$5:$D$13)
- 条件の検索範囲は「$C$5:$C$13」のように絶対参照で指定
- 条件(品目)はセルの値を利用するため「$F5&”*”」と指定
- 「$F5&”*”」の行部分は相対参照で指定
- 合計範囲も「$D$5:$D$13」のように絶対参照で指定
上にも記載したとおり、G5セル(りんごの集計欄)に入力した数式をオートフィルでG6・G7セル(みかん・ばなな)にもコピーすることを前提としています。
そのため、検索範囲である「$C$5:$C$13」と,合計範囲である「$D$5:$D$13」はオートフィルで指定範囲(行番号)がずれないよう絶対参照で指定します。
そして検索条件はセル番地の「$F5&”*”」で指定します。
検索条件の品目はF列のセルの値を利用するため、オートフィルで参照先が変化するようセル番地(行部分)を相対参照(複合参照)で指定します。(「”りんご”&”*”」のように文字列を指定するとオートフィルによる数式コピーができなくなります。)
後半の「&”*”」は前段でも記載しましたが、ワイルドカードといって条件の部分指定を実現するための指定方法です。
この指定によって、「りんご(袋)」や「りんご(個別)」のように、「りんご」と完全一致していない検索項目に対しても、「りんご」の部分のみが一致していれば集計対象とする数式となります。
なお、前段では”りんご*”と記載しましたが、セル値を利用する場合は「セル番地&”*”」というように記述します。
ちなみに、「みかん」や「ばなな」には、りんごのような「(袋)・(個別)」などの余計なものは付いていないので、本来はワイルドカードを付ける必要はありませんが、この例ではオートフィルで数式を適用する関係上、両方をカバーするために付けています。
SUMIFS
こちらも前段のSUMIFの解説同様、集計欄(赤枠)の一番上のG5セル(りんごの集計欄)に数式を入力して、オートフィルで、みかん、ばななの集計欄にも数式を適用します。
まず、SUMIFSは合計範囲を一番最初に指定する構成になります。
それ以外の考え方は指定できる条件が複数になることを除いてSUMIFと変わりません。
そして、今回はSUMIFSの使用例なので集計条件を複数指定します。
具体的には、品目別だけでなく、集計期間を加えます。
集計期間の指定には青枠で囲われたセルに入力された日付を利用することとし、集計開始日と集計終了日の2セットが加わることになります。
つまり、入力する数式は次のとおりです。
=SUMIFS($D$5:$D$13,$C$5:$C$13,$F5&”*”,$B$5:$B$13,”>=”&$F$11,$B$5:$B$13,”<=”&$F$12)
- 合計範囲と、条件の検索範囲を絶対参照で指定
- 条件1(品目)はセルの値を利用するため「$F5&”*”」と指定
- 「$F5&”*”」の行部分は相対参照であることに注意
- 条件2(集計開始日)は4/2からのため「”>=”&$F$11」と指定
- 条件3(集計終了日)は4/4までのため「”<=”&$F$12」と指定
- 開始日と終了日の指定セルは絶対参照であることに注意
条件が増えた分、数式が長くなっていますが、追加条件となる集計期間以外の考え方はSUMIFと同じです。
この例のポイントは日付の指定方法にあります。そしてExcelでは日付の取り扱いは少し注意する必要があります。
詳しく解説すると長くなるため、とりあえずは日付欄の書式設定(セルの書式設定)が「文字列」だとエラーになる点だけ覚えておいてください。
Excelの日付はシリアル値と呼ばれる数値で認識されているため、期間を指定する場合は開始日と終了日の2セットを条件とし、不等号記号で条件を表現することができます。
具体的には、集計期間の開始日が4/2のため、条件には「”>=”&$F$11」(4/2以降)と指定し、
集計期間の最終日は4/4のため、条件には「”<=”&$F$12」(4/4以前)と指定します。
日付は数値です。日付の指定方法を機械的にでも覚えておけば、通常の数値の条件指定も同じ要領で指定できます。
まとめ
紹介した使用例は少ないですが、実務的に必要なポイントは盛り込んだつもりです。
これまでの内容の繰り返しにはなりますが、SUMIF系関数(配列系関数)に共通するポイントをあらためていくつか記載しておきます。
- 合計範囲と、条件の検索範囲は指定する行範囲(配列範囲)をすべて一致させておく。(今回の例では「$D$5:$D$13」と「$C$5:$C$13」など5行目から13行目という部分を一致させておかないとエラーになる。)
- 合計範囲と、条件の検索範囲の指定は基本的に絶対参照にしておく。(オートフィルなどでの数式コピーを前提とするため。)
- 条件の部分一致にはワイルドカードを使用する。(「”りんご*”」、「$F5&”*”」、「”*”&$F5&”*”」など)
- 日付を条件とする場合は日付のセルの書式設定が「文字列」になっていないか注意する。
これだけ押さえておけば、SUMIF系関数を使う上で困ることはほとんどないんじゃないかと思います。
あと、冒頭にも書いたとおり、SUMIFS関数があたりまえに使用できる現在においては、よほどの事情がない限り下位互換のSUMIF関数を使用するメリットはないと言えます。
一応はSUMIFについても紹介していますが、通常は条件追加のできるSUMIFSだけ使っておくのが無難です。
以上、参考にしていただけると幸いです。
コメント