Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1518 / 2272 ツリー ←次へ | 前へ→

【6709】集計機能 haramama 05/11/1(火) 15:14 質問[未読]
【6710】Re:集計機能 小僧 05/11/1(火) 16:11 回答[未読]
【6717】Re:集計機能 haramama 05/11/2(水) 10:42 質問[未読]
【6718】Re:集計機能 小僧 05/11/2(水) 11:42 発言[未読]
【6719】Re:集計機能 haramama 05/11/2(水) 13:12 質問[未読]
【6721】Re:集計機能 小僧 05/11/2(水) 14:58 回答[未読]
【6725】Re:集計機能 haramama 05/11/2(水) 17:18 質問[未読]
【6726】Re:集計機能 小僧 05/11/2(水) 17:45 発言[未読]
【6727】Re:集計機能 haramama 05/11/2(水) 18:45 お礼[未読]
【6780】Re:集計機能 haramama 05/11/9(水) 11:58 質問[未読]
【6781】Re:集計機能 たん 05/11/9(水) 12:17 お礼[未読]
【6782】Re:集計機能 たん 05/11/9(水) 12:19 回答[未読]
【6787】Re:集計機能 通りすがり 05/11/10(木) 10:49 発言[未読]
【6783】Re:集計機能 haramama 05/11/9(水) 13:22 質問[未読]
【6784】Re:集計機能 haramama 05/11/9(水) 13:27 お礼[未読]

【6709】集計機能
質問  haramama  - 05/11/1(火) 15:14 -

引用なし
パスワード
   初歩の質問で申し訳有りません。
2百万件のデータを集計したいのですが、Accessにて
Excelの集計機能のようなものはあるのでしょうか?
クロス集計でやってみたのですが、うまくいきません。

日付 時刻  データ1 データ2
5/1 010060 abc    iii 
5/2 010060 bcf    kkk
5/2 010062 abc    jjj

・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・
2百万件つづく

結果

abc  200件
cf  150件

・・・・・・
・・・・・・

データ1毎に件数を出したい。
多い順に並べ替え。

分かり辛いくて申し訳有りませんが
教えていただけると助かります。

【6710】Re:集計機能
回答  小僧  - 05/11/1(火) 16:11 -

引用なし
パスワード
   ▼haramama さん:
こんにちは。

>  データ1毎に件数を出したい。
>  多い順に並べ替え。

SELECT テーブル名.データ1, Count(テーブル名.データ1) AS データ1のカウント
FROM テーブル名
GROUP BY テーブル名.データ1
ORDER BY Count(テーブル名.データ1) DESC;

クエリの SQL ビューに上記 SQL を記述して結果を確認されてみて下さい。

【6717】Re:集計機能
質問  haramama  - 05/11/2(水) 10:42 -

引用なし
パスワード
   ▼小僧 さん:
ありがとうございます。

集計のフィールドが2つ以上ある場合も
教えていただいたselect文を改良して
できるものでしょうか?

# Excelですと、集計を繰り返せばできるのですが、、

本当に申し訳有りませんが、教えていただけると
助かります。

【6718】Re:集計機能
発言  小僧  - 05/11/2(水) 11:42 -

引用なし
パスワード
   ▼haramama さん:
こんにちは。

># Excelですと、集計を繰り返せばできるのですが、、

まず、Excel の表と、Access(に限らず、データベース)のテーブルは
全く違うものである、と思ってください。

>日付 時刻  データ1 データ2
>5/1 010060 abc    iii 
>5/2 010060 bcf    kkk
>5/2 010062 abc    jjj
5/3 012345 bcf    kkk

bcf kkk 2件
abc iii 1件
abc jjj 1件

のような処理は可能ですが、

abc 2件  kkk 2件
bcf 2件  iii 1件
      jjj 1件

のような表を一つにする事はできません。
(abcが2件という事と、kkkが2件という事には何の関連もないため)

正規化 をキーワードにすると様々な例が出て来ると思われますが、

