ピボットテーブルを使わないで複数の区切りでグループ化する方法

このQ&Aのポイント
  • 販売日時、商品名、価格のデータを蓄積し、売れた商品の個数分布の集計を定期的に行っています。現在はエクセルのピボットテーブルを使用して集計していますが、グループ化の単位が規則性がなく、何度もグループ化をやり直しています。一度に複数の区切りで集計する方法があれば、ピボットテーブルを使わずに集計することも可能です。
  • 売れた商品の個数分布を定期的に集計する際に、エクセルのピボットテーブルを使用していますが、グループ化の単位が規則性がないため、集計のたびにグループ化をやり直しています。一度に複数の区切りで集計する方法があれば、ピボットテーブルを使わずに簡単に集計できるでしょう。
  • 販売日時、商品名、価格のデータを蓄積し、売れた商品の個数分布の集計を定期的に行っています。現在はエクセルのピボットテーブルを使用して集計していますが、グループ化の単位が規則性がないため、何度もグループ化をやり直しています。一度に複数の区切りで集計する方法があれば、ピボットテーブルを使わずに効率的に集計できます。
回答を見る
  • ベストアンサー

ピボットで複数の区切りでグループ化する方法

販売日時、商品名、価格 のデータが蓄積されており、 下記のような区切りで売れた商品の個数分布の集計を定期的に行っています。 0 1-500 501-1000 1001-3000 3001-5000 5001-10000 10001-30000 30001-50000 50001-100000 100001-150000 150001-200000 200001-300000 300001- 今はエクセルのピボットテーブルを使って、 行ラベルに価格、 値に商品名(個数)、価格(合計) と割り当てて、行ラベルをグループ化して集計していますが、 グループ化の単位が規則性がないため、 「先頭の値:1、単位:500」 「先頭の値:1001、単位:2000」 「先頭の値:5001、単位:5000」 ・ ・ ・ と何度もグループ化し直しているのですが、 一度にこの区分で集計する方法はありますでしょうか? 実現できるならピボットテーブルを使わなくても構いません。(VBAでも可) よろしくお願いいたします。

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

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

>「C列全て」という表現はできないでしょうか。 前回解答の添付図のセルJ1に    ="$C$2:$C$"&COUNTA(B:B)   と入力します。データの加減があるとこれが変化します。 で、このセルに名前を付けます。分かりやすくするためです。  セルJ1を選択し、名前ボックス(画面の左上の方です)に「データ範囲」と入力してEnterとします。「」はいりません。実際のデータ数は表題の分1件少ないんですが、「データ数を表す範囲」程度に理解してください。特別に意味のある用語ではなく、勝手に付けた「セル範囲名」です 次に、セルI3の数式を、    =SUMPRODUCT((G3<=INDIRECT(データ範囲))*(INDIRECT(データ範囲)<=H3)) セルJ3の数式を、  =SUMPRODUCT((G3<=INDIRECT(データ範囲))*(INDIRECT(データ範囲)<=H3)*(INDIRECT(データ範囲))) のように置き換えてください。これをランク分コピーします。これで完了です。 「INDIRECT(データ範囲)」を1回入力すればコピーして貼り付けられます。     Indirect関数は文字列を算式に使えるようにする関数です。   これでデータを入力すれば自動的に合計されるでしょう。所要時間「0秒」で集計終了?!

tanapyondai
質問者

お礼

なるほど! いくらでもやりようはあるもんですね。 大抵解決できてしまうんですねぇ ありがとうございました!

その他の回答 (2)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

元データに1列追記し、価格がC列だとして D1: 区分 D2: =IF(C2="","",LOOKUP(C2,{0,1,501,1001,3001},{"0","0-0.5","0.5-1","1-3","3-"})) 以下コピー といった具合でグループを算出、ふつーにピボット処理してしまったほうが早くてトータルで納得いくのが出来ると思います。 勿論グループ分け表を別途用意して、ふつーにVLOOKUPとかで算出しても全然OKです。

tanapyondai
質問者

お礼

ありがとうございます。できました! 自己流でif文を何度も繰り返して同様の事を行っていたのですが、 こんなにシンプルにできる方法があるなんて驚きました。 今までの変わらない運用で、よりスマートな方法ですね。

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

データは添付図のA、B、C列のようになっていると想定しました。   まず、集計するランクの表を作ります。 最初と最後は0と9,999,999を追記しています。   データにランクを追加します。添付図では「ランク最初」と「ランク最後」を追加していますが、どちらか一方でいいです。選択してください。   添付図のD2: =VLOOKUP(C2,$G$3:$H$15,1) 添付図のE2: =VLOOKUP(C2,$G$3:$H$15,2)   とします。全データにコピーします。   後はピボットの行ラベルに「ランク最初」か「ランク最後」を選択します。   ランク別の集計は不要になると思われます。       または、直接計算(こちらがおすすめ)するには、添付図の   セルI3: =SUMPRODUCT((G3<=$C$2:$C$41)*($C$2:$C$41<=H3))   セルJ3: =SUMPRODUCT((G3<=$C$2:$C$41)*($C$2:$C$41<=H3)*($C$2:$C$41))   としてコピーすればピボットは不要になるでしょう。(C41は添付図での一番下の行です) こちらはD、E列は不要です。   ご参考に。

