エクセルオートフィルターのデータ抽出処理について

このQ&Aのポイント
  • エクセルで作成した金銭出納帳のデータをオートフィルターで抽出する際に、抽出したデータの金額を集計し、最終行に合計額を表示させる処理についての質問です。
  • VBAマクロを試行錯誤していますが、うまく実装できません。どなたか知恵をいただけないでしょうか?
  • また、抽出が解除された際に、自動的に集計結果を消したいです。解決方法を教えてください。
回答を見る
  • ベストアンサー

エクセルのシート上でオートフィルターを使ってデータを抽出した際の処理について・・・

素人ゆえわかりづらい質問をどうかご勘弁ください。 エクセルで下記のような金銭出納帳を作ったのですが、オートフィルタでデータを抽出したときに、抽出したデータだけの金額の集計と、その総計を抽出後の一番最後の行の合計額のフィールドに自動的に出し、抽出を解除したときに消えるようにしたく、VBAマクロ組んで試行錯誤したのですが、うまくいきません。どなたか知恵を分けていただけませんか?   (データ抽出後)   A B C D E F G   E1=入金額 1  # # # # # # #  F1=出金額 2  # # # # 5 0 ?  G1=合計額 6  # # # # 5 0 ?  G2=元金 9  # # # # 5 0 ?       合計   ? オートフィルターで抽出した際自動的に?を求め、抽出を解除したときにそれを消したいのですが・・・

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

フィルターモードかどうかは、VBAでわかりますけど、それが切り替わった時にイベントが起こりませんので難しいですね。 抽出データの合計を =SUBTOTAL(9,セル範囲) としておいて 標準モジュールで下記のような関数を定義して Public Function isFilterMode() As Boolean isFilterMode = ActiveSheet.FilterMode End Function SUBTOTAL の設置したセルに条件付き書式で [数式が][=NOT(isFilterMode()) ] ([]は枠のイメージ) で条件が成立した時のフォントの色を白にする というのではどうでしょうか

ryouyuuki
質問者

お礼

非常に参考に参考になったのですが、随時データが増えていくということと、イベントを発生させるためのアクションのことを考えるとやはり無理があるように思え、他の手立てを考えます。 本当にありがとうございました。

