• ベストアンサー

集計一覧を作成する一般的な方法?

Excel2003 WinXPです。 項目、大項目、月、金額というフィールドのデータベースがあり、その集計一覧を作成したいです。 項目は別に項目データベースがあり、あらかじめリンクさせてセルに入っています。 このシートのフォーマットを動かさずにセルにデータを入れるにはどうしたらいいでしょうか? 現在はデータシートをループさせ、項目、月、大項目に一致する金額を合計→データ末端まで行ったら出力シートのセルに入力、という力技を使っていますが速度が遅いです。もっといい方法はないでしょうか・・。 ピポットテーブルだと合計金額は簡単に出ますが、データが入っているものしか表示されません。基本が分かってないので皆さんがどうしていらっしゃるのか大まかな考え方でいいので知りたいです。 分かりにくいですが作りたいシートの表はこんな感じです。 分類(大項目)      1月|2月|3月・・12月まで(月) __________________________________ 項目1 |    | (項目)__|合計|合計|_______________ 項目2 |   | | _______|合計|合計|________________

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

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

質問されている内容がよくわからないのですが、 こういうことでいいのでしょうか? まず、データシートがあり、次のような表になっている。    A    B    C    D 1  項目   大項目   月   金額 2  A     あああ   1    1000 3  C     あああ   3    1200 4  B     いいい   2    3000 5  B     ううう   1    4000 6  A     いいい   3    5000 7  A     あああ   1    1500 8  C     いいい   3    10000 9  A     あああ   4    1200 次にこれから、次のような集計表を作りたい。   A    B    C    D   E 1 あああ (大項目) 2 3      月→ 4 項目   1     2    3    4 5 A     25500   0    0    1200 6 B      500   0   3400     0 7 C       0   0   1200     0 ということでしょうか? 単純にこれだけの表なら、集計表に関数で合計を出します。私の場合で、一般的ではないかもしれませんが。 先のデータシートがA列に「項目」、B列に「大項目」、C列に「月」、D列に「金額」が入っており、上記のように、2行目から実際のデータが入っているものとします。 また、集計表は、A1セルに「大項目」、A列4行目から「項目」が下にあらかじめ入力されているものとします。 さらに、集計表の月は、3行目B列に「1」、C列に「2」、D列に「3」・・・となっていることにします。ここは検索に使うので、データシートの月が数字で入っているのなら、同じように数字だけにします。(上表参照) で、B4セル(集計表の合計の左上)に次の式を入れます。 なお、データシートはSheet1、集計表はSheet2というシート名とします。また、データは28行目まで入っているとします(ここは必要に応じて変えて下さい)。 =SUMPRODUCT((Sheet1!$B$2:$B$28=Sheet2!$A$1)*(Sheet1!$A$2:$A$28=Sheet2!$A4)*(Sheet1!$C$2:$C$28=Sheet2!B$3)*Sheet1!$D$2:$D$28) この式を、下へ項目数だけ、右へ12月まで、合計を出すセル全部にコピーします。 あとは、大項目ごとにこの表を作ればいいんではないかと。 はずしてたら、ごめんなさい。

tonjiru
質問者

お礼

有難うございます!SUMPRODUCTで出力できたのですが、実は条件がもう一つあり、しかもセルが6000近くある表にコピーしてたらオプションの「計算方法」を「手動」にしないととても動かせないほど遅くなってしまいました。「再計算中」の時間もかなり長いです。 もうちょっと表が小さければ使えそうだったのですが・・。 VBAの計算式を見直して、ループをかけるときに計算方法を手動にしたら割と早くなったのでそれで行ってみようと思います。 複数条件の合計値を表示する表を作る場合 1・セルに配列計算式 2・ピポットテーブルを使ってどうにかする 3・VBA内で配列をループさせて書き込み のどれかかなぁとは思ったのですがやはりデータ量等によって色々あるようですね。 とても参考になりました。

その他の回答 (3)

  • hyorono
  • ベストアンサー率30% (7/23)
回答No.3

図にすると・・・      A   B   C 1 | 取引先  月  金額 2 | aaa  10月  500 3 | bbb  9月  300 4 | aaa  12月  200 5 | ccc  5月  700 6 |      1月 7 |      2月 8 |      3月 9 |      4月 10|      ・ 11|      ・ 12|      ・ と、月の列だけでいいので、1~12月までを とりあえず入力(範囲内に) で、その後更新 うまくいったら、この入力した部分は 消しちゃいましょう。 てな感じではいかかでしょうか? ほんとはもっと簡単な方法があるのかもしれませんが 試してみてください。

