• ベストアンサー

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

  • エクセルのデータ集計について

    エクセルのデータ集計について質問です。現在windowsxp・office2007を使用しています。 エクセルの1ファイルに10シート、シート全てにデータが入力されており、このファイルが20弱あります。 ここから必要な数値を参照して、集計ファイルに集計しているのですが全て手作業で非効率的です。 何度か関数を使用して効率化を図ったのですが、どうも意図した結果は出ませんでした。(COUNTIF・COUNTIFS関数と、「統合」機能を使用しました) 調べてみたところ「マクロ」機能を使うと効率化できるかも、と思ったのですが、どのようなマクロを組めば良いのか、また、マクロ機能を使用しない場合どういった関数を使用すれば簡単にまとめられるのかご教授いただければと思います。

  • エクセルでの集計について教えてください。

    こんにちは。 エクセルでの集計について教えてください。 下のように日毎の売上をエクセルで管理しています。 日付     売上金額  売上件数 2008/04/01  100000   100 2008/04/02  120000   200 2008/04/03  150000   180 2008/04/04  200000   130 2008/04/05  100000   100   : 2008/05/01  200000   100 2008/05/02  500000   650 2008/05/03  140000   200 このまま1年間分ひとつのシートで管理しようと思っていて、 別シートに月ごとの管理シートを作りたいと思っています。 月ごとの集計をする場合、合計するのはsumif関数を 使用してできたのですが、平均値がなかなか出せません。 出したいデータはその月のその日までの平均値です。 例えば上の5月3日までの売上が記入してある場合は、 5月全体の平均ではなく5月3日までの平均です。 averageif関数を使用すればすぐ出ると思うのですが、 エクセル2000なのでありません。 なにか良い方法があったら教えてください。 よろしくお願いします。

  • ExcelのVBAで、グループ化以外を集計したい

    Excelで各シートのデータを集計する際に、 不要なデータを各シート内でグループ化して隠しています。 最終的にグループ化されていない各シートのデータを別のシートで集計したいのですが、 グループ化後に表示行全体を選択し、コピーペーストすると、 グループ化されているデータもコピーされてしまいます。 これをマクロを使って、表示されているデータのみ集計できるようにしたいのですが、 可能でしょうか? マクロの記録を使用しながら、コード書けるレベルで、 そもそも、グループ化のデータもついてきてしまうので、マクロの記録もできません。 ご教授お願いいたします。

  • Excelの関数を教えてください

    初めまして。よろしくお願いします。 関数を使って、以下のようなデータを作成することができれば、 その関数を教えてください。 Sheet1には次のように入力されています   A       B 1 日付      金額 2 2010/1/1 500 3 2010/2/5  300 4 2010/1/23 10000 5 2010/2/1  200 ・ ・ ・ A列に日付、B列に金額が入力されていて、行は決まっていません。 これをSheet2に集計したいのですが、B2~B13に関数を使ってできますか? Sheet2   A     B 1 月    金額 2 1月 3 2月 4 3月 ・ ・ ・ 13 12月 14 合計 Excelがわからなくてこまっています。詳しい方、ぜひ教えてください。 よろしくお願いします。

  • エクセルのマクロについて

    エクセルのマクロについて教えてください。 毎月、データをダウンロードし、VLOOKUP関数などを使って、 必要項目を入れ、ピポットテーブルで合計を出すという 作業をしています。マクロを使ったら、簡単にできるのでは ないかとやってみましたが、マクロで登録しても 毎月集計をするデータの件数が異なるため、 VLOOK関数で入力されるのが、そのマクロで登録したときの ものまでで、残りのセルが空欄になっていたり、 ピポットテーブルの集計は、データの範囲を選びなおしたり しないといけませんでした。 いい方法はないでしょうか。 マクロに作業を記録して、そのシートではなく、 ほかのファイルのシートで 実行する場合は、そのマクロを登録したときのファイル(シート)を 毎回開かなければならないのでしょうか。 基本的なことがわかっていません。 教えてください。

  • エクセルの集計について

    エクセルの集計について エクセルでのデータ集計でこのパターンが多いのですが、手作業でやると非常に稼動がかかりなんとか関数を使ってできないかと思いますが、考えても思い浮かびませんでした。 どなたかお知恵をお貸しください。 添付ファイルの「Sheet1」のA列の順番を入れ替えて「Sheet2」のようにしたいです。 (実際はもっと項目が多く、A列の項目も「Sheet1」と「Sheet2」は完全一致ではありません) できるかわかりませんが、「Sheet1」のA列から「Sheet2」のA列の項目を検索し、その行の数値を 「Sheet2」に入力するという関数があれば教えていただきたいです。 「Sheet1」は毎月データが変わるので、新しいデータをコピー&ペーストすれば「Sheet2」が完成するように関数を設定しておきたいです。 うまくやりたいことが説明できているか不安ですが、よろしくお願いします。

  • エクセルの関数を教えてください。

    エクセルの関数を教えてください。 sheet01に 《基本ナンバー》《グループナンバー》《入力日》が入力された基本データがあり、 sheet02に sheet01から抽出されたグループの代表データがあります。 sheet03において、 sheet02で選ばれたグループ代表データに、 sheet01のグループ番号内で一番古い入力日を抽出して、 貼り付けたいのです。なんという関数が良いですか? よろしくご教授のほど、お願い申し上げます。

  • エクセルの使い方

    エクセルの使い方で質問します。 シート1で集めたデーターをシート2で集計を取りたいと思います。 シート2では一部でしか入力されていないのですが、シート1で入力すれば自動でシート2に入力する方法はありますか? 関数やマクロを使えばよろしいのでしょうか?

  • エクセル 月ごとに集計する

    日付、顧客名、各顧客の合計金額に分かれているシートがあります。 各月ごとの合計と、件数を簡単に表示する方法を教えてください。 また、データとしては、日付、顧客名が、月ごとに表示され、その合計金額と 件数として表示されるようにしたいです。 エクセル初心者です。よろしくお願いします。 ピポット、集計など考えましたが、いまひとつわかりません。

  • エクセルの集計について

    エクセルの集計について エクセルでのデータ集計でこのパターンが多いのですが、手作業でやると非常に稼動がかかりなんとか関数を使ってできないかと思いますが、考えても思い浮かびませんでした。 どなたかお知恵をお貸しください。 添付ファイルの「Sheet1」のA列の順番を入れ替えて「Sheet2」のようにしたいです。 (実際はもっと項目が多く、A列の項目も「Sheet1」と「Sheet2」は完全一致ではありません) できるかわかりませんが、「Sheet1」のA列から「Sheet2」のA列の項目を検索し、その行の数値を 「Sheet2」に入力するという関数があれば教えていただきたいです。 「Sheet1」は毎月データが変わるので、新しいデータをコピー&ペーストすれば「Sheet2」が完成するように関数を設定しておきたいです。 添付ファイルが1つしか設定できないようなので、「Sheet1」「Sheet2」を仮想的に1つのシートにさせていただきました。 うまくやりたいことが説明できているか不安ですが、よろしくお願いします。

専門家に質問してみよう