重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【6/2終了】教えて!gooアプリ版配信終了

初めて投稿します。不備などありましたら随時ご指摘いただけますと幸いです。

実はとあるイベントの参加状況について集計をしたいのですが、
今週からACCESSを一から勉強し始めたばかりでして、
解決方法がわからず困っており、お力添えをいただきたく投稿いたしました。

【元データ】
UID|地域|開催回数|情報1|情報2
-------------------------------------------------
AAA|東京|0001|111|333
BBB|沖縄|0001|222|
AAA|東京|0002|   |999
CCC|青森|0003|   |222

といったテーブルデータがあるのですが、
こちらを開催回数毎に横に展開したく、

【集計後データ】
     |開催回数0001   |開催回数0002   |開催回数0003   |
UID|地域|情報1|情報2|情報3|情報1|情報2|情報3|情報1|情報2|情報3|
-----------------------------------------------------------------------------------------------
AAA|東京|111|333|あああ|   |999|   |   |   |   |
BBB|沖縄|222|   |   |   |   |   |   |   |   |
CCC|青森|   |   |   |   |   |   |   |222|   |

のように展開することは可能なのでしょうか。
また情報3という項目なのですが、情報1が111以上でかつ情報2が111以上の時に
あああが表示されるようにしたいです。

同様の質問を探してはみたものの、
まだ実際の集計業務に落とし込むまでに至っておらず、
大変恐縮なのですが方法をご教示いただきたいです。

おそらく知識と経験がある程度あれば簡単なのかとは思うのですが…
まだVBAもほぼほぼ使えないような状態のため、
クエリや集計のボタンなど、GUIベースの方法で解決できると大変有り難いです。

とはいえ
将来的にはアクセスVBAも使用していく予定なので、
もしVBAを使わないと難しい場合は、その方法でも可能です。

ちなみにACCESS2007を使用しています。
なにとぞよろしくお願いいたします。

A 回答 (2件)

ACCESSのピボットテーブルは使ったことがないですが出来そうです。


http://itdiary.info/microsoft-office/post-93/

元データから情報3を追加したクエリを作成しピボットテーブルビューで表示させる。


>また情報3という項目なのですが、情報1が111以上でかつ情報2が111以上の時に
あああが表示されるようにしたいです。

情報1、情報2が数値型の場合はクエリのフィールドに
情報3: IIf([情報1]>=111 And [情報2]>=111,"あああ","")
で情報3のフィールドを追加する。
    • good
    • 0

クロス集計クエリは、列見出しは一つしか指定出来ません。

なので、今
回の様な複数行は別途の作りが必要です。列見出しを一つと仮定しても
そんなに簡単では有りません。

と言うのは列見出しがここでは重複しているからです。だから、列見出
しに付いては仮の見出しを作って後で修正をすると言う事になります。
この部分はAccessでは出来ません。

最後の出力に関しては、出来るとすれば一旦htmlで作ってからそれを
フォームに落とすと言う事になります。この部分はvbaと言うよりかは
他の言語の方が良い様な気がしますが。

やり方としては、かなりに面倒な方法になります。
1. 前の出力テーブルを削除する。
2. 最初に情報3を情報1と情報2を使って更新します。
3. uidをグループ化してuserのテーブルを作る。
4. 開催回数をグループ化して開催回数のテーブルを作る。
5. 出力のテーブルを最初はuid,地域を仮に作る。
6. uidを使って出力にuidと地域を追加する。
7. メイン入力ループを二つ用意する。
8. 一つは、userのテーブルからuidを取り出す。
9. 次は開催回数のテーブルから開催回数を取り出す。
10. uidと開催回数からalter tableで出力にadd columnで項目を追加
11. uidと開催回数を使って情報1と情報2と情報3を作る。
12. 以降は8から11の処理を繰り返す。
13. 上記でクロス集計テーブルは出来たので、これをcsvに出力する。
14. 出力のテーブルからhtmlを作る。
15. 出来たhtmlをナビゲートする為のフォームを作る
16. フォームのナビゲートするvbaを作る
17. ナビゲートするフォームを開く。
18. 17のフォームを開くと出来上がり。

上記の手順になります。

後はこれを追い追いとvbaのコードを追加して行くだけの作業です。
以上です。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

今、見られている記事はコレ!