tonjiru
質問者

お礼

詳しいご説明していただき有難うございます! 行(項目)の出力が難しいのでピポットテーブルは難しそうだなと思いました。 実はピポットテーブルあまり使ったことなかったのでとても参考になりました。有難うございました。

  • hyorono
  • ベストアンサー率30% (7/23)
回答No.2

複数のシートのデータをまとめることは出来ないと思います 少なくとも、私は知りません。ごめんなさい。 で、本題ですが、元もとのデータに1月~12月すべてが無いということでしょうか? その上で、ピボットテーブルに表示させたいという事でしたら 元もとのデータの項目「月」に一度1月~12月の行を作ってあげて (もちろんピボットテーブルを作るときに選択した範囲内で) その後、ピボットを更新すると出来るのでは? 更新後は、その行は消してあげれば元もとのデータにも、問題ないかと・・・

tonjiru
質問者

補足

そうです。項目も月もデータはあったりなかったりします。 月はダミーデータっぽいのを入れたら動くのですが、 項目の部分は(データ数も)可変データなのでちょっと難しいかと・・ 出力したい形式は決まっているのでダミーデータを入れると順番がおかしくなるのも困ります・・。 (データが入っているものから表示される) 考えてくださって有難うございます。

  • hyorono
  • ベストアンサー率30% (7/23)
回答No.1

ピボットテーブルで作成可能です すべて表示したいボタン(分類=1月~12月等)を右クリックして、フィールドの設定→データのないアイテムを表示する にチェックを入れれば表示します 1月・2月・5月・・・    ↓ 1月・2月・3月・4月・5月・・・

tonjiru
質問者

補足

有難うございます。 やってみましたがデータベース内の「月」フィールドに1月しか入っていない場合はやはり1月しか表示されません。 「月」、「項目」のフィールドは他のシートから引っ張って来たいのですがそんなことは可能なのでしょうか。

