![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
No.10ベストアンサー
- 回答日時:
>select
>国名,
>sum(IIf・・・) As 16歳以上の男,
>sum(IIf・・・) As 16歳以上の女,
>sum(IIf・・・) As 16歳未満の男,
>sum(IIf・・・) As 16歳未満の女,
>from テーブル名
>group by 国名
ごめんなさい。カンマが1個所多かったです。
select
国名,
sum(IIf・・・) As 16歳以上の男,
sum(IIf・・・) As 16歳以上の女,
sum(IIf・・・) As 16歳未満の男,
sum(IIf・・・) As 16歳未満の女
from テーブル名
group by 国名;
こうですね。
No.11
- 回答日時:
あ、なるほどね。
#10,taka_tetsuさんの回答でいいかと思います。ちなみに、#7のは、国と性別が行見出しで、Over_16が列見出し、値がIDのカウント、です。
No.9
- 回答日時:
>これは恐らくクロス集計をするのかと思うのですが、
普通の集計クエリで可能です。
>フラグを立てるというとどのような形なのでしょうか?
こんな感じですかね。該当の条件に当てはまるときは1、それ以外は0とします。
16歳以上の男
IIf([性別]='男' And [生年月日]<DateSerial(Year(Now())-16,Month(Now()),Day(Now())),1,0)
16歳以上の女
IIf([性別]='女' And [生年月日]<DateSerial(Year(Now())-16,Month(Now()),Day(Now())),1,0)
16歳未満の男
IIf([性別]='男' And [生年月日]<DateSerial(Year(Now())-16,Month(Now()),Day(Now())),0,1)
16歳未満の女
IIf([性別]='女' And [生年月日]<DateSerial(Year(Now())-16,Month(Now()),Day(Now())),0,1)
>このようなようにするとしたらSQL文を作らないと駄目でしょうか?
select
国名,
sum(IIf・・・) As 16歳以上の男,
sum(IIf・・・) As 16歳以上の女,
sum(IIf・・・) As 16歳未満の男,
sum(IIf・・・) As 16歳未満の女,
from テーブル名
group by 国名
となります。
sumの括弧の中には、それぞれの式を入れてください。
この回答への補足
いまやって見ましたが、これだと何故かフラグが二つ立つのですが・・・例を挙げると
国 性別 16歳以上の男、 16歳以上の女、 16歳未満の男、 16歳未満の女
A 男 0 1 0 1
B 女 1 0 1 0
こんな感じです。
これは一体どのようなことが原因なのでしょうか?
あとSQL文にの()のところは(例)16歳以上の男の場合IIf([性別]='男' And [生年月日]<DateSerial(Year(Now())-16,Month(Now()),Day(Now())),1,0)を入れればいいんですよね?なぜか式が正しくないと表示されるのですが・・・
No.8
- 回答日時:
>国 16以上男性 16以上女性 未満男性 未満女性
>A国 3 4 3 5
>B国 6 1 4 2
作れますよ。
16以上男性フラグ、16以上女性フラグ、16未満男性フラグ、16未満女性フラグを作ってあげれば。
ただし、フラグの値は、条件に合えば1、合わなかったら0にします。
そして、それぞれのフラグは集計ではなく、値の合計を求めれば、希望の形の表になります。
この回答への補足
これは恐らくクロス集計をするのかと思うのですが、このようなようにするとしたらSQL文を作らないと駄目でしょうか?フラグを立てるというとどのような形なのでしょうか?現在あまり寝ていないので頭の回転が遅いのでその部分も教えていただけると助かります。m(__)m
補足日時:2003/12/12 00:28No.7
- 回答日時:
>IDのカウントの中は全部1という形になっているのです
そうなんですか? 当方のはこんな感じなんですが
Ct 国 性別 Over_16
3 あっち 男 ×
8 あっち 男 ○
2 あっち 女 ×
1 あっち 女 ○
3 こっち 男 ×
2 こっち 男 ○
3 こっち 女 ×
3 こっち 女 ○
で、仰るような形にするには、列が2軸のクロス集計をしなくてはいけないですね。
結論から言いますと、Accessのクエリでは、全く同じ形は出来ません。
こんな感じの表なら作れます。
国 Over_16 女 男
あっち 16以上 1 8
あっち 16未満 2 3
こっち 16以上 3 2
こっち 16未満 3 3
また、データをExcelの方に吐き出せば、Excelのピボットテーブルを使って、かなり柔軟なものを作ることが出来ます。
いずれの場合も、
1:まず、先のクエリを編集し、数式の"○"を"16以上"に、"×"を"16未満"に書き換える
2:グループ化を解除する
3:「IDのカウント」となっている部分は、適当に名前を付け替える
4:適当に名前をつけて保存する。
とします。
あとは、Accessのクエリから、クロス集計ウィザードを使って、保存したクエリを指定して、適当に進めていけば、出来るかと思います。
Excelの場合でしたら、
1:データ→ピボットテーブルと…を実行し、
2:「外部データソース」から「ピボットテーブル」を作成します。
3:データの取出しから、MS Accessを選択し、MDBファイルと、上で作成したクエリとを指定します。クエリ上のすべての列を選択して、最後の選択肢は「Microsoft Excelにデータを返す」です。
後は普通のピボットテーブルと同様の操作ですね。
ヘルプとかを参考にして頑張ってください。
書式や設定を細かく指定すれば、かなりお望みのものに近い表が作れるはずです。
この回答への補足
こんな感じの表なら作れます。
国 Over_16 女 男
あっち 16以上 1 8
あっち 16未満 2 3
こっち 16以上 3 2
こっち 16未満 3 3
何故かこのような表すらも作れなかったです・・・
作れたのは
Over_16 性 A国 B国・・・Z国
16以上 男 1 2
16未満 女 1 2
16以上 男 2 1
16未満 女 3 5
こんな感じになってしまいました。クロス集計のやり方違うんだと思うのですが、何事も寝不足なので理解力がないのでどうすればよいのか分からないのでご教授お願いします。
エクセルの集計の方は何かエラー(物理的かな)が出たので再インストールしてからやりたいと思います。
No.6
- 回答日時:
>未定義関数にDATEが引っかかりました・・・
あらら(^^;
試しに、Date() を Date に変更して試してみてくださいな。
あと、Date()ではなくて Now()にしても同様の結果が得られるはずですので、そちらでも試してみていただけますか?
それでもダメなら、矢張り#4で書いた問題(Accessのバグ)が尾をひいているような気がします。
Accessのバージョンはおいくつですか?
先に書きましたように、サービスパックの導入で現象が改善するかもしれません。
最悪、ツールを利用したOfficeの完全削除→再インストールすれば、動くようになるかと思うんですが…
>16以上だけではなく16以上かつ女性、16以上かつ男性、16未満かつ女性、16未満かつ男性という形でいきたいのですが・・・
あ、もちろんこの辺は考慮しています。
もしうまく動いていれば、年齢/性別/国別でのカウントがずらっと表示されるのが確認していただけるはずなんですが…
この回答への補足
NOW()でうまくいきました。
ACCESSのバージョンは2000です。XPにしようかと思いましたがいろいろ事情があって出来ないんです。(恐らくお金が無いということで)まぁ完全削除は覚悟はしています。
16以上だけではなく16以上かつ女性、16以上かつ男性、16未満かつ女性、16未満かつ男性
というのは
(例)
国 16以上男性 16以上女性 未満男性 未満女性
A国 3 4 3 5
B国 6 1 4 2
という形なんですが。
今の状況を説明すると
IDのカウントの中は全部1という形になっているのです。なので出来れば上記の状態で表示をさせたいのです。何かすいません。
No.5
- 回答日時:
う~ん、となると、やはりスペルミスか、入力の仕方かの問題になると思うんですが…
もう少し詳しく、エラーメッセージを書いていただけたら、解決の糸口が見つかるかもしれません。
(手元のAccess2000+SP3では動いておりますので。)
とりあえず今日は寝ます(^^;
この回答への補足
あっ何とかなりました。ただ初めに外部取り込みをしたときにネットワークエラーというのは一瞬ヒヤッとしましたが、今は問題ないです。
昨日いただいたものですが、これだとヤバいんです・・・理由は未定義関数にDATEが引っかかりました・・・
もし引っかからないとしても16以上だけではなく16以上かつ女性、16以上かつ男性、16未満かつ女性、16未満かつ男性という形でいきたいのですが・・・大変申し訳ありませんがよろしくお願いします。
No.4
- 回答日時:
ん?特に参照設定なんかを追加しなくてもOKなハズなんですが・・・
まずはタイプミスの可能性ですね。
手で打ち込まずに、コピー、ペーストで入力してみたらどうでしょうか。
それでも直らないのでしたら、ひょっとしたら、MDBが部分的に壊れているのかも。
データベースを新規作成して、ファイル→外部データの取り込み→インポートを使用して、お使いのDBのオブジェクトを全部インポートしてみてください。
(もし、参照設定の変更を行っているのでしたら、新規DBの方でも同様の作業を行ってください)
もし私の想像通りの現象だとすれば、恐らく上記の作業で直るかと思います。
お使いのAccessが2000でしたら、サービスパック3を導入すればこの現象が起こりにくくなるかと思います。
No.3
- 回答日時:
>レイアウトというとID、氏名、国名、性別、生年月日、住所です。
というレイアウトであれば、あと1つ項目を追加すれば、集計できますね。
16歳以上フラグみたいなものです。
16歳以上たったら1、未満だったら0みたいな。
追加といっても、テーブルのレイアウトを変更する必要はありません。動的に求めてしまえばいいので。
ただし、DBの種類によって求め方が異なるのでここでは
書けません。
で、あとは
select 国名, 性別, フラグ, count(*) from テーブル名
group by 国名, 性別, フラグ
こんなSQLで求まります。
>2.DBの種類は?
AccessとかOracleとかSQLServerとかってことです。
なんでしょう?
No.2
- 回答日時:
DBはAccess、ですよね。
クエリを新規作成し、フィールド欄にID,国,性別及び次の式を入力します。
Over_16: IIf([生年月日]<DateSerial(Year(Date())-16,Month(Date()),Day(Date())),"○","×")
(↑生年月日と現在日付から、満年齢で16歳以上か否かを求めています。生年月日が空の場合は、16歳未満に入力される気がします。)
で、Σのアイコンをクリックし、IDの集計のみを「カウント」に設定すれば完成かと。
この回答への補足
すいません何から何までありがとうございます。今VBで年の計算をしていたら未定義関数と出てきましたが、どのライブラリーを入れてよいかわかんないです・・・
補足日時:2003/12/09 00:57お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 政治 未だにコロナ騒動が遺伝子ワクチン(コロナワクチン)への誘導を目的としてPCR検査で演出された茶番であ 2 2023/02/22 12:39
- 理学療法士・作業療法士・言語聴覚士 日本で中絶薬が認可されようとしていますがそれについての問題点について。 8 2023/07/29 19:13
- Excel(エクセル) countif関数について質問 4 2022/06/14 12:11
- Excel(エクセル) 【Excel質問】 「本日の日付」から指定条件を満たす営業日経過後の日数を表示させる関数式 3 2022/06/06 23:28
- 結婚・離婚 独身の人は統計よりかなりいますよね? 男性の25.7%、女性の16.4%が独身とニュース見ました。 5 2023/04/13 12:09
- 政治 どんな死因で死亡してもPCR検査陽性なだけでコロナ死者にカウントされている現状をどう思いますか? 交 7 2022/08/28 07:25
- 大人・中高年 【女性・特にフェミニストの方に質問】職場におけるセクハラの定義について 2 2022/10/15 22:18
- 政治 コロナワクチン(遺伝子注射)の接種が本格化してから異常な超過死亡数になってますがこれでもコロナワクチ 3 2023/04/03 13:59
- その他(恋愛相談) 恋人の姿を見ただけで会ったことになるのか 彼氏と同じ学部で週4回ほど講義が被るので講義室で存在は見か 2 2022/09/24 14:45
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA 得意先ごと且つ日付ごとに...
-
access 集計クエリの並び順。
-
access 存在しない項目を”0件”...
-
桐の集計(集計行設定のこと)...
-
集計クエリでの抽出条件
-
Access2007でのクエリの集計
-
Accessでの集計用クエリの作成
-
ファイルメーカーでの集計
-
Access 集計クエリにて。
-
Excel 2019 のピボットテーブル...
-
IT用語について質問です。 以前...
-
エクセルVBAで5行目からオート...
-
Excelの表、重複データ2行を1...
-
アンドロイド おサイフケータイ...
-
Accessでテーブルからテーブル...
-
1ヶ月に土日は何日あるか
-
顧客・売上管理のツールをさが...
-
アクセスのテーブルを分ける理...
-
SQL文 2つのテーブルから、グ...
-
アクセス・クエリ内のフィール...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESSのクエリで集計で、先頭...
-
FROM の中で CASE を使えるでし...
-
複数列フィールド値のクロス集計
-
クロス集計の結果を元に戻す方法
-
access 存在しない項目を”0件”...
-
桐の集計(集計行設定のこと)...
-
Accessフォームにクロス集計ク...
-
AccessからExcelへエクスポート...
-
「警告 : NULL 値は集計または...
-
VBA 得意先ごと且つ日付ごとに...
-
アクセスクエリ 締め日毎で絞...
-
アクセス レポートのテキスト...
-
Accessで年齢から年代ごとの集計
-
accessクロス集計で前月21日~...
-
カウントが出来ません
-
MS-Accessのクロス集計クエリと...
-
レポートウィザードの集計のオ...
-
Access 集計クエリにて。
-
access 集計クエリの並び順。
-
ファイルメーカーからエクセル...
おすすめ情報