• ベストアンサー

EXCELピボットテーブルでの区分を可変させたい

A列 B列 4 7 2 5 4  0 8 -8 5 3 1 2 8  4 2 -3 6  0 上記のようなデータでA列を1~3、4~6のようにグループ分けして、ピボットテーブルで下記のような和や平均を求めたりします。 1~3  5+2+(-3)=4 4~6  7+0+3+0=7 7~10  (-8)+4=-4 そしてグループ分けをいろいろ変えたいのです。 1~5  7+5+0+3+2+(-3)=14 6~10  (-8)+4+0=-4 区分を変える手軽な方法はないですか? 

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

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

ピボットテーブルを作る。その後 シートにコマンドボタンを1つ貼りつけます。ダブルクリックすると、VBE画面に飛び Private Sub CommandButton1_Click() End Sub が出ます。 Private Sub CommandButton1_Click() Range("A4").Select Selection.Group Start:=Range("j1"), End:=Range("j2"), By:=Range("j3") End Sub のようにします。 どこでも良いがデータの邪魔にならない列、例えばJ列に J1始めの値 J2終りの値 J3飛び飛びにする値。ステップ値。 の数値を入れます。 (例えば初め1、終り10、ステップ3とすると1、1-3、4-6、7-10の区分けになります。) これらはその都度いれる。 そしてデザインモードを脱して、ボタンをクリックすれば 即座に色々な区分けに出来る。

now2150
質問者

お礼

回答、ありがとうございます。 シートにコマンドボタンを貼りつける手順は過去の質問の検索で、 「表示-ツールバー-フォームのボタンと、表示-ツールバー-コントロールツールボックスのボタンがあります。 前者は右クリックにマクロ登録があり、後者はデザインモード時にダブルクリックでVBE画面が開きます。」 とあり、解決しました。 ですが、コードをコピペしてボタンをクリックしても、 Selection.Group Start:=Range("j1"), End:=Range("j2"), By:=Range("j3") でエラーになります。どこに問題があるのでしょうか? 他の方でも、よかったらお教え下さい。

now2150
質問者

補足

回答、ありがとうございます。便利そうですね。 シートにコマンドボタンを貼りつける手順が分かりません。下記のように二通りやってみましたが、コードをコピペして実行しても最終行でエラーになります。正しい方法を教えてください。 1)ユーザーフォームの挿入→ツールボックスからコマンドボタンをUserForm1にドラッグ→ダブルクリック→VBE画面 2)「表示]→[ツールバー]→[フォーム]→フォームツールバー → ボタンをクリック→シート上で+記号をドラッグ→ボタン1とマクロの登録ダイアログボックスが出る(ボタン1_Click)→新規作成→VBE画面に飛び、Module1に Sub ボタン1_Click() End Sub が出ます。

その他の回答 (1)

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

