1
1

More than 1 year has passed since last update.

SUMIFS関数とSUBTOTAL関数を組み合わせて便利な表とグラフを作る

Posted at

皆さんは、エクセルのグラフを条件によって変化させたりしたいですか?ピボットグラフを使ったりBIツールを使ったりして作成することができますが、今回はエクセルの元データをそのまま利用して作成する方法を共有します。

元データを見ながら色々シミュレーションが出来るので結構便利です。

今回は以下のサンプルデータを使用します。
image.png
商品名と売上金額の合計が表示される集計表があります。ここの数字はSUMIFを使っています。
元データには売上日・売上No・商品名・売上金額が記載されております。
今回は、売上日・売上Noでフィルターをかけても、SUMIFの数値が変化するようにしたいと思います。

SUBTOTAL関数を使ってフィルターを判定しよう!!

元データに、以下の数式を入力が入った列を追加しました。

セルA11に=SUBTOTAL(3,B11:B11)を入れました。 
※11行以降はコピペしてください
image.png
SUBTOTAL関数の3はCOUNTA関数になります。これによって、
"行が表示されているときに1が出力され、非表示のときに0が出力されます。"

これによりフィルター検索し表示されている箇所のみ表示可能になります。

SUMIFをSUMIFSに変更してフィルターを反映させる

集計表のSUMIFの計算をSUMIFSにしてE3セルを以下のように変更します。(以降はコピペ)
image.png
=SUMIFS(E$11:E$29,$D$11:$D$29,$D3,$A$11:$A$29,1)
※絶対参照にしてからコピペしてください。

商品名が一致してかつ、SUBTOTAL表示用の列が1になっている明細のみが計算されるようになります。
集計表をグラフに反映させるとフィルターに合わせてグラフが変化します。
image.png

まるでPower BIやTableauを触っているかのような感覚だと思いませんか!?!?

おまけ

・最初はSUMIFの中にSUBTOTAL関数を入れてみましたが、これだとエラーになってしまいます。こんな式です⇒{=sumif(D11:D29,D3,subtotal(9,E11:E29))} なので今回のような方法を考えました。
・SUBTOTALの列はB列以降であればどのセルでもOKです。※A列だと循環参照になってしまいます。

・この方法ならエクセルが詳しくない方(ピボットテーブルすら分からない)でも色々シミュレーション出来るのではないでしょうか。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1