• 締切済み

【Excel】マクロを使って、自動集計ができるようにしたいと思っています。

こんにちは。 宜しくお願い致します。 アクセスがあったデータをピポッドテーブルでまとめ、さらに集計結果を出したいと思っています。 ピポッドテーブルを作成するまではマクロの自動記録でどうにかなったのですが、その後の集計結果のところでとまどっています。 <データの現状> ※ピポッドテーブルで出したデータは、1・2行目が空白、3~5行目に項目名が入っており、6行目からデータが入っています。何行までデータが入っているかはその月によって異なり、行の一番最後はA列に「総計」と入力されています。 ※A~C列は項目名(日付や商品名など)が入っています。 D列以降は合計などが入っており、ここで基準として使いたい項目はすべて4行目に入っています。 列の数は項目によって増減します。 項目の一番最後は「総計」です。 マクロで集計したいのは次の作業です。 (1)「Sheet1」を全コピー→「Sheet2」に形式を選択して貼り付け→値貼り付け (2)貼り付けたシートで、D列以降、4行目の項目が「集計1」「集計2」「詳細集計」「総計」以外のものも列を表示しないにする ※D列から始まって、「集計1」の前の列までを表示しないにするのと、「集計1」の次の列から「集計2」の前の列までを表示しないにしたい。 例えば、H列に「集計1」・L列に「集計2」が入力されている場合は「D~G列」「I~K列」を表示しないにしたい。 (3)詳細集計の列を1列選択し、列を1行挿入。挿入した列4行目のセルに「合計」と入力。 (4)挿入した列のところに、6行目以降、A列に「総計」と入っている行まで数字のデータが入っているところ(A列で「総計」と表示されている行まで)は、「集計1」と「集計2」のセルの合計をそれぞれ表示し、枠線を入れる。 (5)一番先頭に1列挿入し、6行目から元A列の「総計」と表示されている前までの通し番号を入れる。 (6)「総計」の次の列の4行目に、「ゼロ数」と入力し、5行目に(3)で挿入した列、A列に「総計」と入っている1行前までの範囲で「0」表示があるセル数を表示。 (7)ゼロ数と入力したの次の列の4行目に「ゼロ率」と入力し、先に出した「ゼロ数」を(5)で入力した通し番号の一番最後の数で割った数を表示。 (8)入力終えた後はA1のセルを選択。 以上になります。 長いですが、どなたか教えてください。 宜しくお願い致します。

みんなの回答

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

ピボットテーブル利用後のシートのデータについて、シート、行、列 セルで、模擬実例でも挙げて、このセルの値がこうだから、ココとココをh集計するという風に文章も添えて、例示してください。 質問の長い文章を読者・回答者に読ませて、読解せよというのは、他人に甘えすぎと思う。 ーー 核心の課題だけを質問にのせ、それに回答してもらって、質問者で類推・応用して、質問者の実情の課題に直す、ことを訓練すること。 ーー 余分なことが相当書いてある。 例 初め5行ーー>不要   次の3行+その後数行ーー>        A列  B列  C列  D列   (第1行)日付 商品名 XXX  計数   (第6行)ーー -- ---   2345 ーー ーー ---   456 ・・・        (最下行は月により変動)

poyo17
質問者

補足

まとめてですいません。 いったん自分でやったのを貼り付けて、ここで質問し直させてもらいます。 ありがとうござしました。

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

ある程度マクロの自動記録が使用できるのでしたら、まずやりたいことを1つづつマクロ記録で記録して修正し、その上で不明なところを質問された方がよろしいかと。 この質問ではデータの種類や条件が不明ですし、何よりも禁止事項にある「丸投げ」に該当すると取られても仕方が無いと思います。

