• ベストアンサー

オートフィルタで抽出した表の集計

はじめまして。さっそくですが質問させていただきます。 現在、以下のような表があるとします。 行列   A     B     C     1  日付    名前   金額 2 2006年10月  田中   \1000 3 2006年11月  佐藤   \200 4 2006年11月  田中   \500 5 2006年12月  鈴木   \820 6 2007年 1月  鈴木   \323 7 2007年 1月  田中   \750 ここで、A列にオートフィルタをかけて、表示されるセルのみの総合計はSUBTOTALで取れるのですが、さらにB列の人名ごとの合計を取る方法がわかりません。 例えば2006年11月のみを表示した場合、 行列  C    D 9  総合計= ¥700  ←これはSUBTOTAL(9,C1:C6)で解決 10   田中= ¥500 11   佐藤= ¥200 12   鈴木= ¥0 と、出るようにしたいのです。 オートフィルタをかけるのはA列の日付だけではなくD以降にもデータが入力されていてオートフィルタをかける場合があるとしますが人名は3つ(田中・佐藤・鈴木)のみです。 また、実際のデータはとても行数が多いので手作業で可視セルの人名ごとのトータルを毎回打つのは大変ですし、そのデータは多くの人が使うのでオートフィルタをかけるだけで、現在可視状態のセルの総合計・可視状態の田中の合計・可視状態の佐藤の合計・可視状態の鈴木の合計が一度に出るようにしたいのです。 自分としては自作関数を作成し、一応は求める結果が出るようにしたのですが、自作関数を使うとファイルを開く時に「マクロを有効にしますか?」と聞かれてしまうのが難点です。もっと簡単な方法があれば教えていただきたいです。何卒よろしくお願いします

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

  • ベストアンサー
回答No.2

オートフィルタというご希望からは外れますが、ピボットテーブルを 使用するのはダメですか? 可視状態と似た状況がチェックボックスをつける・外すで可能なので・・。 フィルタオプションを使用してデータ書き出しを行う先にSUM関数を 入れておくのも手かもしれません。

larie0000
質問者

お礼

回答ありがとうございます。 確かにビボットテーブルですと求める結果は出るのですが、その場合は元データの可視、不可視には変化がありませんよね。 それではどうしても困るというわけではないですが、エクセルに不慣れ(というかピボットテーブルをほとんど使ったことのない)人には現在可視状態のセルの総合計・可視状態の田中の合計・可視状態の佐藤の合計・可視状態の鈴木の合計が出たほうがわかりやすいと思うのです。 もうひとつの >フィルタオプションを使用してデータ書き出しを行う先にSUM関数を 入れておくのも手かもしれません。 というのはどういうことかちょっとわからなかったのですが、とりあえずは今のまま自作関数で結果を求めることとします。 どうもありがとうございました。

その他の回答 (1)

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

これはできないと思います。 他の方法でやるべきだと思います。 (1)SUNPRODUCTで2条件以上 (2)配列数式 (3)DSUM (4)もう一段第2条件フィルタをかます (5)2条件該当のコードを作りフィルタを行う ーー フィルタ中で見えている状態セルだけを対象にして、使える関数はないと思う。SUBTOTALが特別なんでしょう。できると言う回答が出れば 私の無知をさらすが、できるほうが面白いですね。 余り使い道はないでしょうし、使い分けが、ややこしいし、エクセルの仕組みも複雑化するでしょう。

larie0000
質問者

お礼

回答ありがとうございます。 やはり方法はないようですね。 あまり複雑な式をセルに設定するのは自分でもややこしくなってしまうのでこのまま自作関数を使う形にしておきます。 どうもありがとうございました。

関連するQ&A