グループ分け自体は、項目を選択して右クリックで 「グループとアウトラインの設定」で「グループ化」できますが 区分を手軽に変えたいなら、元の表にグループ化用の列を作って 設定を切り替えるのが楽だと思います。 数式でなら上記でグループ化するのが数値の範囲なら 1~3 =SUMIF(A:A,"<=3",B:B) 4~6 =SUMIF(A:A,"<=6",B:B)-SUMIF(A:A,"<=3",B:B) 7~10 =SUMIF(A:A,"<=10",B:B)-SUMIF(A:A,"<=6",B:B) "<=3"は C1に3があれば "<="&C1 でも可 こんな関数の使い方もあります。 =SUMPRODUCT(($A$1:$A$100>=1)*($A$1:$A$100<=3)*( ($B$1:$B$100)) A1~A100が1~3の間の数値の行のB列の値を集計します。

now2150
質問者

お礼

解決したので、この欄を借りて2人にお礼します。 #2の方のマクロのエラーの件ですが、 質問では、A列、B列はデータでピボットテーブルは別の位置のつもりでした。私の説明が不十分でした。 セルA1にピボットテーブルという回答だったんですね。 ヘルプで「Range オブジェクトがピボットテーブル フィールドのデータ範囲内の単一セルを表す場合、Group メソッドはそのフィールドで数値またはデータのグループ化を実行します。」とありました。 それで、Range("A4").Select な訳ですか。 実際のデータはかなりの量なので、自在に範囲分けができて大変助かります。

now2150
質問者

補足

回答、ありがとうございます。 >区分を手軽に変えたいなら、元の表にグループ化用の列を作って  設定を切り替えるのが楽だと思います。 ピボットを使うのに、この方法を知りたいのです。詳しく教えて頂きたいです。 ピボットを使わない場合のSUMIF、SUMPRODUCTは便利ですね。参考になりました。 因みに、同様に平均を出せる関数はありますか?

関連するQ&A

  • エクセルのピボットテーブルで

    ピボットテーブルの表示方法についてです。 表の品名と数量からピボットテーブルを作成します。 行に品名、データ部に数量を表示させるのですが、数量が0(ゼロ)の場合には、その行自体を表示させない様にしたいのです。 元の表の方は変更等出来ないので、ピボットテーブルの方で何とか出来ないかと思います。 【元の表】 品番  数量 A001  5,000 A002    0 B001  4,500 B002    0 上記の2列からピボットテーブルを作成すます。 【ピボットテーブル】 品番  数量 A001  5,000 B001  4,500 総計  9,500 上記の様に、元の表で数量が0なら、その品番と数量の行が表示されない様にです。

  • ピボットテーブルで平均介護度を計算したい

    Excelのピボットテーブルで集計をしています。 氏名  年齢  介護区分  性別 AA   78   要介護1  女 BB   88   要介護2  男 CC   89   要支援1  女 上記の「介護区分」のデータで平均の数値を計算したいです。 「介護区分」に入力してあるデータは文字列で、 要支援1 要支援2 要介護1 要介護2 要介護3 要介護4 要介護5 が入力してあります。 各々は、介護度別に下記の数値が割り当てされます。 要支援1 → 0.5 要支援1 → 0.75 要介護1 → 1 要介護2 → 2 要介護3 → 3 要介護4 → 4 要介護5 → 5 上記のデータをもとに平均を求めたいのですが、 ピボットテーブルのもとになるデータベースには、 文字列の「要介護1」と言うデータのみで入力し てあります。 ピボットテーブルの数式を使い、平均を求められるの ではないかと思いますが、やり方が不明です。 または、もとのデーターベースにフィールドを追加して 「介護区分」の値を数値に変換してからピボットテーブルで 集計した方が良いでしょうか。 教えてください。

  • Excelピボットテーブルについて

    ピボットテーブルを使ってデータ集計をしています。 とある文字列Aの個数と文字列Bの個数を値として表に出しているのですが、 文字列Aの個数/文字列Bの個数を表示させる新たな列を作ることは可能でしょうか? 集計フィールドの挿入で「文字列A/文字列B」と入れてみたのですが、#DIV/0!になってしまいました。 もう少し具体的にやりたいことを書くと、 品物列に「きゅうり、りんご、トマト」の文字列 〇×列に「〇、×」の文字列 が、データベースに入っていて ピボットテーブルのほうできゅうりと入力されてる個数、〇と入力されてる個数が値としてあります。 きゅうりが3、〇が1だとして、1/3をパーセント表示した列を作りたいです。 (きゅうりの合計数のうち〇が何パーセントあるか) 分かりにくくてすみません。。 可能であればその方法も教えていただきたいです。

  • Excelのピボットテーブルについて相談です

    添付のようなピボットテーブルがあり、IDに対して各列(A、B、C、D、E)に 〇と空白のみだと表示せず、×が1つでもあれば表示ということをやりたいです フィルターを使わない行いたいのですが ピボットテーブルの参照元のデータから、各列(A、B、C、D、E)の〇と×を集計してた列を作成し、フィルターとして適用すればいいのかなとも思いつきましたが、実現方法がわからない次第です ご存じの方、教えていただけると助かります よろしくお願いします

  • ピボットテーブルの仕方

    お世話になりますよろしくお願いします。 ピボットテーブルなかなかできませんよろしくお願いします。 1行目に日にち 2行目に曜日 3行目に何をしたか A列にコードナンバー B列に氏名 AH列に区分      8/1  8/2  8/3  8/4  ・・・区分 1 Aさん 1   2   1   3  ・・・ A 2 Bさん 2   1   3   3  ・・・ B 3 Cさん 3   1   0   0  ・・・ A 4 Dさん 1.1  1   1   9  ・・・ C 5 Eさん 2.1  0   8   2.2 ・・・ A :  :  :  :   :  :      : 226 8   0   0   1   0 227 8.1  0   0   0   0      0 228 8.2  0   0   0   0      0 229 8.3  0   0   0   0      0 230 9   0   0   0   A      0 218から230まではカウントイフを使っています。 お聞きしたいのは 区分Aのひとが8/1に1を取った数を調べたいと思っています。 同様に区分Bの人が8/1に2・・3・・4と 日付ごとに出したいと思っています。 よろしくお願いします。

  • ピボットテーブル教えてください

    こんにちは。 下記の画像のようなデータがあります。A1からC4が元データになります。 A8~C12がピボットテーブルになります。 http://upload.fam.cx/cgi-bin/img-box/9fc110806114620.jpg やりたいことは、B2~B4をピポットテーブルにした時に、100で割りたいと思います。 つまり、ピボットテーブルにした時に、B9~B11の値を10,20,30にしたいと思います。 別の領域でB2~B4を100でわって、それをピボットテーブルにすればいいんじゃないかっていうのはわかります。ただ、ピボットテーブルにした時に、なんらかの式を入力して100でわりたいと思っています。 このようなことは実現可能でしょうか?利用しているExcelは2010 or 2003です。よろしくお願いします。

  • 2つ以上の項目のピボットテーブルを1つのピボットで表示

    2つ以上の項目のピボットテーブルを1つにまとめて表示する方法を探しています。 A   B   C    会社名 料金1  料金2 A   …   … B   …   … C   …   … A   …   … C   …   … A   …   … 上記のようなデータがあり、会社別に「料金1」・「料金2」および「料金1と料金2の合計」をピボットテーブルを使って集計しようと考えています。 現在は元データのD列に「合計」項目を追加し、「料金1」「料金2」「合計」の3項目をそれぞれ別のピボットテーブルとして表示しているのですが、これを一つのピボットテーブルにまとめることは可能でしょうか? 以下のような集計テーブルができることが理想です。 会社名 料金1  料金2  合計 A   …   …   … B   …   …   … C   …   …   … 基本なのかもしれませんが、調べてもわからなかったもので…。 どなたかわかる方よろしくお願いします!

  • Excel2003 ピボットテーブルについて教えて下さい

    Excel2003 ピボットテーブルについて教えて下さい Excel2003でピボットテーブルを作っています。 まず「ブックA」の「シートA-1」にあるデータをもとにして、 新規シート「シートA-2」にピボットテーブルを作りました。 その後、「ブックB」の「シートB-1」にあるデータでピボットテーブルを作ろうとしたのですが、 「シートA-1」「シートB-1」はフィールド項目も表示したい表の形もまったく一緒なので、 「ブックA」のピボットテーブルを流用しようと考えました。 なので「ブックA」のピボット「シートA-2」を、「ブックB」内にコピーして、 その後「ブックB」に新しくできたピボットテーブルの参照範囲を「シートB-1」のデータにしました。 ピボットテーブルは無事にできたのですが、 フィールド名の右の▼をクリックすると出てくるリストに、 「シートA-1」のものと、「シートB-1」のものが混じって表示されてしまいます。 「ブックB」のピボットテーブルには、「シートB-1」のものだけを表示したいのですが…。 フィールドのリストで要らないものを削除する方法、 または、そもそもピボットテーブルのコピー自体でもっと良い方法があったら教えて下さい。 よろしくお願いします。

  • ピボットテーブルの検索

    ピボットテーブルを作成し行と列のフィールド項目を検索しそれを他のシートから参照させたいのですが、行の列にはコードで区分し、列のフィールドは月で区分させています。日付はグループとアウトラインの設定で月単位にまとめています。 INDEX(A6:J16,MATCH(A1,A6:A16),MATCH(B1,A6:J6))でそれぞれの交点を参照させたいのですがA1をコード入力、B1を月入力にした場合、コードは1月~9月まではMATCH関数の値がかえってくるのですが10月~12月にした場合#N/Aが帰ってきてしまいます。原因は何になるのでしょうか? 教えてください。       A       B      C      D 1  コード項目   月項目 2 3 4 5  合計:金額   日付 6    CODE      1月     2月    3月 7   1010    100,000   150,000    200,000 ピボットテーブルはこんな感じになっています。 宜しくお願いいたします。

  • できればピボットテーブルを使いたい

    エクセルのデータとして 【1sheet】 A 10 B 20 C 30 D 40 E 50 【2sheet】 B 50 C 10 E 20 A 40 D 30 【3sheet】 D 30 B 20 A 10 E 50 C 40 【4sheet】 E 20 C 40 A 30 B 10 D 50 とバラバラなデータがあるとします。 上記の場合、合計は A 90 B 100 C 120 D 150 E 140 となりますが、わざわざ1つずつ計算機で算出しています。 これをピボットテーブルというものを使って集計することはできますか? もし出来るならば簡単で構わないので方法を教えて下さると助かります。 また、ピボットテーブルは使えないまたは、使わないほうが良いということで算出する場合、どのような効率の良い方法があるのでしょうか? お願いします。

専門家に質問してみよう