• 締切済み

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

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

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

フィルタをかける目的は、選択して、該当する明細を見たいということがあります。ですので下記は目的に合致するかわからないのですが 本来の条件に戻り A列がa,B列が正の条件で、集計する =SUMPRODUCT((B2:B10>0)*(A2:A10="a")*(B2:B10)) で 結果 X y a 1 a 3 a -3 a 4 がフィルタ結果場合で 8です。 ーー 私は#1の方のおっしゃることが最もと思いますが。 ーー >マイナスの得意先がカウントされないようにするには はどこまで考えて質問しているのか良くわからない。 A  2 A  3 A -6 B  3 B  2 B -4 のときAは合計はー1、Bは合計1であるが、マイナスでないBだけ表示とか合計しろということなら、再質問してください。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。 >マイナスの得意先がカウントされないようにするには、 得意先ごとの合計なら、当然、マイナス売上げも計上するのではありませんか? 余計なお世話ですね。(^^; そのままで計算するには、補助列を設けるしかないのではないでしょうか? = If(C2<0,C2, "") というような数式を置いて、フィルハンドルでコピーをします。そうすると、数字として出てくるのは、マイナスのみになります。そして、やはり、表示しているものだけが出てきますね。 た上記の数式をF列だすれば、その集計を、SUBTOTAL関数で取ります。 =SUBTOTAL(2,F5:F50)  ←件数を出すなら、ここでの引数は、3 ではなくて、2 ですから、間違えないでください。 =SUBTOTAL(9,F5:F50) そして、C列の合計に(マイナス値を)足せばよいです。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

1)A列とC列にオートフィルタをかけて、A列は営業所、C列はオプションで「0より大きい」を条件で絞り込む 2)表示されている行の0以上のセルだけカウント、合計するユーザ定義関数を用いる。ちょっとお遊びで作ってみました。 以下のマクロをALT+F11でVBE画面を開き、左上のVBA Projectでシート名を右クリックし「挿入」→「標準モジュール」で表示される画面に貼り付けて下さい。マクロの実行はワークシート画面に戻って  =irrSubtotal(2,A5:A50)  =irrSubtotal(3,A5:A50)  =irrSubtotal(9,A5:A50) のいずれかの式を入力してみてください。COUNTA関数相当の計算方法は多少意図するものとは違うかもしれません。そのときは補足して下さい Function irrSubtotal(ByVal fnc As Integer, ByVal rng As Range) As Single 'この関数は0以上のセルを対象にします。 Dim r As Range For Each r In rng   If r.EntireRow.Hidden = False Then     Select Case fnc       Case Is = 2         If IsNumeric(r.Value) And r.Value >= 0 Then           irrSubtotal = irrSubtotal + 1         End If       Case Is = 3         If r.HasFormula Or r.Value <> "" Then           If IsNumeric(r.Value) And r.Value < 0 Then           Else             irrSubtotal = irrSubtotal + 1           End If         End If       Case Is = 9         If IsNumeric(r.Value) And r.Value >= 0 Then           irrSubtotal = irrSubtotal + r.Value         End If       Case Else         irrSubtotal = ""     End Select   End If Next r End Function

  • Kame_LABO
  • ベストアンサー率24% (30/122)
回答No.1

あらかじめ、マイナスを非表示にすればよいのでは?

