街中で見かけて「グッときた人」の思い出

測定データの分析にACCESSを使おうとしています。
サジェスチョンをお願いします。
10人の人がそれぞれ、アイテムを決めて件数(1時間の間の)をカウントするとします。
各人のデータの整理は、次のようです。
日時   Item1
2005/08/10 00:00 10
2005/08/10 01:00 10
2005/08/10 08:00 100
2005/08/10 09:00 200
2005/08/10 13:00 2000

ルールは、「0時00分から0時59分の間の件数は、0:00 として記入する」です。
データは、人によっては、時間的に抜けている場合もあります。
測定期間は、夏の時期、1週間を単位として2週間以上とあいまいにしていますので、ばらばらです。
Item1は8月10日から8月23日、Item2は7月20日から8月9日とかです。

(1)10個のテーブル(Item1,Item2,..Item10)
これを日時を使って集めるとしたら、どのようにすれば良いですか?

日時       Item1 Item2 Item3 .....
2005/08/10 00:00 10 x
2005/08/10 01:00 11 x
2005/08/10 02:00 9 x


(2)曜日(日-土)、時間(0時-23時)で集計したい場合,どうすればよいですか?
データが2週間、3週間分あったとしても、平均値を採用します。
(曜日,時間、7*24個のボックスを用意して、時間での平均値を求めるようにします)
2005/08/10 00:00 10(Item1)
2005/08/17 00:00 12(Item1)
Item1の場合、水曜日の0時は、11ということになります。

出来上がりのまとめは

曜日  時間帯  Item1 Item2 Item3 .....
日  0:00 15
日  1:00 16
日  2:00 10

月  0:00 9
月  1:00 9

水  0:00 11

よろしくお願い致します。

A 回答 (5件)

データシートビューで非表示にする列



の操作方法
 データシートビューにする  。。。のは判りますよね。
 曜日(数値)の列を選択
 メニューの書式から、列の非表示を選択

です。次に表示したい時は、書式から再表示を選択し、チェックが外れている、曜日(数値)にチェックを付けてくださいね。

これで、出来たかな?
    • good
    • 0
この回答へのお礼

ありがとうございます。目的にした物は出来ました。
行の設定等、よくわかりました。また、出来上がったクロス集計クエリのデータビューでのメニューも「うろこがおちる」思いでした。ありがとうございます。
アクセスを使うということは、列に仕分けのデータ(Item1,Item2..)とかをわざわざ入れて(後でクロス集計を使うために)・・・・デザインビューで細工をしたり、多分、さらにクエリを使って別の分析にひきわたしたりもありだろうと思います。
少し、アクセスを使っての分析に慣れました。ありがとうございます。

お礼日時:2005/08/31 10:49

曜日の漢字は行のフィールドに指定します。


行のフィールドは3種類になりますね。

1 曜日(数字)
2 曜日(漢字)
3 時間

データシートビューで非表示にする列は、1の曜日(数字)ですよ。
    • good
    • 0

時間ですが。


火 0
火 1
火 10
火 11   この並びは、文字になっているようですね。

時間の関数を、 cInt([時間の関数]) 関数で囲んで下さいね。cI (←アイです)nt 関数で数値に変換されます。
    • good
    • 0
この回答へのお礼

時間に関しては解決しました。ありがとうございます。

お礼日時:2005/08/30 09:40

行の見出しの為に、もう一つ計算式を。



式:Weekday(Item1!日時)

日曜日が1、月曜日が2・・・という数値が出来ます。
クロス集計クエリに行見出しとして追加して下さい。こちらで並べ替えしておいて、データシートビューにした時に、数値の曜日は列の非表示にしておけば、気にならなくなりますよ。

あと、時間ですが。。。1:00から始めて0:00で終わりたい!って事でしょうか?
0:00から始めて23:00で終了ならば、
Hour(Item1!日時) の計算式、昇順の並べ替え設定で、出来ましたけど。。。

この回答への補足

曜日に関しては、まだ解決していません。クロス集計の行には、曜日(数字)、時間を設定、列にはItemを設定、データはデータ。出来上がった、クロス集計クエリのデザインビューで、曜日(漢字「月」とかの)を行として追加するのでしょうか? 非表示というものがないのですが。

補足日時:2005/08/30 09:44
    • good
    • 0

私だったら。

。。という方法を書き込みますね。

1.テーブル Item1 作成  → Item10まで
   フィールド 日時  日付/時刻
         数量  数値型

2.テーブル 集計 作成
   フィールド 日時
         曜日
         時間
         数量
         テーブル名  Item1~10迄の名称を入れます

3.追加クエリの作成
   Item1追加  基となるテーブル Item1
    フィールド 日時 → 「集計」テーブル  日時
          数量 →    〃       数量
          式1:"Item1" → テーブル名
          式2:Left(WeekdayName(Weekday(Item1!日時)),1) → 曜日
          式3:Hour(Item1!日時) → 時間

   同様に
   Item10迄分の追加クエリを作成します

4.フォーム作成  ピボットテーブルウィザード  基となるテーブル 集計
 (1)  選択したフィールド  日時・・・行フィールドへ
                数量・・・詳細フィールドへ
                テーブル名・・・列フィールドへ
     作成後、数量のところで右クリック → 選択範囲計算「合計」

 (2)  選択したフィールド  曜日・・・行フィールドへ
                時間・・・  〃   へ
                数量・・・詳細フィールドへ
                テーブル名・・・列フィールドへ
     作成後、数量のところで右クリック → 選択範囲計算「平均」

5.マクロ作成
    (1)集計テーブルのデータ全削除
    (2)Item1追加クエリの実行
      〃
    (11)Item10追加クエリの実行

6.フォーム(1)と(2)を開くときのイベントにマクロを登録



で作成しますけど、どうかしら?

この回答への補足

下記の2点が問題であることがわかりました。
クロスクエリを取った時、曜日と時間が期待通りに出てきません。
火 0
火 1
火 10
火 11
|
金 0

金 10
金 11
|

となってしまいました。これは防ぐにはどうすればよいでしょうか?

補足日時:2005/08/26 12:28
    • good
    • 0
この回答へのお礼

ありがとうございます。集計テーブルというものを作成して縦にならべてしまう(区別はデーブル名)のが味噌ですね。問題がひとつ。仮に特定の日全員が揃ってストライキをしてデータが集まらなかったらフォーム1の表でその情報が表に出てきません。フォーム2の方は平均を取っているので、問題はありませんが。

お礼日時:2005/08/25 12:53

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