• ベストアンサー

Access 異なるフィールドの集計方法について

Access初心者です。 異なるフィールド名の集計方法を教えて下さい。 例えば、コース1、コース2、コース3というフィールド名があって コース1にはABC、コース2にはDEF、コース3にはGHIというのがあって コース1~コース3の集計を下記のようにまとめたい場合はどうしたらいいでしょうか? ABCDEFGHIと1列にまとめて表示させたいです。 よろしくお願いします。

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

  • ベストアンサー
  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.6

組み替えにはユニオンクエリを使います ユニオンクエリはクエリデザインビューでは作れません SQLビューで作成します テーブルは前回回答のとおりだとして select 氏名,日付,コース1 as コース from テーブル名 union all select 氏名,日付,コース2 as コース from テーブル名 union all select 氏名,日付,コース3 as コース from テーブル名 まず氏名、日付、コース1を取り出すクエリを作成し SQLビューで表示してそれを元に上のようなものを作成します ほとんど繰り返しですから一つ目をコピーして異なるところだけ書き換えるといいですよ

piko163
質問者

お礼

ちゃんと出来ました!! 的確な回答ありがとうございました!

その他の回答 (5)

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.5

氏名 日付   コース1 コース2 コース3 X  2008/6/17  A    B    C Y  2008/6/17  A    D    F のような非正規形のテーブルを 氏名 日付  コース X  2008/6/17 A X  2008/6/17 B ・ ・ Y  2008/6/17 F のような正規形のテーブルに組み替えたいということですか

piko163
質問者

補足

はい、その通りなんです。 可能でしょうか。 何度も申し訳ありませんが、よろしくお願い致します。

  • laputart
  • ベストアンサー率34% (288/843)
回答No.4

文字列の加工はたいていの事が出来ますので、もう一度説明をお願いします。補足説明を読みましたが、余計にわからなくなりました。 ■異なるフィールドを繋げる事は出来ます。 ■「縦1列にまとめて表示させたい」というのが理会出来ません。 (1)フォームやレポートの表示が縦一列ですか? (2)それとも各レコードに1文字づつ入れたテーブルが必要ですか? ※(1)の場合はフォームやレポートのデザインだけで作業が出来ると思います。 (2)の場合もたいていの場合クエリで加工すればいいのですが 基本的に毎日変化する ABC....を日付の情報とともに管理するので あれば、1つの元テーブルだけを持つだけでよいはずです。 縦一列の意味と役割について もう一度説明してください。

piko163
質問者

補足

何度も申し訳ありません。 縦1列にまとめて表示させたいというのは、 フォームやレポートの表示が縦一列というのではなく、 例えば新規にクエリーを作成して、 "コースまとめ"というフィールドを作って そこにコース1~コース3のデータをまとめて一列で表示させたいのです。 うまく説明できず申し訳ありません。 例えば、 日付 コースまとめ 6/17  A   (…コース1) 6/17  B   (…コース2) 6/17  C   (…コース3) という感じなんです。 意味は、1日に受けつけたコースの集約リストを作成したいからです。 こういうのを、クエリーで作成する場合の方法を教えて下さい。 ホントに何度もすみませんが、よろしくお願い致します。

  • laputart
  • ベストアンサー率34% (288/843)
回答No.3

まず、数字ではなくて文字列である場合について説明します。 ご質問の内容では、コース1、コース2、コース3の文字列を順に繋げる方法で説明します。 (1)そのテーブルから選択クエリーを作ります。 (2)クエリーの編集で新しいフィールドを作成します フィールド名に 合計:[コース1]&[コース2]&[コース3] とすると3つのフィールドの文字列がつながります。 数字フィールドの場合は [ ]+[ ] などの演算が出来ます。 ことなる種類のフィールドをつなげる事は出来ません。 ※上記の説明でちょっと不親切なら改めて質問をしてください。  

piko163
質問者

補足

詳しい説明ありがとうございます。 コース1~コース3は文字列なのですが、 新規クエリでも、同じクエリの別フィールドでもどちらでもいいのですが、 縦1列にまとめて表示させたいのです。 文字列の種類は同じなのですが、 異なるフィールドをつなげる事はやはり出来ないでしょうか・・・ 例えば、今日、 Xさんが、コース1=A コース2=B コース3=Cを選んだ場合 Yさんが、コース1=A コース2=D コース3=Fを選んだ場合 A  B C A(←Aは重複表示でもグループ化されていてもどちらでもいいです) D F というような感じで、日にち毎にコース1~3の文字列を 合体させて表示させる方法はないでしょうか? よろしくお願い致します。

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

コース1、コース2、コース3のデータは文字列ですか? 挙げた例があいまいではっきりしない。 例えば コース1 東京都 コース2 大田区 コース3 田園調布 とあって、 3つ以外のフィードに「東京都大田区田園調布」と入れたいのでしょうか。 これらは文字列結合といい、アクセスでは「&」(半角)を使って並べるだけ。「集計」ではない。 ーー 上記の例でなく、何か件数カウントや数値の集計なら、質問を訂正 し、具体例を挙げること。

piko163
質問者

補足

詳しい説明ありがとうございます。 文字列結合ではなく、 縦1列にまとめたいのです。 コース1~コース3は文字列なのですが、 下記のようにどうしても、横にコースを並べる必要があるのですが、 例えば、1日あたりの、コース1~3でAが何件か?を集計する為に コース1~3を合体させて縦1列にしたいのです。 例えば、 Xさんが、コース1=A コース2=B コース3=Cを選んだ場合 Yさんが、コース1=A コース2=D コース3=Fを選んだ場合 受付コースというフィールドを作成して A  B C A(←Aは重複表示でもグループ化されていてもどちらでもいいです) D F というような感じで、日にち毎にコース1~3の文字列を 合体させて表示させる方法はないでしょうか? つたない説明で申し訳ありません。 よろしくお願い致します。

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.1

3つのコース名を結合するだけでいいのですか? 文字の結合には&演算子を使います [コース1] & [コース2] & [コース3] こんなのは集計とはいいませんよ それに同種のものを横に並べているテーブル構造は再検討した方がいい ように思いますね

関連するQ&A