関連するQ&A

  • EXCELで同じ分類のものを集計する

    ・EXCELで、「件名」「金額」「分類」等がひとつのデータ(行)になっている、簡易データベースがあります。 ・このデータベースは日々追加・更新されます。 ・「分類」には「A」「B」「C」があります。 ・「分類Aの金額」「分類Bの金額」「分類Cの金額」セルを、別の場所に用意しておきます。 データ(行)の「分類」を読み取り、「分類Aの金額」「同B」「同C」に、合計金額を表示させる方法は、ありますでしょうか? EXCELのソートの機能や集計の機能を使わずに、データが追加・更新されたら、セルに新しい合計値が表示されるようにしたいのです。 ご回答よろしくお願いいたします。

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

    エクセルである月の集計を複数のセルの合計を別のシートに出したいのですが、ある月とは、2007/1とか年月を打ち込み その行のセルを別シートに集計させます。 そういったデータベース的な使い方は、エクセル2007ではできますか?

  • エクセルのピポットテーブルで、フィールド名が正しくないとのエラーが

     エクセルのピポットテーブルについて勉強し始めたところです。  自分で作ったエクセルシートの一覧表をピポットテーブルを使って集計しようとしていますが、「ピポットテーブルのフィールド名は正しくありません。ピポットテーブルを作成するには、ラベルの付いた列でリストとして編成されたデータを使用する必要があります。ピポットテーブルのフィールド名を変更する場合は、フィールドの新しい名前を入力する必要があります。」というメッセージがでて、集計しようとする範囲が指定されません。  ちなみに、元のシートの一覧表の項目には、左右隣同士のセルを結合して、その下に複数の項目を設けているセルが存在します。  お解りの方、どうかよろしくお願いします。

  • エクセル2007でピポットテーブルの集計方法について

    こんにちは。 複数店舗を扱っていて、それぞれの入金管理を1店舗に付き1つのシートで行っております。今回新規のシートにピポットテーブルで各店舗の集計データを出したいと思いやってみましたが、思うような結果が出せなくて困ってます。もともとピポットテーブルは使ってこなかったもので素人です。 元のエクセルのデータは、列に"入金日""担当者氏名""入金額"とあり、行方向に集計しています。 まず、データ範囲が複数のシートにあるので、ALT+D、ALT+Pと押し、ピポットテーブルウィザードを立ち上げ、分析するデータの範囲選択で、”複数のシート範囲”選択、ページフィールドの作成方法で”自動”を選択 "次"へ”範囲”欄に1シート選択するごとに追加で9つのシートを選択しました。それで表示された結果が、下の図です。 こちらで表示したい結果は、列のフィールドに担当者の名前を表示し、行のフィールドは日付、値のフィールドには、入金額を入れて担当者ごとの入金額を集計したいのですが。 どのように設定すればいいのでしょうか?

  • EXCELの集計方法

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

  • 集計方法教えて下さい

    エクセルを使って集計したいので教えて下さい。 まず、シート”あ”のセルA1に9/1セルA2に9/2セルA3に9/3・・・・という風に日付が順番に延々入力されています。その隣の列( B,C,D・・・)にはその日使った金額が入っています。使った都度隣のセルに入力していきますので、ある日はB列だけ金額が入っている、またある日はB列から列Fまで金額が入っています。というように支払う毎に隣のセルに入力していきます。 集計シート”い”を用意して、そのシートのA1に9月、B1に10月、C1に11月・・・といったようにその月毎の集計金額を表示させたいのです。SUM関数を使って手動でセル範囲を選択しても良いのですが、なんとも芸の無い感じがするのでもっと簡単に出来ないでしょうか? 例えば、シート”あ”のA列全体を選択し、その中で9/1~9/30までの条件範囲でその隣にある金額を集計する。 あとは、その計算式の入っているセルの角をマウスでドラックしてビューとすれば、出来上がり。 わかる方教えて下さい。

  • ピポットテーブル以外で複数条件の集計をしたい。

    2つのファイルがあります。 ファイルAには キー項目1 キー項目2 金額。 ファイルBには キー項目1 キー項目2 10月 11月・・・。 10月、11月の列にはデータは入っていません。 この集計結果が入るようにしたいです。 AとBを比較して「項目1」and「項目2」と一致するデータの金額をファイルBの各月の列へ集計したいのです。 ファイルAは1ヶ月分のデータが入っています。 ただ集計をしたい場合はピポットテーブルで出来たのですが、決まった列&行へその集計結果を入れたいです。 分かり難いかもしれませんが、よろしくお願いします。 

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

    エクセルの集計について教えてください 添付のように、A列からは入力用 A列 日付(複数月にまたがる) B列 金額 C列 項目 E列からは集計用として E列 項目 F列からは月ごとに集計できるような表を作りました 集計用は、また別途ほかのシートで参照して使用する予定です A列には、今後も次々データを足していく予定です 月単位でデータを抽出したのち、項目ごとに合計を算出したいのですが、どの関数を組み合わせればいいのかわかりません。 エクセルはほぼ初心者です ピボットテーブルを使用してもよいのですが、ほかのシートで参照できる方法を教えてください よろしくお願いします

  • アクセス2000を使ってのデータ集計方法

    はじめまして、アクセス2000を使って支払テーブルを作成しました。フィールドは、日付 メーカーID 金額 現場名ID 勘定科目ID・・等です。 メーカと現場名と勘定科目はマスタテーブルを別に作って そこから参照させています。これにデータを打ち込んでいって月別金額集計と メーカ別金額集計と 現場名別金額集計と勘定科目別金額集計をさせたいのですが フォームとレポートに支払テーブルレコードを表示させて 合計金額を表示させるにはどのようにすれば良いでしょうか? 判りにくい説明ですが 4月分のデータを一覧表示させて合計金額を表示次に5月分のデータを一覧表示させて合計金額を表示と言う具合です

  • ファイルメーカー:値一覧の集計方法を教えて下さい。

    本当に初心者です。よろしくお願いいたします。 ファイルメーカーPro.6(OS:windows XP)で退院集計をしています。 退院先というフィールドに値一覧で「在宅」「施設」「転院」等を 選択するようにしています。 値一覧で選択した項目がそれぞれ何件あったが集計がとりたいのですが方法が解りません。 Ex 12月1日~12月31日までの間で在宅○○件、施設○○件、転院○○件 退院合計及びそれぞれの退院合計に対する比率○○%という集計。 それぞれの項目で検索して件数を出せば出来ると思いますが、報告書のレイアウトで集計を出したいと思っています。 ご教授お願いいたします。

専門家に質問してみよう