tanapyondai
質問者

お礼

ありがとうございます。できました! ピボット不要でダイレクトに算出できる方法に感動しました。 レコード数は毎回増え続けるので、本当はC列全部という指定(C:C)のようにしたかったのですが、 エラーが出てしまったので、($C:$999999)の指定で回避しました。 「C列全て」という表現はできないでしょうか。

関連するQ&A

  • エクセルのピボットテーブル内におけるグループ化ができません・・。

    ピボットテーブルを組み日付の部分をグループ化して ex      8/12 | 8/15  | 9/10  | 9/16  | 個数  5  |  8   |   13  |   4   | これを      8月 | 9月 | 個数   13 |  17 |      こうなる予定なのですが・・・   「選択対象をグループ化することは出来ません」と出ます  ちなみに数値はすべて別シートからのリンクです  また、2001年8月という単位でグループ化できないのでしょうか?  (グループ化単位が日・月・年だけだと翌年度の集計が・・。   みなさんはどうされてますか?) 助けてください! 

  • ピボットテーブル集計方法

    元のデータがB6からP6の15項目を表示させたい 約150行です。 この15項目をピボットテーブルのどこにドラッグすれば良いのでしょうか レポートフィルタとか列ラベルとか行ラベルとかいろいろありわかりません。 集計は個数ではなく明細を表示させたい。 具体的に添付出来ません。アドバイスお願いします。

  • ピボットテーブルで個数の月平均を算出したい

    Excel2010のピボットテーブルの集計方法について教えてください。 各部門で商品の売上の都度入力しているデータがあり、その中で部門Aが入力したデータの個数をピボットテーブルを使って集計しようと思っています。 集計したい情報は以下の2つです。 (1)各月で部門Aが入力したデータ個数 (2)部門Aが入力したデータ個数の月平均(データ個数合計/集計対象の月数) ((1)と(2)は同じピボットテーブル内で実現したい) データは日付と部門を持っているので、日付を月単位にグループ化することで(1)の集計はできました。 しかし、(2)に関してはどうすればピボットで実現できるのかがわかりません。やり方があれば教えて頂きたいです。

  • ピボットテーブルで、時系列データを簡単に取り扱う方法について

    ピボットテーブルで、時系列データを簡単に取り扱う方法について 手元に下記のような形式のデータがあります。 表頭:年月 表側:商品名・分類 データ:売上 具体的には下記のようなものです。 商品名 分類  2001.1 2001.2 2001.3 ... 2009.11 2009.12 商品A 分類あ 商品B 分類あ 商品C 分類い 商品D 分類い ... これを「分類」ごとの月別売上データにしようとすると、 つまり     2001.1 2001.2 2001.3 ... 分類あ 分類い ・・・ を作りたい場合は、ピボットテーブルを使って 行ラベル:分類 列ラベル:値 値:合計/2001.1, 合計/2001.2 合計/2001.3 ... とすればできるのですが、 値の欄に、年月のフィールドを入れる作業の手間が大きくて大変です。 (しかも、データに空欄があるせいか、データの個数⇒合計に直す作業もあります) これらの作業を、簡単にすることはできないでしょうか。

  • エクセルのピボットテーブルで新しい集計方法

    エクセルのピボットテーブルを使っていろいろ集計を出しています。集計方法は決まった集計方法の中から選択するようになっていますが、(例:最大値、データの個数・・・etc)新しい集計方法を加えたいと思っています。具体的には、Large関数のようなもので、二番目に大きい値、三番目に大きい値を出したいのですが、そんなことはできますか。または、ピボットテーブルを使わないとしたら、何か方法はありますか。Excelのバージョンは2000、OSはWin2000です。

  • ピボットテーブル集計結果の並べ替えについて

    いつもお世話になります。 現在、Excel2010を使って以下のようなピボットテーブルを作成しています。      りんご  いちご  梨 支店A  40%   30%   30% 支店B  30%   20%   50% 支店C  50%   30%   20%  ・     ・    ・     ・  ・     ・    ・     ・ 支店ごとに、実際の売上の金額が大きく違うため、 「行集計に対する比率」で、各商品の売り上げ個数の比率を計算しています。 この中から、「りんご」の売上個数の比率が50%以上のデータのみを取り出したいのですが、 方法がわかりません。 条件付き書式を付ければ、50%以上のセルのみ色を付けることはできます。 「行ラベル」の「値フィルター」で、50%以上のデータを抽出しようとしましたが、できません。 どうやら、この「値フィルター」は、集計方法を「行集計に対する比率」に変更する前の集計結果 「売上個数」を見て、フィルターをかけているようです。 並べ替えも同様に、「売上個数」の合計の大きいものから順に並びます。 50%以上のデータを取り出、もしくは、「行集計に対する比率」の結果の大きいものから順に並べる方法を教えてください。 よろしくお願いします。

  • ピボットテーブルで種類の個数を求める方法は???

    ピボットテーブルで種類の個数を求める方法は??? 次のデータからピボットを使い集計したいのですが、データの個数ではなく種類(人数)を集計したい場合はどのようにすれば良いのでしょうか? 名前   年  種類  円 鈴木   20  雪  100 鈴木   20  華  100 鈴木   20  華  100 鈴木   21  雪  100 鈴木   21  雪  100 高橋   20  華  100 合計/円  列ラベル▽ 行ラベル   華    雪   総計 -20      3    1    4   ・・・華の人数が2となるよう    高橋  100       100    鈴木  200  100  300 -21           2    2   ・・・雪の人数が1となるよう    鈴木       200  200 総計     300  300  600 よろしくお願いいたします。

  • 未だにピボットテーブルがよくわからない・・・

    Excelはもう10年以上も仕事で使ってきて、VBAでマクロを組んで業務を効率化するという仕事もしてきましたが、未だにピボットテーブルだけは理解できません。 ピボットテーブルの使い方を解説したサイトを読んだりもしましたが、どういうことができるのかはだいたい理解できるものの、ピボットテーブルを挿入したあとどうすれば自分の思う集計ができるのかがわからない。 右側にある「ピボットテーブルのフィールド」で、どういうときに「フィールド」「列」「行」「値」それぞれのところへどんな順番で移動すれば良いのかわからない。 同じフィールド内でも順番が入れ替わるだけでピボットテーブルの見栄えがガラッと変わりますよね。 ピボットテーブルを使えば5分で終わるような集計を、僕は1時間とかかけてVBAを使って力技で集計してるのがバカバカしくて悲しくなります。 「VBA使えるなんてすごい!」なんてよく言ってもらえますが、ExcelでできることをわざわざVBAを書いてやるなんて、まるで車輪の再発明じゃないですか。 ピボットテーブルを使いたいというか、理解したいです。 何か良いサイトか本を教えていただけないでしょうか? 特にフィールドのところを詳しく説明してるような・・・。 よろしくお願いいたします。

  • 合計金額に対する割合を出したい ピボットテーブル

    エクセル2007 ピボットテーブル 合計金額に対する割合を出したい A列 商品名 りんご りんご みかん バナナ B列 金額 100 120 150 300 このデータをソースにしてピボットテーブルを作成し、 「行ラベル」に商品名、 「値」に金額をドラッグしました。 その時、総計行に合計金額 670が表示されますが 合計金額に対する割合の列をピボットテーブルで作成することは可能ですか? 例えばF列に 合計の670を100%として F2セルに=E2/$E$5といれてF5までオートフィルをして、 F列の書式をパーセンテージに変えればできますが これと同じことをピボットテーブルで列を作り、行いたいです。

  •  エクセルのピボットテーブルでアイテムのグループ化ができません。

     エクセルのピボットテーブルでアイテムのグループ化ができません。  ピボットテーブルで集計を行い、縦軸に年月日、横軸に各アイテム毎の集計値が 集計された結果のテーブルがあります。  ここで、横軸にあるアイテムのうち、グループ化したい任意のアイテムを選択し (コントロールキー押下による複数選択でも、隣り合うセルのドラッグ選択でも)、 ピボットテーブルツールバーよりグループと詳細の表示からグループ化を選択 するのですが、「選択対象をグループ化することはできません」とのエラーメッセージ ウィンドウが表示され、うまくいきません。  日付のグループ化をする際など、空白セルがあるとうまくいかないことがあることは 知っているのですが、私のデータでは空白はありません。  縦軸の日付にも横軸のアイテムにも空白はありませんし、集計結果にも空白は一切 ありません。  にもかかわらずうまくいきません。  参考書(例:「いちばんやさしいExcelピボットテーブル」(秀和システム出版)」のp.118) などでも、アイテムのグループ化ができることになっていますが、これがうまくいかない ものです。  出版社にも問合せましたが、ユーザのデータでうまくいかないことに対するサポート は、出版社としての範疇外との回答のみで、困ってしまいました。  どなたか教えていただけませんでしょうか?  よろしくお願いします。 以上

専門家に質問してみよう