- 締切済み
ACCESSのクロス集計クエリを使って・・・・
- みんなの回答 (3)
- 専門家の回答
みんなの回答
たびたびすみません。 1つの担当に対する名前の数も不定なんですよね? 1つ名案が浮かびましたので参考までに… まず、テーブルを3つに分けます。 T_担当 担当ID(主キー)、担当名 T_名前 名前ID(主キー)、名前 T_統合 統合ID(主キー)、名前ID、担当ID 次に標準モジュール内に以下の関数を作成します。 Function GetName(TantouID As Long, Number As Long) As String Dim dbs As DAO.Database Dim rst As DAO.Recordset Dim SQL As String Dim RecCnt As Long Dim i As Integer Dim Namelist As Variant SQL = "SELECT 名前 FROM ((T_統合 INNER JOIN T_名前 ON T_統合.名前ID=T_名前.名前ID) INNER JOIN T_担当 ON T_統合.担当ID=T_担当.担当ID) WHERE T_統合.担当ID=" & TantouID & " ORDER BY T_統合.名前ID" Set dbs = CurrentDb Set rst = dbs.OpenRecordset(SQL) If rst.BOF And rst.EOF Then GetName = "" Else rst.MoveLast RecCnt = rst.RecordCount rst.MoveFirst ReDim Namelist(RecCnt - 1) As String For i = 0 To RecCnt - 1 Namelist(i) = rst!名前 rst.MoveNext Next If UBound(Namelist) < Number - 1 Then GetName = "" Else GetName = Namelist(Number - 1) End If End If End Function 最後にクエリを作成します。 基になるテーブルはT_担当でフィールドは 担当者名、名前1: GetName([担当ID],1)、名前2: GetName([担当ID],2)、名前3: GetName([担当ID],3)、… といった形で必要な数だけ名前のフィールドを作成すればご希望のものが出来上がるかと思います。 テーブル名、フィールド名等は適当に変更してください。 説明が下手なので分からないことが多々あるかと思いますが参考にしてみてください。
いろいろ考えてみましたが、クロス集計ではできないと思います。 レポート&イベントプロシージャならできそうな気がしますが…。 力になれなくてすみません。
いまいちテーブルの構造が分からないのですが、1つの名前に対して担当は3つと決まっているのでしょうか?
補足
ありがとうございます。担当は人によって違います。1から20ぐらいまであります。
関連するQ&A
- アクセス クロス集計クエリ→テーブル作成クエリ
クロス集計クエリは、 そのままテーブル作成クエリを使って クロス集計クエリのままテーブルにすることはできないのでしょうか? クロス集計クエリの時は、行見出し・列見出しがあるのに、 そのままテーブルにはなりません。
- 締切済み
- その他MS Office製品
- ACCESSのクロス集計クエリについて
ACCESS2000のクロス集計クエリで超初歩的な質問なのですが、、 こんなテーブルがあります。 メーカー 商品名 A社 テレビ B社 テレビ A社 ラジオ A社 テレビ これをACCESSのクロス集計クエリでこんな感じにしたいです。 メーカー 商品名 集計 A社 テレビ 2 A社 ラジオ 1 B社 テレビ 1 エクセルでは、行見出しに「メーカー」と「商品名」を入れて値に「メーカー」か「商品名」どちらかを入れれば希望通りの結果になるのですが、ACCESSのクロス集計では、列見出しに必ず入れないとエラーが出るようです。入れなくても良い方法かもっといい方法がありましたらご教授ください。
- ベストアンサー
- オフィス系ソフト
- Accessのクロス集計について
お願いします アクセスで次のようなアンケートCSVをインポートして集計しています。質問1・2に入力されるのは選択肢番号です <アンケート結果テーブル> 名前 回答者 質問1 ========================== 20080710 Aさん 1 20080710 Bさん 2 20080710 Cさん 5 上記をクロス集計を行い日別の集計を行っております。 <クロス集計> 日付 1 2 5 =========================== 20080710 1 1 1 上記の結果を回答がなかった選択番号は下記のように0を表示させたいのですがどうすればよろしいでしょうか? 日付 1 2 3 4 5 =========================== 20080710 1 1 0 0 1
- ベストアンサー
- オフィス系ソフト
- Access2003 クロス集計クエリでの合計
☆以下のようなテーブルで、フィールド[ID]~[C]があり、文字および数字のデータが混在しています。 ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ =========================================== (テーブル(1)) [ID] [A] [B] [C] 1 111 英語 10 2 222 英語 20 3 333 数学 30 4 111 国語 40 5 222 数学 50 6 333 国語 60 7 222 国語 70 8 333 英語 80 9 111 数学 90 =========================================== [課題] クロス集計クエリを作成する (1) フィールド[A]を行見出しに設定、 フィールド[B]を列見出しに設定、 フィールド[C]を集計する項目に設定する。 (2) フィールド[C]の値を列ごとに平均を計算し、 行ごとに合計を計算する。 ※ 列と行で、それぞれ集計した値を表示する ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ =========================================== [クロス集計結果] 合計 英語 国語 数学 111 140 10 40 90 222 140 20 70 50 333 170 80 60 30 --------------- 平均 150 36 56 56 =========================================== ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ 上記のようなクロス集計クエリの結果を表示させたいのですが、 どうすればよろしいでしょうか? また、クエリだけでは出来ない場合は、SQLで教えていただければ幸いでございます。 お手数お掛けしますが、何とぞ宜しくお願い致します。
- ベストアンサー
- その他MS Office製品
- クロス集計 エクセル
アクセスにはクエリにクロス集計がありますが エクセルにもクロス集計と言う機能があるのでしょうか? エクセル2010を持っています。 ピボットテーブルの事を クロス集計と呼ぶのでしょうか?
- ベストアンサー
- Excel(エクセル)
- クロス集計クエリの結果を一時テーブルに保存する
タイトルのような操作を求め下記のようなやり方を発見したのですが、なぜこのような2種類のクエリを作成しなければならないのかがわかりません。 2つのクエリの意味・役割をご存知の方がいらっしゃったら教えて下さい。 宜しくお願いします。 Q あるテーブルからクロス集計クエリを作成し、そのままそのクエリをテーブル作成クエリにしたところ、クロス集計が解除されてしまいます。クロス集計の結果をテーブルに保存することはできないのでしょうか A クロス集計クエリを作成して、そのままそのクエリをテーブル作成クエリにすることはできないようです。 その場合は、クエリを2つ作成し2段階でテーブルを作成するようにします。 1つめのクエリではテーブルなどを基にしてクロス集計を行います。 2つめのクエリでは1つめのクエリを「テーブルの表示」一覧から「クエリ」タブに切り替えて選択してテーブル作成クエリとします。 参照:http://www.nbcom.co.jp/PC-Support/FAQ/acc/ht/acc092004ht001.shtml
- ベストアンサー
- その他MS Office製品
- accessでクロス集計した結果を摘出する方法
access2007を使っています。 ロータスアプローチからの乗り換えなのでかなり使い方が違い戸惑っています。 クエリよりクロス集計をし、その結果を他のクエリに反映させたいのですが、方法が判りません。 また、クロス集計以外で似たようなデータ摘出方法があれば教えてください。
- ベストアンサー
- オフィス系ソフト
- Access2003 クロス集計で集計値を四捨五入
☆以下のようなテーブルで、フィールド[ID]~[点数]があり、文字および数字のデータが混在しています。 ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ =========================================== (テーブル(1)) [ID] [クラス] [科目] [点数] 1 A 英語 11 2 B 英語 22 3 C 数学 33 4 A 国語 44 5 B 数学 55 6 C 国語 66 7 B 国語 77 8 C 英語 88 9 A 数学 99 =========================================== ☆上記のテーブルをクロス集計クエリで集計する ・フィールド[クラス]を行見出しに設定、 ・フィールド[科目]を列見出しに設定、 ・フィールド[点数]を集計する項目にし主計方法を「合計」に設定する。 =========================================== [クロス集計結果] 合計 英語 国語 数学 A 154 11 44 99 B 154 22 88 55 C 187 99 77 33 =========================================== [課題] クロス集計クエリで、集計値を四捨五入する (1) フィールド[クラス]を行見出しに設定、 フィールド[科目]を列見出しに設定、 フィールド[点数]を集計する項目にし主計方法を「合計」に設定する。 (2) クロス集計の値を、下1桁で四捨五入した値を表示する。 (3) 「合計」の値を、下1桁で四捨五入した値を表示する。 ※ クロス集計した合計値を、四捨五入した値を表示する ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ =========================================== [クロス集計結果] 合計 英語 国語 数学 A 150 10 40 100 B 150 20 80 60 C 190 90 70 30 =========================================== ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ 上記のように、クロス集計クエリでの集計値を四捨五入して 表示させたいのですが、どうすればよろしいでしょうか? また、クエリだけでは出来ない場合は、SQLで教えていただければ 幸いでございます。 お手数お掛けしますが、何とぞ宜しくお願い致します。
- ベストアンサー
- その他MS Office製品
お礼
お手数掛けして申し訳ありません。レポート&イベントプロシージャでの作成方法についてご教授いただければありがたいのですが。