【エクセル時短】は「少しでも早く仕事を終わらせたい!」というビジネスパーソンのみなさんに、Excelの作業効率をアップするワザをお届けする連載です。毎週木曜日更新。
過去の記事一覧はこちら【エクセル時短まとめ】
いきなりですが問題です。以下のようなExcelの表があるとき、ソフトドリンクだけの販売額の合計を求めるには、どうしますか?
この画面の下にも、ずっとデータが続いていると考えてください(クリックで拡大)。
SUM関数の引数として「ソフトドリンク」の「販売額」のセル範囲を1つずつ指定する......なんて方法は論外ですよね。フィルターで抽出→コピーするのも面倒ですし、条件を変えたいときにフィルターをやり直すのも手間がかかります。
そんなときに便利なのが「SUMIF」(サム・イフ)関数。【エクセル時短】第21回では、「SUM」関数からステップアップするための定番関数「SUMIF」について解説します。
範囲を指定してから条件を指定
SUMIF関数は、条件を満たすデータを合計します。構文は以下のとおりです。
SUMIF
(範囲, 検索条件, 合計範囲)
引数[範囲]に指定したセル範囲の中から[検索条件]に一致するデータを探して、[合計範囲]を合計します。
さっそく、ソフトドリンクだけの販売額の合計を求めてみます。
セルI3に「=SUMIF(C3:C128,"ソフトドリンク",F3:F128)」と入力します。
ソフトドリンクだけの販売額の合計が一瞬で求められました。
[範囲]として「分類」列を指定し、[検索条件]を「"」(ダブルクォーテーション)で囲んだ「"ソフトドリンク"」としました。[合計範囲]には「販売額」列を指定しています。
この例では[検索条件]を直接指定していますが、「ソフトドリンク」という文字列はセルH3に入力してあるので、
=SUMIF(C3:C128,H3,F3:F128)
のようにセル参照にしても、同じ結果が得られます。セルH3のデータを書き換えて条件を変えられるので便利です。
また、[検索条件]には日付や数値も指定できます。例えば、[日付]が「7月5日」の[販売額]を合計するなら、「=SUMIF(A3:A128,"=2017/7/5",F3:F128)」とします。[価格]が「500円以下」の[販売額]を合計するなら、「=SUMIF(D3:D128,"<=500",F3:F128)」とします。不等号は半角で入力してください。
あいまいな条件はワイルドカードで
今度はワインだけの販売額の合計を求めてみましょう。表の「分類」列に「ワイン」という項目はありませんが、「商品名」列のデータの一部に「ワイン」という単語が含まれています。
このような、あいまいな条件を指定したいときは「ワイルドカード」を使います。「*」や「?」です。「ワイン」を含むデータを検索したいときは、[検索条件]に「"*ワイン*"」と指定します。
ワイルドカードの「*」は「0文字以上の任意の文字列」、「?」は「任意の1文字」の意味になります。検索したい文字数が決まっているなら、文字数分「?」を入力して「"????茶"」のように指定します。
セルI4に「=SUMIF(B3:B128,"*ワイン*",F3:F128)」と入力します。ワイルドカード(*)によって「ワイン」を含むデータが検索され、販売額の合計が求められます。
いかがでしたか? 以下のリンクにあるSUMIF関数のリファレンスは、GoogleやYahoo!の検索からアクセスする人が多い、できるネットの人気記事の1つです。あわせて参照して、SUMIF関数をマスターしてください。