• ベストアンサー

accessクロス集計

accessで「T分担」テーブルを元にのクロス集計を作成したいのですが、値を先頭にすると同じ時間同じ役割の人は一人しか表示できません。下の画像のようにしたいのですがaccessでできるでしょうか。またできるのであればやり方をご教授いただきたいです。

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

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

【補足】列名の重複は許されない! ちょい補足しておけば、データベースのテーブル、クエリでは列名の重複は許されません。PSでは、このルール違反を回避するために列名を《1時》ではなくて《1時_1》《1時_2》と加工修正しています。もって、クロス集計を可能にしています。 SELECT   T分担.分担No.,   T分担.時刻,   T分担.担当者,   T分担.役割,   Format([分担No.],"00時_") & [時刻] AS 担当時刻 FROM T分担; クロス集計の前準備として、このような選択クエリを作成すれば、 1、列[1時]だけでなく列[1時_1]、[1時_2]が発生します。 2、それでいて《列重複エラー》は発生しません。 この辺りが《妥協点》です。

osakahanako
質問者

お礼

とても分かりやすくSQL文まで書いて下さりありがとうございます。これでやってみようと思います!

その他の回答 (1)

回答No.1

Q、Accessでできるでしょうか? A、出来ない。 1996年頃に数年だけAccessと関わっただけのど素人で自信はないけれど・・・ >「T分担」テーブルを元にのクロス集計を作成したい ということは、Accessが提供する形での集計しかできないってことでは? >値を先頭にすると同じ時間同じ役割の人は一人しか表示できません。 そういうことになるのが正解なのでは・・・。どうあっても独自のスタイルで集計したいのであれば、VBAでプログラミングするのが王道なのでは? PS:時刻を工夫すれば似たようなことは出来る。 Step1:選択クエリーにて時刻を加工する。 Step2:クロス集計する。 Step3:選択クエリで不要列を削除する。 問題は、全てが手動だってことです。となると、やっぱしVBAの出番だと思いますよ。ということで、私の回答は「できない!」です。

関連するQ&A