関連するQ&A

  • Excel2003の集計および印刷について

    いつもお世話になっております。 新年早々ですが、今回はExcelについて質問させてもらいます。 現在、とあるデータの集計を行い、印刷を行う方法を考えていますが、あまり詳しくないので困っています。 何かいい方法があればと思い投稿しました。 まずExcelファイルに「入力用シート」と「出力用シート」の二つのシートがあります。 「入力用シート」には、 C1セル、D1セル、E1セル、F1セル C2セル、E2セル、F2セル に表題や番号などを入力します。 また、下記のようにA1セルとB1セルから下へずっとデータを入力します。データ量は多いときは1000行ぐらいです。 例) 1000   5 1200   2 900    10 800    2 1000   1 2400   3 あとフォームのボタンを作りこれを押すと、「出力用シート」にC1,D1,…F2までのセルをそのままコピーし、A1、B1から下へ入力されているデータのみを集計し表示を行いたいと思ってます。 集計の条件はA列ごとに集計し降順で表示です。 結果として「出力用シート」には 以下のように表示したいと思ってます。 あいうえお かきくけこ 111111 222222 さしすせそ       333333 444444 2400   3 1200   2 1000   6 900   10 800    2 ですが、A列とB列に入力するデータが多くなった際、印刷すると右半分が白紙の状態で、できれば右半分にもと思ってます。つまり1枚に2ページ分印刷と言うことです。 データは1枚に30行ぐらいで左半分と右半分で60件ぐらい表示。 (文字を大きく表示させるため) それ以上になると2枚目に1枚目と同じように1行目2行目は1枚目と同じで印刷できればと。 例) -----1枚目----- あいうえお かきくけこ 111111 222222 さしすせそ       333333 444444 2400    3    440    2      1200    2    430    22 1000    6    415    9 900    10    409    2 800     2    399    8 500     1    395    5 450     3    393    2 -----2枚目----- あいうえお かきくけこ 111111 222222 さしすせそ       333333 444444 391    1     320    2 311    22 説明が長くなりましたが、何卒よろしくお願いします。

  • エクセルのデーター集計

    エクセルのデーター集計について教えて下さい。 データーを集計する為、エクセルの データー → 集計 でデーターを集計すると項目毎の金額の列の下に合計が表示され、総計が同じく金額の列の一番下に表示されるといった形だと思いますが、(下記のように) A  1000 A  1000 A  1000 計 3000 B  1000 B  1000 計 2000 C  1000 C  1000 C  1000 計 3000 総計8000 この計及び総計を隣の列にくるようにはできないのでしょうか?宜しくお願いします。

  • EXCEL2007 集計方法を教えて下さい。

    EXCEL2007 集計方法を教えて下さい。 sheet1は、商品の出荷データが入っています。 A列・・得意先コード、B列・・品番、C列・・出荷数 sheet2で集計します。 A2以降に商品コードが入力してあります。 A1に得意先コードを入力すれば、sheet1のA列を参照し、該当得意先の商品出荷数をsheet2のC列に集計したいのです。 (sheet1のデータは羅列です。 例えば、山本屋のりんご購入履歴が1行目や10行目21行目と入力されているイメージです。

  • マクロを使用した表において集計を自動表示する

    エクセルのマクロでABC集計表なるものを作成しています。ボタンを押す毎に下位に行が追加され表ができる形です。行を挿入する毎に右側の3列に設けたセルにA~C品の数量を記入し、その集計を各2行目のセル(色付きのセル)に表示できるようにしたいと考えています。例えばA品の集計をK6に”=SUM(k7:k7)”として、ボタンを押して下へセルを追加しますと、集計が正しくされず、計算式を確認すると”=SUM(k8:k8)”となっており、数列1のk7が固定されていません。 マクロ文を入れないとできないのでしょうか、ご教授下さい。よろしくお願いします。

  • 集計マクロ

    こんにちは。 早速ですが、例えばこんなカンジです。 [元データ(Sheet1)] [1] 鈴木| 佐藤| 山田|・・・ [2] 茶 | 水 |    | [3] 魚 |    | 酒 | [4]    | 肉 | 茶 | [5] 肉 | 茶 | 魚 | 上記のようなデータから↓↓↓ 1.行ごとに種類別に並べ替え 2.'=count(A2:D2)のような種類別の行集計列([数])を追加 3.[数]を基準に降順に並べ替え ↓↓↓ [集計データ(Sheet2)] [1] 鈴木| 佐藤| 山田|・・・| 数 [2] 茶 | 茶 | 茶 |・・・| 3 [3] 肉 | 肉 |    |・・・| 2 [4] 魚 |    | 魚 |・・・| 2 [5]    | 水 |    |・・・| 1 [6]    |    | 酒 |・・・| 1 お解かりいただけますでしょうか(・_・;)? 今までは作業列(商品名)を挿入し、[VLOOKUP]→[COUNT]→値貼付→並べ替え→不要な商品名(行・列)を削除していましたが、度々では面倒に思い、マクロを組もうと試みました。 ですが、まだまだマクロ勉強中の私自身の頭が整理しきれず、行き詰ってしまいました。 アドバイスでも結構です。お力をお貸しください。 よろしくお願いいたします。

  • 【Excel VBA】データを集計する数式を入力するマクロ

    Excel2003を使用しています。   A列   B列   C列   D列   E列   F列 1      9/1                    20000 2      9/2              1000 3      9/10              5000 : : 10           9月計        ※1    ※2    11 12 13     10/1                   10000 14     10/10             2000 15     10/14                   4000 : : 20           10月計       ※3    ※4 上記のデータでいうと、 ※1(E10セル) =SUM(E1:E9) ※2(F10セル) =SUM(F1:F9) ※3(E20セル) =SUM(E13:E19) ※4(F20セル) =SUM(F13:F19) という内容の数式を入力するマクロを作成したく、数式を入力したいセルをアクティブにして、ボタン等に登録したマクロを実行すると数式が入力されるようにしたいと考えていますが、その際、集計範囲の最下行は、アクティブセルの1行上までになりますが、最上行をどのようにして取得すればよいかがわかりません。 (実際のデータは、もっと行数も入力されているデータ数も多いです) また、他にもこんな方法があるとか、こうしたほうが簡単とかあれば、教えていただけると勉強にもなりますので助かります。 うまく説明できなくて申し訳ありませんが、よろしくお願いします。

  • 【Excel】この条件で集計を3つに分けたい…??(謎

     今、お小遣い帳のようなのを作っているのですが… 以下の条件で集計したい場合、D~F列に入れる式は、 どのようにすれば… というか、式で可能ですか?(謎 分からなくて困ってます。よろしくお願いいたします☆ ・1行目は項目名です。 ・2行目には前の月の繰越金を入力します。 ・A列で、文末に●があるものの集計はE列に出す。 ・A列で、文末に■があるものの集計はF列に出す。 ・A列で、●も■も無い項目の集計はD列に出す。 図にすると↓こんな感じです。※変になるかも;(>_<) ┌─┬──┬──┬──┬──┬──┬──┬ │  │ A │ B │ C │ D │ E │ F │ ├─╋━━┿━━┿━━┿━━┿━━┿━━┿ │1 ┃摘要│収入│支出│合計│●計│■計│ ├─╂──┼──┼──┼──┼──┼──┼ │2 ┃繰越│   │   │1000│1000│1000│ ├─╂──┼──┼──┼──┼──┼──┼ │3 ┃…●│1000│   │   │2000│   │ ├─╂──┼──┼──┼──┼──┼──┼ │4 ┃……│ 500│   │1500│   │   │ ├─╂──┼──┼──┼──┼──┼──┼ │5 ┃…■│   │ 500│   │   │ 500│ ├─╂──┼──┼──┼──┼──┼──┼ ちなみに、●と■には、それぞれ違う銀行名を入れる予定です。 ( つまり、お小遣いと同じシートで預金も管理したいかなーって。) お願いします☆  

  • Excelの集計マクロについて質問です

    Excelの集計マクロについて質問です 少々ややこしいのですが、情報を調べていても中々分からなかったのでアドバイスや解決策を頂けますと幸いです。 画像を添付いたしましたので参照しつつ見ていただけると助かります。 2行を一つの入力データとし、名称が4セルの構成になっており シートが集計用シートとデータ入力用シートというものになっています。 そして入力用シートをコピーして、入力内容を増やしていきます。 データ(集計用)にデータ(1)で入力されたものを、データ(集計用)のデータ(1)列に転記していき データ(2)で、データ(1)とかぶるものはデータ(2)列の同じ名称の行に データ(1)で発生しなかったデータがある場合後ろに追記していき、これがデータ(数値)が最小データ(1)、最大データ(40)のシートがある所まで集計していく形にしたいのです。 名称が4セルとなっているのは、1列目が同じ名称の物が来ることがあり、2列目にその細かい違いがでるので4セルとなっています。名称の中には、英文字の大文字と小文字だけの違いのものがあり、それを区別して集計することもあります。(物品Aと物品a) 簡単にできそうかな?と思っていたのですが、各シートを集計用シートの対応の列に転記する事や ないものをどんどん下へ追記していく、大文字と小文字を区別させるといういくつもの考え方が必要で調べても中々望む形を得られなかったので質問させていただきました。 少々複雑(?)かもしれませんが、なにとぞ宜しくお願い致します

  • Excelの集計機能

    エクセルの集計機能についてお聞きしたいと思います。 A~Fまで300行ほど空白セルなしで作成したシートがあります。 (1行目は項目名としています) そこから操作手順として、 (1)F列を昇順で並び替え (2)集計機能にて、グループの基準:B列、集計の方法:合計、集計するフィールド:E列、他のオプションは無効として実行 (3)同じく集計にて、グループの基準のみC列に変更して実行 (4)同じく集計にて、グループの基準のみD列に変更して実行 すると、(2)の時点で上部に総計がありその下に集計があり、集計の下に集計がありさらに下に集計がある、入れ子になってぶら下がる状態になるはずなんです。 ところが私の環境では最上部の集計のみ上側に入れ子になってしまいます。 わかりづらいかと思いますが、 A列|B列|C列|D列|E列|F列|   |総計|  |  |  |  |   |(2) |  |  |  |  |   |  |(3) |  |  |  |   |  |  |(4) |  |  | とならなければならないのに、 A列|B列|C列|D列|E列|F列|   |  |  |(4) |  |  |   |  |(3) |  |  |  |   |総計|  |  |  |  |   |(2) |  |  |  |  | となってしまうのです。 Microsoftのホームページにてレジストリ(Excel97Subtotals)を追加すると修正されるとあったので実施してみました。 ですが2番目の集計以降は正常なのですが、最上部だけやはり上側に入れ子されているような状態です。 Excelのバグなのでしょうか? 環境は、 WindowsXP SP2 Office2003 SP2 です。 おわかりになられる方がいらっしゃればご助力お願いいたします。

  • EXCELの集計方法

    仕事での集計ですが、例として以下のような集計をする場合、セルD28,D29,D30にはどのような内容で記述すればいいのでしょうか? D28は、aの項目のデータのD列の合計を集計する。 D29は、bの項目のデータのD列の合計を集計する。 D30は、cの項目のデータのD列の合計を集計する。 表現悪かったら、補足します。

専門家に質問してみよう