• ベストアンサー

クロス集計の効率的なやり方について

データの項目が22ありまして、これらの項目間のクロス集計を行います。 エクセルを使い、もっとも効率的なやり方があれば教えてください。 やはり一つずつ(AとB、AとC、AとDというように)やらねばならないのでしょうか。 また、エクセルに限らず、他に良いソフトがあれば、それもお教えください。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 >データの項目が22ありまして つまり、22個の中から、2つの組み合わせを出して、計算するわけだから、231通りの計算をするっていうことでしょうか?クロス集計とは書かれていますが、具体的にはどのような計算になるのか良く分かりません。 >やはり一つずつ(AとB、AとC、AとDというように)やらねばならないのでしょうか。 やらねばならないのでしょうか、といっても、組み合わせの計算を求めるなら、そのような機能が、Excelに標準的に備わっているわけではないので、ソルバーの逆のような計算をするしかないと思います。 だから、それを支援するマクロで作らなければ、とても無理なような気がします。それも、アルゴリズムが必要だと思います。具体的に、どのようになっているか教えてもらわないと、次のステップには踏めないと思います。

tokyo5160
質問者

お礼

大変参考になりました。 ありがとうございました。

その他の回答 (1)

  • llalpple
  • ベストアンサー率17% (33/186)
回答No.1

  Excelのピボットテーブルを使えば一発、多分3分で出来ると思いますが.....  

tokyo5160
質問者

お礼

早速のご返答ありがとうございました。