日付 時刻  Data 種別
5/1 010060 abc  データ1 
5/1 010060 iii  データ2
5/2 010060 bcf  データ1
5/2 010060 kkk  データ2
5/2 010062 abc  データ1
5/2 010062 jjj  データ2

このようなデータの持ち方ですと、集計しやすくなりますね。

【6719】Re:集計機能
質問  haramama  - 05/11/2(水) 13:12 -

引用なし
パスワード
   ▼小僧 さん:

ご親切に回答頂き本当にありがとうございます。
フィールドが複数ある場合の集計が無理なのは
よく分かりました。

もうひとつ質問宜しいでしょうか?

>>日付 時刻  データ1 データ2
>>5/1 010060 abc    iii 
>>5/2 010060 bcf    kkk
>>5/2 010062 abc    jjj
> 5/3 012345 qqq    kkk

2百万くらいのデータの中に、データ2が200種類くらい
あって、それぞれのデータ1の件数を知りたいと
思っています。

例えば上の例ですとkkkの中にはbcf,qqqがあるので
2件というふうに集計したいと思っています。
教えていただけると本当に助かります。
申し訳有りません・・・


>
>bcf kkk 2件
>abc iii 1件
>abc jjj 1件
>
>のような処理は可能ですが、
>
>abc 2件  kkk 2件
>bcf 2件  iii 1件
>      jjj 1件
>
>のような表を一つにする事はできません。
>(abcが2件という事と、kkkが2件という事には何の関連もないため)
>
>正規化 をキーワードにすると様々な例が出て来ると思われますが、
>
>日付 時刻  Data 種別
>5/1 010060 abc  データ1 
>5/1 010060 iii  データ2
>5/2 010060 bcf  データ1
>5/2 010060 kkk  データ2
>5/2 010062 abc  データ1
>5/2 010062 jjj  データ2
>
>このようなデータの持ち方ですと、集計しやすくなりますね。

【6721】Re:集計機能
回答  小僧  - 05/11/2(水) 14:58 -

引用なし
パスワード
   ▼haramama さん:
こんにちは。

SELECT テーブル名.データ2, Count(テーブル名.データ1) AS データ1のカウント
FROM テーブル名
GROUP BY テーブル名.データ2
ORDER BY Count(テーブル名.データ1)

上記 SQL をクエリの SQL ビューに貼り付けて結果を確認されてみて下さい。


こういったテーブルの集計などの操作は、
Access の知識というよりは SQL の知識が必要となってきますね。

【6725】Re:集計機能
質問  haramama  - 05/11/2(水) 17:18 -

引用なし
パスワード
   ▼小僧 さん:

本当にありがとうございます!!

SQLビューを使ったことが無いのですが、
ユニオンとパススルーとデーター定義の
どちらに貼り付ければいいのでしょうか??

初心者で申し訳有りません。。

【6726】Re:集計機能
発言  小僧  - 05/11/2(水) 17:45 -

引用なし
パスワード
   ▼haramama さん:
こんにちは。

[挿入] → [クエリ] → [デザインビュー] でテーブルを選択しないで[閉じる]

[表示] → [SQLビュー] を選択。

表示されている「SELECT;」を消して先ほどのSQLを記載し

[表示] → [データシートビュー] で確認してみて下さい。

【6727】Re:集計機能
お礼  haramama  - 05/11/2(水) 18:45 -

引用なし
パスワード
   ▼小僧 さん:

本当に本当にありがとうございます。
安易に聞いてばかりいて、とても申し訳
ないと思っています。

社内でAccessについて聞ける人が居ず
またWebで検索しても、このような初心者
の質問にはダイレクトにヒットせず、
困りきっていました。
(あせると余計に調べたいことが出てきません、、、)

今後ともよろしくお願いいたします。

【6780】Re:集計機能
質問  haramama  - 05/11/9(水) 11:58 -

引用なし
パスワード
   ▼小僧 さん:

先日はありがとうございました。
教えて頂き、大変参考になりました。
が、私の説明が悪いので求めていた結果には
なりませんでしたので、再度質問しても
宜しいでしょうか?