関連するQ&A

  • オートフィルタ抽出データに連番をつけるマクロ

    オートフィルタで抽出したデータに連番をふりたいと思っています。このサイトで調べた結果、オートフィルタをかけてのオートフィルでの連番入力はできないと知りました。 現在しようとしているのは   A  B  C 1 クラス NO 氏名   2 1    ○△ 3 2    □× 4 1    ★♪ というデータがあり、項目にオートフィルタをかけている状態です。クラスを抽出した場合にそのクラスでの通し番号(連番)を付けたいのです。SUBTOTAL関数だと、連番が表示されるのはオートフィルタで抽出している間だけです。SUBTOTALでつけられた連番を、オートフィルタを解除しても残しておくにはどうしたらよいでしょうか。やはりコピー&ペーストしかないのでしょうか?似たような質問が多々ありますが、コピー&ペースト以外の方法をご存知の方、どうか教えて下さい。

  • EXCEL2000 オートフィルタで。。

    お世話になります EXCEL2000 です。 やりたいことは、例えば A列に(もちろん縦に)A,B,C,D,E,F,Gとデータが並んでいたとして、その中で、B,C,Dのデータだけを抽出したい場合はどうしたらいいのでしょう?? オートフィルタでいいでしょうか? データ→フィルタ→オートフィルタで、▼をクリックし、 オプション画面がありますが、[or]だと、2つのデータしか抽出できないようになっていて・・・(涙 しかたがないので、白い入力欄に、,(カンマ)で区切って B,C,Dというふうに入れてみましたが うまくいきませんでした。。。 どうすればいいでしょう?

  • オートフィルタの抽出速度を上げるには?

    エクセルで、データを抽出する際よく「データ」→オートフィルタ」を使うのですが、データ量が増えるにつれデータ抽出するのに5秒ぐらいかかるときがあります。 それが、別のエクセルファイルで、私がよく使うファイルよりもはるかに重いものがあるのですが、そのファイルで「オートフィルタ」を使ってもデータ抽出するのに5秒もかかりません。 もしかして、セル入力に「リスト」を使うのと「直接入力」とでオートフィルタの抽出速度の差が出てるのかなと思ったりもしたのですが、どうなんでしょうか? いろいろ調べたのですが、わからないので、アドバイスを下さい。

  • エクセルのオートフィルタについて

    質問させてください エクセルのオートフィルタ機能でデータを抽出したのですが、 他の表からも同様にオートフィルタ機能でデータを抽出しようとすると、 ツールバーのオートフィルタの所に既にチェックが入っていて、 そこをクリックしてしまうと、最初の表で抽出したデーターが元に戻ってしまいます。 オートフィルタは2つの表には適用できないのでしょうか? それとも、最初の表のオートフィルタを確定し、次の表に進むことは出来るのでしょうか? どなたか、ご指導よろしくお願い致します。

  • オートフィルタで抽出されたデータをうまく印刷したい

    Excel2003で作ったA1:AU1666にデータが入っている表があります。 オートフィルタで、ある項目が○のものだけを抽出し、その部分だけ印刷したいのですが、 印刷しようとすると細かく改ページがされてしまします。 青い線を動かそうとしても動かせません。 そこで、可視セルだけをコピーして他のシートにでも貼り付けようとしたのですが、 「結合されたセルの一部を変更することが出来ません」となりコピーできません。 結合を解除しようとも思ったのですが、結合されている部分とされていない部分がたくさんあり、一気に解除ができません。 オートフィルタを使った表の見えている部分だけをうまくページに収めることは出来ないのでしょうか?

  • Excel VBAでオートフィルタで抽出したデータの一部だけ貼り付けるには(第2弾)

    今週質問タイトルの件で回答いただき解決したのですが、更なる操作を希望したく質問させていただきました。内容は Sheet2にあるデータに複数条件でソートをかけ、ある数字(1から18まで)を入れたら、オートフィルタでE列のデータの選択部をSheet1のある部分に1行貼り付けるという作業です。以下のInputBoxに数字を入れるところからです。 (ソート後、どの数字を入れるか判断) ↓ InputBoxにある数字"○"(1から18まで)を入れる ↓ オートフィルタE列「"○-"で始まる」or「"-○"で終わる」 ↓ 抽出されたデータの右隣のF列(1列だけ)のデータ(上から17個分)を選択 ↓ 選択部をコピー ↓ Sheet1を選択。Sheet1の"K5"セルに行列を入れ替えて貼り付け というものでしたが、これはできました。ここから先です。 Sheet1のU5セルに先ほどインプットした数字"○"(1から18までのどれか)を入れる ↓ Sheet2にてオートフィルタE列「"○-"で始まる」or「"-○"で終わる」によって抽出されたデータの一番上の文字列から「"○-"」もしくは「"-○"」を除いて残った数字(○を除く1から18までの数字)をSheet1のW5セルに(先ほどのセルとは1個飛ばして)入れる ↓ 以下抽出されたデータの上から2番目の文字列を同様に操作し、1個飛ばしのセルY5に入れる。これがBC5セルまで続く というものです。難しいとは存じますが、どなたか教えていただけませんか? よろしくお願いいたします。

  • エクセルのオートフィルタで抽出できない

    エクセルのオートフィルタでデータを抽出しようとしていますが、あるレコード以降のデータからは条件にあっていても抽出されません。このあるレコードははっきり特定できません。 およそ4000以降くらいかと思われますが・・ この表の中に空白行はありません。 コンボボックスがありますが、何か関係ありますか? よろしくお願いします。

  • エクセルのオートフィルタ

    エクセルで住所録を作り、そのうちの東京都のデータだけオートフィルタで抽出し、それを別のシートにコピーして表を作りたいのですが、抽出はできても表にすることができません。オートフィルタで抽出したデータだけを一覧表にすることはできないのでしょうか?

  • オートフィルタで抽出したデータの切り取り

    エクセルのオートフィルタ機能でデータを抽出した時、 そのデータを切り取ると抽出したデータの最初の行から最後の行までが切り取られてしまいます。 (表示(抽出)されていないデータも一緒に切り取られてしまう) 抽出されたデータだけを切り取る方法はありませんか? コピーではなく切りとっていきたいのです。

  • オートフィルタでデータ抽出したものをコピー

    こんにちは。 excelでオートフィルタでデータを抽出したものをコピーし違うsheetに貼り付けると、欲しいデータだけでなくすべてのデータが貼り付いてしまいます。欲しいデータだけ貼り付けるやり方を教えてください。 よろしくお願いいたします。

専門家に質問してみよう