関連するQ&A

  • クロス集計されたデータを元に戻すには?

    表題の通り、クロス集計されたデータを元に戻す方法を探しています。 現在あるシステムにおいて出力されるデータが以下の様な形式だったとします。 (このデータ出力形式は変更が出来ないものとします。) ■元のデータ形式 時刻, A, B, C, D, 1:00, 1, 2, 3, 4, 2:00, 2, 3, 4, 5, 3:00, 3, 4, 5, 6, 4:00, 4, 5, 6, 7, .... ■目標とするデータ形式 時刻, 分類, 値, 1:00, A, 1, 1:00, B, 2, 1:00, C, 3, 1:00, D, 4, 2:00, A, 2, 2:00, B, 3, 2:00, C, 4, 2:00, D, 5, ... ※フォントがずれるので見辛いかもしれませんがご理解願います。 なお時刻はここでは1:00~24:00までの24個 分類項目は特定の個数 (ここではx個あるとします) データを保存、集計するうえで、クロス集計されているデータ形式は非常に使いにくく、 何とかして目標とする形に変換したいと考えております。 どなたか良い変換方法をご存知でしょうか? またデータベースの基本的な考え方として、やはりテーブルのデータ構造は 今回目標とする様な構造が良いのでしょうか? 一応ある程度データベースを知っている人の意見で今回の変換を考えたのですが、 処理をする上で理想的な構造とはどういったものでしょうか?

  • クロス集計のスピードアップ

    Accessで数十万件のデータのクロス集計をおこなおうと思っているのですが1日程度時間がかかってしまいます。以下のプロセスでスピードアップが図れそうな事項がございましたらご教授ください。 -------------------------------------------- (1)テーブル「A」とテーブル「B」(両方とも数十万件)を「A」のIDをキーとして「B」のIDと紐付けし、テーブル「A」の全項目とテーブル「B」のある1項目をクエリを用いて出力します。 (2)(1)のクエリをテーブルに変換する。(←ここで非常に時間がかかってしまいます。) (3)(2)についてクロス集計を行う。 -------------------------------------------- (2)でテーブルに変換せずにクロス集計を行っても非常に時間がかかってしまいます。素人質問で大変恐縮ですが何とぞご教授ください。 よろしくお願いいたします。

  • Access2003 クロス集計で集計値を四捨五入

    ☆以下のようなテーブルで、フィールド[ID]~[点数]があり、文字および数字のデータが混在しています。   ↓  ↓  ↓  ↓  ↓  ↓  ↓  ↓ =========================================== (テーブル(1)) [ID]  [クラス]  [科目]  [点数]     1     A     英語    11    2     B     英語    22    3     C     数学    33    4     A     国語    44   5     B     数学    55    6     C     国語    66    7     B     国語    77   8     C     英語    88     9     A     数学    99     =========================================== ☆上記のテーブルをクロス集計クエリで集計する ・フィールド[クラス]を行見出しに設定、 ・フィールド[科目]を列見出しに設定、 ・フィールド[点数]を集計する項目にし主計方法を「合計」に設定する。 =========================================== [クロス集計結果]   合計   英語  国語  数学       A  154   11    44    99        B  154   22    88    55     C  187   99    77    33  =========================================== [課題] クロス集計クエリで、集計値を四捨五入する (1) フィールド[クラス]を行見出しに設定、    フィールド[科目]を列見出しに設定、    フィールド[点数]を集計する項目にし主計方法を「合計」に設定する。 (2) クロス集計の値を、下1桁で四捨五入した値を表示する。   (3) 「合計」の値を、下1桁で四捨五入した値を表示する。 ※ クロス集計した合計値を、四捨五入した値を表示する   ↓  ↓  ↓  ↓  ↓  ↓  ↓  ↓ =========================================== [クロス集計結果]   合計   英語  国語  数学     A  150   10    40   100        B  150   20    80    60     C  190   90    70    30  ===========================================   ↑  ↑  ↑  ↑  ↑  ↑  ↑  ↑    上記のように、クロス集計クエリでの集計値を四捨五入して 表示させたいのですが、どうすればよろしいでしょうか? また、クエリだけでは出来ない場合は、SQLで教えていただければ 幸いでございます。 お手数お掛けしますが、何とぞ宜しくお願い致します。

  • 中央値のクロス集計ができるソフトを探しています

    EXCELのピボットを使って集計作業をしていますが、EXCELでは中央値のクロス集計は出来ないようです。 VBAとかは組めないので、フリーソフトか、2万円くらいまでの安価な集計ソフトを探しています。 どなたか、中央値のクロス集計ができるソフトをご存知でしたら、教えてください。

  • Accessのクロス集計→テーブル作成で値がない場合の対処法

    すいません、先ほど同じような質問をしたんですが、わかりづらいと思うので再度質問させてください。 テーブル1に大もとのデータが入っています。 フォームに入力をして(たとえば年度など)検索を行います。 その結果を元に、テーブルにデータを入れます。 さらにそのテーブルからクロス集計をして、最終結果を得ています。 (すべてVBAにて実行) たとえばテーブル1に種類1という項目があって、そこには普段A・B・C・Dというデータが入るはずですが、 時々一つくらい無い場合があります。(A・B・Dなど) その場合に、クロス集計を行ってそのデータをテーブルに入れる際に、フィールドが足りないというエラーが出てしまいます。 そういう場合に、空欄を入れるということはできるのでしょうか? お願いします!!(><)

  • エクセルで、複数ブックの表を効率的に集計する方法

    エクセルで、複数ブックの表を効率的に集計する方法を考えています。 定型の集計用シートがあり、Aさん、Bさん、Cさんの3人が記入するとします。 その結果できたシート(シートa、シートb、シートcとします)を以下の2つの方法で集計したいと考えています。 (1)串刺し。上記の様式と同じかたちの集計シートを作成し、各項目ごとに数字を合算。 (2)縦並びの一覧表。 シートaの項目、シートbの項目、シートcの項目が縦に並ぶ一覧表です。 ちなみに、上記3シートは、同一ブックではなく、異なるブック(ファイル)です。 この例のように、3つくらいのデータをまとめるのであれば、手作業でなんとでもなるのですが、実際は、数十~百数十のデータの集計を考えています。 こういう作業を効率的に行う「方法」か「アプリケーション」はありますでしょうか? ちなみに、「Excelシート差込アドイン」というアプリケーションを使って少し省力化できました。

  • SQL文でクロス集計をしたい

    アクセスでクロス集計のSQL文で作りたいと思っています。 このようなデータがあります 年月 支払先 数量 金額 201301 A 10 1000 201302 A 5 500 201302 B 20 2000 201301 C 10 3000 201303 C 15 1500 このデータを下記のように表示したいのですが、 分からなくて困っています。 支払先  データ   201301 201302 201303 A 数量     10      5 A 金額 1000 500 B 数量      20 B 金額 2000 C 数量     10 15 C 金額 3000 1500 合計 数量 20 25 15 合計 金額 4000 2500 1500 どのようにすれば実現出来ますか? 今は、 SELECT 支払先, "数量" AS データ, Sum(IIf([年月]='201301',[数量],0)) AS 201301, Sum(IIf([年月]='201302',[数量],0)) AS 201302, Sum(IIf([年月]='201303',[数量],0)) AS 201303, FROM T_データ GROUP BY 支払先; のクロス集計を 数量と金額、数量の合計と金額の合計でクロス集計をしたクエリを UNIONで実現しています。 出来れば数量と金額は1つのクエリで実現したいと思いますが方法があれば教えて頂きたい と思います。 どうぞ、よろしくお願い致します。

  • クロス集計とかで可能なのでしょうか?

    商品 購入日  数量 A   07/01  10 A   07/02  20 B   07/01  15 B   07/03  5 C   07/04  20 D   07/02  30 D   07/05  35 D   07/06  40 このようなテーブルがあります。 各商品の購入は、MAX5回までとなっています。 それを 商品|購入1   |購入2  | 購入3  |購入4|購入5 A  |07/01 10|07/02 20| B  |07/01 15|07/03  5| C  |07/04 20| D  |07/02 30|07/05 35|07/06 40 のような表記にしたいのですが、 クロス集計で可能なのでしょうか? よろしくお願いします。

  • エクセルでのクロス集計の仕方

    エクセル上の、2つのフィールドのクロス集計、例えば1の項目について1と答えた人の中で、2の項目についても1と答えた人の数を出したい場合の集計方法を教えてください。ピボットデーブルの使い方がいまいちよくわからないのです。

  • クロス集計のSQL

    accessのクエリにクロス集計があります 例えば person sex 血液型 ------ --- ------ 111 1 A 222 2 B 333 1 O 100 2 AB ・ ・ 集計↓ sex A B AB O 他 ---- - - - - - 1 15 45 20 10 5 2 20 30 21 12 2 数字は適当です こんな集計をするSQLを知りたいと思っています どこか、これに近いテーマでSQLを解説している サイトでもいいので、ご教授お願いします

    • ベストアンサー
    • MySQL

専門家に質問してみよう