以下のSQL文にカウント関数を入れて、ID_1の種類数を調べたいのです。

-------------------------------------------------------------------------------------------------------------------------------
SELECT 元テーブル.日付, 元テーブル.時刻, 元テーブル.データ内容, 元テーブル.ID_1, 元テーブル.ID_2, 元テーブル.データの種類
FROM 元テーブル
GROUP BY 元テーブル.日付, 元テーブル.時刻, 元テーブル.データ内容, 元テーブル.ID_1, 元テーブル.ID_2, 元テーブル.データの種類
HAVING (((元テーブル.データの種類) Like "りんご"))
ORDER BY 元テーブル.データ内容, 元テーブル.ID_1;

------------------------------------------------------------------------------------------------------------------------------

元テーブルは、以下のようになっています。

--------------------------------------------------------------

日付   時刻   データ内容   ID_1   ID_2  データの種類
11/8   175001   富士     111    abc   りんご
11/8   175001   富士     333    abc   りんご
11/8   175001   富士     333    abc   りんご
11/8   175001   富士     333    abc   りんご
11/8   175001   富士     555    abc   りんご
11/8   175001   富士     555    abc   りんご
11/8   175001   富士     555    abc   りんご
11/8   175001   富士     555    abc   りんご
11/8   175001   富士     666    abc   りんご
11/8   175001   つがる    222    abc   りんご
11/8   175001   つがる    888    abc   りんご
11/8   175001   王林     999    abc   りんご
11/8   175001   王林     222    abc   りんご
11/8   175001   王林     111    abc   りんご
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
100万件くらい続く

-----------------------------------------------------------------
求める結果

データの種類  データの内容  ID_1
 りんご     富士     111   1件
 りんご     富士     333   3件
 りんご     富士     555   4件
 りんご     富士     666   1件
 りんご     つがる    222   1件
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

------------------------------------------------------------------
件数が多く、Excelでは無理なのでAccessで実行したいと思っています。

教えていただけると大変助かります。

【6781】Re:集計機能
お礼  たん  - 05/11/9(水) 12:17 -

引用なし
パスワード
   横から失礼。

>が、私の説明が悪いので求めていた結果には
>なりませんでしたので、再度質問しても
>日付   時刻   データ内容   ID_1   ID_2  データの種類
>11/8   175001   富士     111    abc   りんご
>11/8   175001   富士     333    abc   りんご

>求める結果
>データの種類  データの内容  ID_1
> りんご     富士     111   1件
> りんご     富士     333   3件

というか、元のテーブルからなら、
データの種類  データの内容  ID_1    ID_1
グループ化   グループ化   グループ化  カウント

で取得出来る話。
それを元のクエリとどう組み合わせるかは別。

【6782】Re:集計機能
回答  たん  - 05/11/9(水) 12:19 -

引用なし
パスワード
   # あ、礼じゃないよ。

最初から元データを出しておけば、話は早かったのでは?
と思うけどね。

【6783】Re:集計機能
質問  haramama  - 05/11/9(水) 13:22 -

引用なし
パスワード
   ▼たん さん:


ありがとうございますm(__)m

>データの種類  データの内容  ID_1    ID_1
>グループ化   グループ化   グループ化  カウント
>

上記のアドバイス通り実行してみたところ
”抽出条件が一致しません”
と表示されました。

カウントとしてあるところは、Count関数を式ビルダ
から入れました。

申し訳有りません、再度アドバイスいただけると助かります。

【6784】Re:集計機能
お礼  haramama  - 05/11/9(水) 13:27 -

引用なし
パスワード
   ▼たん さん:

アドバイスありがとうございます。
集計欄でカウントを選択するんですね。
すみません、勘違いしてました。

実行できました!
感謝いたします。

【6787】Re:集計機能
発言  通りすがり  - 05/11/10(木) 10:49 -

引用なし
パスワード
   # あ、礼じゃないよ。

話が早く済めば良いというものでは無いのでは?
と思うけどね。

1518 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078229
(SS)C-BOARD v3.8 is Free