• ベストアンサー

EXCELで関数だけの集計を行いたい。

こんにちは。 エクセル(VER97以上)の関数のみを使用して(マクロを使わず) 以下のような集計を実現したいのですが可能でしょうか? シート1 A B 1 日付 内容 2 2001.11.27 データ1 3 2001.11.27 データ2 4 2001.11.27 データ3 5 2001.12.03 データ1 6 2001.12.03 データ2 7 2001.12.03 データ3 8 2001.12.15 データ1 9 2001.12.15 データ2 10 2001.12.15 データ3 11 2001.12.15 データ4 12 2001.12.15 データ5 13 2001.12.15 データ6 シート2 1 日付 件数 2 2001.11.27 3 3 2001.12.03 3 4 2001.12.15 6 5 総合計 12 (Tab区切りデータです) シート1に入力した日付データをシート2に日付でグループ化して データ件数を集計したいのですが関数で行おうとするとかなり難し そうですが、うまい関数を使えば出来そうな気もします。 実現可能でしょうか? よろしくお願いします。

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

  • ベストアンサー
  • 468
  • ベストアンサー率50% (11/22)
回答No.3

1番の方のピボットテーブルが変更も簡単に反映できるのでいいのではと思われます。 どうしても関数を使ってカウントを取ることが必要ならこんなのはどうでしょう! (もしや質問を勘違いしてとんちんかんな回答だったらごめんなさい) 最初にちょっとだけ手間がかかるかもしれませんが・・・ データが具体的にどんなものか分かりませんので簡単な例を使わせていただきます。    A   B   C 1 12/5   花  1000 2 12/3   雪  1500 3 12/5   太陽  1200 4 12/3   秋   200 5 12/5   青  5000  以上 シート1    A   B   C 1 12/3   3  7200 2 12/5   2  1700  以上 シート2        ↑   ↑       件数  合計 この場合簡単な関数を使うとするとB列は文字列なのでCOUNTAでC列はSUM。 (B列が数字ならCOUNTで!) 質問にグループ化とあったので範囲に名前をつけてグループ化を使ってみます。 まずデータ=フィルタ=オートフィルタでA列の日付で12/3を選び表示させます。 表示されたB列のデータを範囲選択します。 F5キーでジャンプのダイアログボックスを呼び出し   「セルの選択」から「可視セル」を選びチェックを入れます  (通常は見えてないセルも選択範囲に含まれ    例えばコピーした時見えてないセルまでコピーされてしまうので    見えてるセルだけ有効しする設定をここでします) 次に名前ボックスで任意の項目名を入力します(例えば12月3日Bとか) これで名前がつきました。 同じようにC列も例えば12月3日Cとかって名前をつけてあげます。 12/5も同じようにフィルタで表示させ名前をつけます。 シート2 のB1には =COUNTA('シート1'!12月3日B)       B2には =COUNTA('シート1'!12月5日B)     C1には =SUM('シート1'!12月3日C)       C2には =SUM('シート1'!12月5日C) データ内容により関数が変わってくるかもしれないですが 名前をつけて式を作ると割と便利なのではと思います。 簡単な関数で名前を使って件数を数えたり 合計したりとかできると思うのですがいかがなものでしょう?!     

marokun
質問者

お礼

お答えありがとうございました。 お教え頂いたような手順をすべて関数で内装するようなイメージで 考えていたのですが、無理でした。(^_^;) 結局、ピポットテーブルを使用して自動集計して、再計算のため フォームボタンにピポットテーブルの再計算マクロを貼り付ける ことにしました。出来ればマクロは使いたくなかったのですが。 おかげで、考えていたとおりの集計を実現できました。 ありがとうございました。 関数で実装しようとしたら、if文のネストは7階層までだし、関数の 長さも画面半分にもなると長すぎるって言われますし、エクセルの 関数ってあまり使えませんね。個人的見解ですが...

その他の回答 (2)

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.2

シート2(Sheet2)に件数計をだすならシート2のB2に  =COUNTIF(Sheet1!$A$2:$A$13,"="&Sheet2!A2) として、B3、B4にコピーします。 別法ですが、シート1のB2辺りを選択した状態で、データ→ピボットテーブル・・・ でウイザードに従って進んでいき、レイアウトで、行に『日付』をドラッグ&ドロップ、データに日付をドロップして『データの個数:日付』にすれば集計表ができます。(Excel2000です)

marokun
質問者

お礼

お答えありがとうございます。 範囲選択などの動作が煩雑になるので、 日付でのグループ化件数カウントをしたかったのですが 関数だけでは無理でした。 ありがとうございました。

  • telescope
  • ベストアンサー率54% (1069/1958)
回答No.1

Excel97から「データ」-「ピボットテーブル」が使えます。 Excel97とExcel2000では、若干操作が異なりますが、Excel2000では、 日付を「行のフィールド」に、内容を「データアイテム」にすれば、ご希望のようになると思います。

marokun
質問者

お礼

お答えありがとうございます。 やはり関数だけでは難しそうですね。 ピポットテーブルを使うことになりそうです。 ありがとうございました。

関連するQ&A