関連するQ&A

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

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

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

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

  • エクセル オートフィルタで件数と割合

    A列に都道府県、B列に市区町村、C列に性別、D列に年齢・・・ でI列までデータが入っている表があります。 オートフィルタを使って、例えば A列で東京都を選び、B列で新宿区を選んだ場合、 東京都の件数に対する新宿区の件数割合が、同じシートのどこかのセルに表示できないでしょうか? データは2000件ほど。SUBTOTAL関数で、全体の件数に対する割合は出せたのですが、任意に選んだ項目に対する割合を出す方法が見つかりません。 データもI列までありますので、最初にオートフィルタで選ぶ列がA列とも限らず、また3列・4列選ぶ事もあります。 EXCEL2000です。簡単な関数なら使った事があります。どうかよろしくお願いします。

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

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

  • Excel 連番の関数(SUBTOTAL)のコピー方法

    今使用している下記のような表があるのですが、同じシート内に上下に合計表があります。 SUBTOTALを使ってオートフィルタでB列が a またはb を選んだ時でも A列が連番になるよう、C列の合計が絞り込み後もに計算させるように簡単ではありますが、こんな表があるのですが、 今後上下の表の一部データを入れ替えする作業もあり、普通にコピーをしていれかえさせたいのですが、うまくいかない為、 $絶対参照を変えたりと、いろいろ試しているのですが、うまくいきません。 知恵をお貸し頂きたく、質問させて頂きました。 可能であれば教えて頂きたいのですが、 どうかよろしくお願いします。 -------------------------------------------------------      A   B    C    A1=SUBTOTAL(3,$B$1:B1)  1   1   a    1 2   2   b    1     A2~A4=コピー 3   3   a    1 4   4   b    1 5   合計 aまたはb       C5=SUBTOTAL(3,C2:C4) 6-------------------------------------------------- 7   1    a    1    A7=SUBTOTAL(3,$B$7:B7) 8   2    b    1    A8~A10=コピー 9   3    a    1 10  4    b    1      11  合計  aまたはb      C11=SUBTOTAL(3,$B$7:B7) -------------------------------------------

  • エクセルでフィルタ後の条件付き個数のカウント

    いつもお世話になっております。 エクセル(2007)で作成した表をフィルタ後に条件に合致する個数をカウントする方法を教えてください。 (例) A列:名前 B列:出身県のデータがあったとします。 名前でフィルタをかけた後、出身県ごとのカウントを行いたいのですが、条件が無い場合のデータ個数はSUBTOTAL関数を使えばOKなのはわかります。 COUNTIFS関数を使うと、フィルタで隠れた行のデータまでカウントしていまいます。 ピボットを使う(使い方がイマイチわかりませんが・・・)という方法もあると思いますが、今回は同一シート無いに関数でカウントしたいのです。 どなたかよろしくお願いいたします。

  • オートフィルタ使用時にCOUNTIFをSUBTOTALのように使いたい。

    エクセルのシートでデータ管理をしようと思います。 その時便利なのが、オートフィルタですが、    SUBTOTAL関数「例:=SUBTOTAL(9,A1:A100)」 を設定した場合、フィルタを操作すると、必要な数値が返ってきます。ところがというか当然というか、    COUNTIF関数「例=COUNTIF(B1:B100,"○") ではだめですよね。どうにかして関連づける方法はないでしょうか。 または、その他に同様な効果が得られる方法はありませんか。

  • Excel初心者です【フィルター使用時の合計値】

    こんにちは。 Excel初心者です。 色々と質問のサイトも見てみましたが、うまく自分の表に当てはめて 利用することが出来なかった為、質問をさせてください。 添付の画像の様に、A列に月、B列に種別、C列に金額という表があります。 同じシート内の下部に、種別毎の合計数字を表示したいと思っています。 【1月】でフィルターをかけた時にC12~14に 【1月のA‥合計額、B‥合計額、C‥合計額】が表示されるようにしたいです。 【1月】でフィルターをかけて 【1月のすべての合計額】が表示されるように【SUBTOTAL】を 使う事はできたのですが、どうしても複数条件との組み合わせが理解できません>< ※フィルターでの合計額ではなく、条件数字【1】月を入力し 【SUMIFS】でそれぞれの欄に合計額を表示させるやり方はできたのですが、 フィルターをかけてそのまま出ればいいなと思います。 作る私も初心者ですが、利用するほかのメンバーも初心者の為 わかりやすい数式で出来ると助かります。 どうぞよろしくお願い致します。

  • エクセルのSUBTOTALで

    =SUBTOTAL(102,E7:E65) という関数がありますが行数が表によって変化します。 そこで E65 ではなくデータのある行のマイナス1を常に指定したい。 (最終行は合計なのでカウントしたくない) こんなときどうしたらいいでしょうか? VBAを使わないと無理でしょうか。 その場合のコードはどう記述すればいいでしょうか。 教えてください。

  • EXCELで cuontifやsubtotal以外の関数で0以外の数値をカウントできないでしょうか?

    今回は数値のカウントを教えてください。 下記のような場合、A列の1でフィルターをかけた場合 B列の0を除いた整数のセルの個数をカウントするには どのような関数がのぞましいでしょうか?   A  B    1  a  b 2  1  10 3  1  12   4  0   0   5  0   0 6  1  15 7  1   0   8  1   0 ・     ・      ・     ・ 11  1  12 countifだとフィルターが有効にならず、subtotalでは 「0以外」のオプションが有効になりません。 よろしくお願い致します。

専門家に質問してみよう