プロが教えるわが家の防犯対策術!

Access2016です。
「会員」というテーブルに、「名前」フィールドと「年齢」フィールドが数百件入力されているAccessのファイルがあります。

これを以下のように集計して表示させたいと思い、ネットで「Access 年齢 集計」等での検索上位「Partition」関数を駆使してみましたが、集計されるものの年代別で合計できなかったり、小数点が表示されたりと、うまくいきませんでした。
集計例のように表示するにはどのような操作が必要でしょうか。
ネットで探した操作手順の「クエリを追加しておき」という意味もわからない程ですので、
細かな手順まで教えていただくと助かります。

テーブル:
名前/1年齢
AAA/10
BBB/30
CCC/50
DDD/25
EEE/35

集計例1:
年齢層/合計数
10代/1
20代/1
30代/2
40代/0
50代/1

集計例2:
年齢層/合計数
10歳~19歳/1
20歳~29歳/1
30歳~39代/2
40歳~49歳/0
50歳~  /1

A 回答 (3件)

こんな感じですかね。



SELECT ([年齢]\10)*10 & "代" AS 年齢層, Count([年齢]\10) AS 合計数
FROM 会員
GROUP BY ([年齢]\10)*10 & "代";

クエリの SQLビューに貼り付けてください。
    • good
    • 0

集計1の方が簡単ですけどね。


例えば、
年代:iif(年齢<10、0代、iif(年齢<20、10代、…
みたいなね。(スマホなんで勘弁して)

他にも、年代表示用にテーブル用意する方法もある。
年齢フィールドと年代フィールドを用意して、年齢ごとにレコード作って、クエリで連結させて年代を表示する感じ。

ちなみに、Accessでもピボットはあるよ。
使い勝手は悪いけどね。重いし。
    • good
    • 0

グループ集計すればいいだけですよね?


一列追加して、そこに年代を入れる。
その年代をグルーピングしてカウントを取る、と。
年代は、パーティション関数というものがあるならそれ使ったらいいし、別にiif関数でもできると思うけど。

今、どこまでできてるの?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
Access2016はピボットテーブルがないのですね・・・・

以下構文で、なんとか「集計例2:」に近い表示ができました。
フィールド:Replace(Partition([年齢],10,50,10),":","~") / [年齢]
集計:グループ化 / カウント

表示を工夫して、集計例1のように表示できないものなのでしょうか。

お礼日時:2018/07/10 15:37

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