• ベストアンサー

エクセル SUBTOTALとSUMIFの組み合わせ

条件付きで、フィルター時の合計を返したいとき、どのような数式を作ればいいのでしょうか? 現在、SUMIFS関数で、フィルターなしの状態の結果は出せているのですが、 フィルター時にも、それを反映して、返させたいと考えています。 例えば、A列に合計したいデータがあるとき、(1行目が項目) =SUBTOTAL(9,A2:A100) と入力すると、フィルター時でも合計を返してくれます。 ここにSUMIFS関数を組み合わせるには、どうすればよいのでしょうか? 宜しくお願いいたします。 バージョンは、エクセル2013RTです。

質問者が選んだベストアンサー

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.5

ANo.1です。 作業列を使いましょう。 添付の図ではE列を作業列として使用しています。 E2セルには↓の式を入れて下にコピーしてあります =SUBTOTAL(103,A2) これで、E列にはフィルタによって非表示されたかA列が空の行は0、フィルタで表示とされた行には1が入ることになります。 後はSUMIFSの条件に、E列の値=1である事を加ええれば良いでしょう。 =SUMIFS($D$2:$D$100,E2:E100,1,$B$2:$B$100,"XXX",$C$2:$C$100,"YYY")

kenthehg
質問者

お礼

SUBTOTAL(103, の使い方を初めて知りました。勉強になります。 大変使いやすい方法を教えて頂き、ありがとうございました。 また、機会がございましたら、ご教授お願い足します。

その他の回答 (4)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.4

>2、私が作成していた、フィルター前の数式は以下のような形で、 =SUMIFS($D$2:$D$100,$B$2:$B$100,"●",$C$2:$C$100,"△") もしこの数式でフィルタしない場合の集計値が表示できているなら、私の提示した数式をそのままコピー貼り付けすれば、A列でフィルタしたデータだけのSUMIFS関数に該当する数字が表示されるはずです。 うまくいかないとは具体的にどのような数字が返ってくるのでしょうか?

kenthehg
質問者

お礼

私の●△部分の記入方法に勘違いがございました。申し訳ございません。 無事、きれいに返すことが出来ました。 本当に助かりました。ありがとうございます。 また機会がございましたら、ご教授お願いいたします。

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.3

「何かの条件」で絞り込まれている状態で、C列に「a」と記入されているA列の数値のSUMIF: =SUMPRODUCT((C2:C100="a")*SUBTOTAL(2,INDIRECT("A"&ROW(A2:A100)))*A2:A100)

kenthehg
質問者

お礼

分かりやすい解説ありがとうございます。 無事に返すことができました。 大変勉強になりました。 また機会がございましたら、ご教授お願いいたします。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

SUMIFS関数の具体例が提示されていないので、回答しにくいのですが、たとえばB列に●、C列に△が入力されていることが集計条件でD列に集計対象の数字が入力されているなら、以下のような数式で上記の条件下でフィルタしたデータだけを対象としたD列の合計が出せます。 =SUMPRODUCT((SUBTOTAL(3,INDIRECT("a"&ROW($2:$100))))*($B$2:$B$100="●")*($C$2:$C$100="△"),$D$2:$D$100)

kenthehg
質問者

補足

説明不足で申し訳ありません。 教えて頂きました、数式でうまく返すことができず、今一度アドバイスを頂いてもよろしいでしょうか? =SUMPRODUCT((SUBTOTAL(3,INDIRECT("a"&ROW($2:$100))))*($B$2:$B$100="●")*($C$2:$C$100="△"),$D$2:$D$100) 1、かっことじの場所はこのままで、大丈夫なのでしょうか? 2、私が作成していた、フィルター前の数式は以下のような形で、 =SUMIFS($D$2:$D$100,$B$2:$B$100,"●",$C$2:$C$100,"△") 後半部分は、「,」で区切られているものを「=」に変換するような形でかまわないのでしょうか? また、以下のようなデータを扱っています。 A列にSUMIFS関数に入れずにフィルターで操作したいデータ(例:支店名) B列とC列にSUMIFS関数で絞るデータ(例:シリーズ名、商品名) D列に合計したいデータ(例:金額) よろしければご回答お待ちしております。

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

単に、SUMIFSの検索条件にフィルターの条件を加えるだけで良いのでは? 質問の意味を勘違いしているかも知れませんので、具体例でも挙げて頂ければもう少しお望みに近い回答が出来るかと思います。

kenthehg
質問者

補足

ありがとうございます。説明不足で申し訳ございません。 SUMIFSに加えても良いのですが、その対象データの種類が30以上ございまして、ここだけフィルターで操作したいと考えています。 以下のような形です。 A列にSUMIFS関数に入れずにフィルターで操作したいデータ(例:支店名) B列とC列にSUMIFS関数で絞るデータ(例:シリーズ名、商品名) D列に合計したいデータ(例:金額) 作成しているSUMIFS関数が、 =SUMIFS($D$2:$D$100,$B$2:$B$100,"XXX",$C$2:$C$100,"YYY") ここから、フィルター時にも対応できる数式を作成したいと考えております。

関連するQ&A

  • エクセルでフィルター結果をSUBTOTALする

    エクセル2010で、フィルターの結果をSUBTOTAL関数でB1セルに表示したとして、その横のセルA1セルにフィルターした項目を表示させたいのですが。 例えばSUBTOTALした「合計金額」が何の項目かを表示させないと分かりにくいので何か方法があれば教えてください。 フィルターオプション以外の方法でお願いします。

  • エクセルでSUBTOTALとSUMIFを組み合わせられますか?

    エクセル関数でSUBTOTALとSUMIFを組み合わせたいです。 例えば八百屋さんでの集計で、 ある期間の野菜別の合計とさらに任意の期間の合計をだします。 A列は野菜の名前が入っています。 B列は値段が入っています。 A きゅうり ピーマン なす かぼちゃ かぼちゃ なす もやし にんじん もやし 以下続く 隣のB列には値段が入っています。(野菜の値段は時期によって違います) SUMIFでセール期間の野菜ごとの合計をB列にだしました。 さらに、いくつかのセール期間の野菜ごとの合計もB列に出したいです。 わがままですが、列はふやせません。 どうしても重複して計算してしまい、うまくいきません。

  • エクセルのマクロ(SUBTOTAL関数)について。

    お世話になります。 エクセルのマクロ(SUBTOTAL関数)について ご指導願います。 (F37)から(F?)の一つ上の行までを小計する。 といった数式はどのようになるのでしょうか? F?は貼り付ける表によって最後Fの列番号が 変わりますので。 自分の作業予定では、下記マクロを登録したいの ですが。 表を貼り付ける。ここから作業する下記マクロ登録。 オートフィルタ機能を使う。 F?の列だけを、抽出し、そこに一つ上の行ま でを小計する数式を入れる。(←ここの数式が分かりません。) その値をJ27に反映させる。 どうすればいいのかお教え願いますでしょうか? よろしく御願い申し上げます。

  • エクセルでフィルターを使用時に使う式=SUBTOTAL(3,A5:A50)や=SUBTOTAL(9,A5:A50)

    エクセルでフィルター機能を使用して合計金額や件数を確認する式で=SUBTOTAL(3,A5:A50)や=SUBTOTAL(9,A5:A50)あります。 エクセルで作成した表でA列に営業所名、B列に得意先名、C列に売上げを入れた表があります。返品があった場合はC列にマイナスが発生します。 営業所毎にフィルターをかけた場合、マイナスの得意先がカウントされないようにするには、どのように数式を入れたらよいのでしょうか?

  • Excel関数:SUBTOTALとSUMIFを組み合わせる?

    下記のような場合の集計ができる関数を教えて下さい。 SUBTOTALとSUMIFを組み合わせようと思ったのですが、うまくいきませんでした。 よろしくお願いします。 <表の内容> ・セルA1:「ランク」 ・セルA2~A50:「A」or「B」or「C」を入力している ・セルB1:「金額」 ・セルB2~B50:各金額を入力している <集計方法> ・セルB51に「ランクが"A"」の金額合計を表示したい ・ただしオートフィルターを使って他の条件で抽出もおこなっているのでSUBTOTAL関数のように、表示されている行の値のみを合計したい

  • SUBTOTALが変わってしまいます。

    フィルタをした項目を合計するとSUBTOTALで集計されますが、フィルタ を解除すると、SUBTOTALで集計した合計が変わってしまいます。 フィルタを解除しても合計値を変えないにはどうしたらよいでしょうか?

  • SUBTOTAL関数と他の関数の組み合わせ

    仕事にて今とても困っているのでご助言いただけましたら幸いです。10数種類の商品(例えば本や電化製品等)とさらにその中の種類(例えば本の分類で漫画等)の在庫数をデータ入力しているのですが、オートフィルの状態で一つの項目(例えば本)を選ぶと全ての数値の合計数が出てしまう為SUBTOTAL関数を入れてみましたが、さらにその中での細かい商品(例えば本の分類で漫画等)在庫数を表示させたい場合で悩んでいます。素人考えでSUBTOTAL関数とCOUNTIFを組合わすことができれば表示されるような気がしたのですがなにぶん素人なものでどのような数式を入力すればいいのか分かりません。例 =SUBTOTAL(2,A1:A100)+COUNTIF(A1:A100,"漫画") このようにしてみたところ、COUNTIFのみ反映されてしまい、SUBTOTALのデータは無視されてしまうようです。何卒ご助言お願いします。

  • エクセル SUMIF関数

    SUMIFS関数で行き詰っています。ご教授願います。  A   B  C  D  ・・・AE AF AG・・・・・ 1    4月4月4月・・・・・・・・・・・・・5月・・・・←関数用 2    4/1 4/2 4/3・・・4/30 合計 5/1・・・6/30 3北海道 3  0  1 4東京  0  2  5 5東京  4  1  0 6神奈川 1  7  0 という表から下記の別表のように月毎・県毎の集計をしたいのですが、 現在は月毎に1列合計列を作成し、そこを使ってSUMIF関数で集計しています。 別表  A   B  C  D 1    4月 5月 6月 2北海道 4 3東京  12 4神奈川 8 合計行をなくし、SUMIFS関数で集計はできないものでしょうか? うまくいかない現在のSUMIFS関数は下記です。(恥ずかしい) SUMIFS(B3:XX6,A3:A6,別表A1,B1:XX1,別表B1) ※北海道 4月を集計 これでは「#VALUE!」です。 今まで通り月毎にSUMIFで集計するのは手間なので、どなたかご教授願います。

  • エクセル、オートフィルタで最後の列が消えてしまう

    エクセル2003を使っています。 オートフィルタと、ウィンドウ枠の固定を使っています。 1500行ほどあります。最後の行にはSUBTOTAL関数で合計値を出すようにしています。 その合計値の列の直前に30行ほど0だけの列を入れています。 その列を入れないとオートフィルタで絞り込んだときに合計値列が消えてしまいます。 ですが、印刷するときにその0の列が入ってしまいます。 30行の0の列を全て消しても、ちゃんと合計値列が表示されるようにするにはどうしたらよいでしょうか。

  • エクセルのSUBTOTALについて

    エクセルのSUBTOTALという関数についてなのですが、 例えば    A       B        C       D       E 1 2  日付   品名      担当者     金額     キャンセル 3  7/1    文具      伊藤       1,000         * 4  7/5    青果      工藤      1,230      5  8/3    雑貨      佐藤      1,500         * 6  8/11   文具      伊藤      5,200 7  9/13   衣料      鈴木      7,800 といった表で、オートフィルタで、8月分だったら8月分だけを絞れるようにしています。 D1のセルに、金額の合計が表示されるようにしたいとおもい、オートSUMで関数を入れたところ、 「=SUBTOTAL(9,D5:D200)」といった関数になって、フィルタをかけないときは全部の合計で、8月分だけ絞ると8月分だけの合計が表示されるようになりました。 そこで、キャンセルのところも集計して、同じような集計をしたいのです。最初はキャンセル発生の場合は「1」とでも入力することにして集計しようと思ったのですが、あいにくキャンセルの場合は「*」を入力する事になっていて、理由としては条件付書式で「*」を入力すると、その行の色が変わるように設定している為です。 この場合、E1のセルに、キャンセル数(8月分だけ絞った場合は8月分だけの集計)を表示させることは出来ますか????

専門家に質問してみよう