【Excel講師の仕事術】自己流のエクセル、卒業しませんか? この連載では、エクセルを操作するときの「ルール」を決めることで、ミスを減らして業務を効率化していく仕事術を解説します。

ルール 33
SUMIFS関数を使うならSUMIF関数は使わない
引数の紛らわしさをなくして数式のチェックを楽にする

条件を指定して合計を求める定番関数

SUMIF(サム・イフ)関数は、条件を指定して合計を求める代表的な関数です。そしてもう1つ、Excel 2007から登場したSUMIFS(サム・イフス)関数は、複数の条件を指定して合計を求める関数となります。それぞれの構文は以下の通りです。


=SUMIF(範囲,検索条件,合計範囲)


=SUMIFS(合計対象範囲,条件範囲1,条件1,条件範囲2,条件2,...)


もし、1つのワークシートでSUMIFS関数を使うシーンに遭遇したら、そのファイルではSUMIF関数を使わず、SUMIFS関数で統一することをルールとしてください。理由は2つあります。

  • SUMIFS関数は、SUMIF関数の機能を兼ねている
  • 引数の順序が異なるため、混在するとチェックが困難になる

具体的にどのようなことが起こるのか、両関数の使い方をおさらいしながら、以降で解説していきます。

以下の表は、あるカフェの売上一覧表です。ブレンドコーヒー、カフェオレ、カプチーノの3品を提供しており、サイズはそれぞれS/M/Lがあります。まずはSUMIF関数を使って、ブレンドコーヒーの売上合計を求めてみましょう。

売上一覧表の例

エクセルでSUMIFS関数とSUMIF関数は同時に使わない【Excel講師の仕事術】

SUMIF関数では、引数として「範囲」「検索条件」「合計範囲」を選択します。第1引数の範囲は検索の対象とする範囲のことで、この例では[商品]列となります。検索条件は「ブレンドコーヒー」という文字列を含むセル、合計範囲は[売上]列です。

カフェオレ、カプチーノの売上合計もオートフィルで求めるときにセル範囲がずれないよう、範囲と合計範囲は絶対参照で指定します。結果、ブレンドコーヒーの売上合計を求める数式と引数のセル範囲は、以下のように表せます。

=SUMIF($E$5:$E$168,K7,$I$5:$I$168)

SUMIF関数の引数のセル範囲①

エクセルでSUMIFS関数とSUMIF関数は同時に使わない【Excel講師の仕事術】

この数式をオートフィルすれば全商品の売上合計を求められますが、「$」マークが8つも並び、とても読みにくくなってしまいました。また、範囲と合計範囲の末行以降にデータが追加されると、再度セル範囲を指定し直さなくてはならず、不便です。

実は、前述のSUMIF関数の数式は、あえて不適切なものを紹介しました。このように絶対参照で範囲を指定すると分かりやすさが損なわれる、という例を見せたかったためです。

SUMIF関数の範囲と合計範囲は「列単位」で指定するのがおすすめです。これはワークシートの列全体、以下の例でいえばE列・I列の全体を指定する、という意味です。数式がシンプルになるうえ、データの増減があっても自動計算されるため、一石二鳥です。

完成した数式をオートフィルでコピーすれば、カフェオレ、カプチーノの売上合計も同様に求めることができます。

=SUMIF(E:E,K7,I:I)

SUMIF関数の引数のセル範囲②

エクセルでSUMIFS関数とSUMIF関数は同時に使わない【Excel講師の仕事術】

SUMIF関数の結果

エクセルでSUMIFS関数とSUMIF関数は同時に使わない【Excel講師の仕事術】

SUMIFS関数は複数の条件を指定できる

SUMIF関数で商品別の売上合計を出すことができましたが、商品別×サイズ別での合計は出せません。2つ以上の条件で合計を算出できるSUMIFS関数の出番です。

SUMIFS関数には「合計対象範囲」「条件範囲」「条件」という引数があり、条件範囲と条件のペアを複数指定していく形になります。ブレンドコーヒーのSサイズの売上合計を求めるとして、合計対象範囲と条件範囲を列単位で指定すると、数式と引数のセル範囲は以下のようになります。

SUMIFS関数の引数のセル範囲

エクセルでSUMIFS関数とSUMIF関数は同時に使わない【Excel講師の仕事術】

SUMIFS関数の結果

エクセルでSUMIFS関数とSUMIF関数は同時に使わない【Excel講師の仕事術】

同様にオートフィルをして、各商品のSサイズの売上合計を出せました。SUMIF関数の結果とSUMIFS関数の結果をあわせて見ると、ブレンドコーヒーの14,400円のうち、Sサイズは6,900円だったと分かります。

同じ役割の引数が違う位置にある

SUMIF関数とSUMIFS関数をおさらいできたところで、2つの数式を見比べてみましょう。大きな違いは、合計を求める範囲を指定するための引数の位置です。

SUMIF関数では合計範囲が該当し、数式の最後で指定します。一方、SUMIFS関数では合計対象範囲が該当し、数式の最初で指定します。以下に示すように、まさに両極端の位置にあります。

SUMIF関数の数式

エクセルでSUMIFS関数とSUMIF関数は同時に使わない【Excel講師の仕事術】

SUMIFS関数の数式

エクセルでSUMIFS関数とSUMIF関数は同時に使わない【Excel講師の仕事術】

そのため、2つの関数が同一のワークシートやファイルの中に混在している場合、同じ法則性で数式をチェックすることができなくなり、作業速度に悪影響を及ぼします。この問題を解決するのが、本記事のルールというわけです。

実のところ、SUMIFS関数はSUMIF関数の機能を兼ねており、単一条件で使っても構いません。先ほどのSUMIFS関数の数式から、2つめの条件(Sサイズ)を指定する引数である「F:F,L15」を削除すると、ブレンドコーヒーすべての売上合計、つまりSUMIF関数の結果と一致します。

SUMIFS関数の数式の修正

エクセルでSUMIFS関数とSUMIF関数は同時に使わない【Excel講師の仕事術】

修正したSUMIFS関数の結果

エクセルでSUMIFS関数とSUMIF関数は同時に使わない【Excel講師の仕事術】

SUMIFS関数を1回でも使うのであれば、ほかに単一条件での合計を出したくてもSUMIF関数は使わず、SUMIFS関数に統一してチェックを楽にしましょう。筆者は二度手間が嫌なので、最初からSUMIFS関数を常に使うようにしています。

なお、職場内で共有するファイルでは、SUMIFS関数を使って集計をしていることを、ほかの人にもあらかじめ共有しておいてください。「なぜSUMIF関数を使わないのか?」と混乱を招くようではいけません。自分ひとりではなく、職場全体で楽できるようにすることを心がけてください。

まとめ
  • SUMIF関数とSUMIFS関数は混在させない
  • 最初からSUMIFS関数を使えば二度手間を防げる

これも大事!セル結合は列単位での指定の邪魔になる

セル範囲を列単位で指定するとき、その列の中に1つでも結合されたセルがあると、範囲を正しく指定できなくなります。SUMIF関数やSUMIFS関数に限らず、多くの関数が影響を受けるため、RULE 24で解説したように、セル結合はやはり非効率です。