- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ACCESSのテーブル【住所録】で名字毎に何人いるかカウントしたい)
MS ACCESSの【住所録】テーブルで名字別人数をカウントする方法は?
このQ&Aのポイント
- MS ACCESS2002のデータベースで【住所録】テーブルがあり、名字別に人数をカウントする方法について教えてください。
- 【住所録】テーブルの『氏名』フィールドには名字と名前がアンダーバーで区切られており、この『氏名』の名字をグループ化して人数をカウントするクエリを作成したいです。
- 名字別の人数をカウントするクエリ以外にも、別のアプローチがあれば教えていただきたいです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
以下でどうでしょうか。 クエリのSQLビューに記述してみてください。 SELECT Left(住所録.氏名,InStr(住所録.氏名 & '_','_')-1) AS 氏名 , Count(*) AS 人数 FROM 住所録 GROUP BY Left(住所録.氏名,InStr(住所録.氏名 & '_','_')-1) ORDER BY Count(*) DESC , Left(住所録.氏名,InStr(住所録.氏名 & '_', '_')-1); > 『氏名』フィールドには鈴木_太郎、田中_幸子、佐藤_一郎、等アンダーバーで名字と名前を区切ったフルネームが入っています ということですが、_ が入っていないことを考え 住所録.氏名 & '_' と加工(必ず入っているのなら必要ありません)した後、_ の位置の前まで InStr(住所録.氏名 & '_','_')-1 を抜き出します。 Left(住所録.氏名,InStr(住所録.氏名 & '_','_')-1) これで、グループ化し、表示し、カウントを取ります。 並べ替えは、カウント降順、氏名部分の昇順 を指定しています。
お礼
ありがとうございました!! 想定通りのクエリが完成しました。 ありがとうございます。 もう少し精進します。