Access2010で下記のような条件で集計をしたいと思っています。
-------------------------------
テーブル1
フィールド(1):顧客番号
フィールド(2):売上金額
フィールド(3):売上月
001/100円/1月
002/ 50円/1月
003/200円/1月
004/150円/1月
テーブル2
フィールド:(1)顧客番号
フィールド(2)集約先(顧客番号)
001/002
002/003
★完成クエリ
フィールド(1)顧客番号(集約)
フィールド(2)売上金額
フィールド(3)売上月
003/350円/1月
004/150円/1月
-------------------------------
顧客番号ごとの売上金額を集計しますが、
その際、集約先を持つ顧客番号については、
集約先を参照し、顧客番号(集約)という括りで集計したいと思っています。
Excelだと、IF関数を使って「もし集約先セルが空欄なら顧客番号を参照してコピーする」等して、
顧客番号(集約)の列で括って集計する、と考えたりできるのですが、
Accessは不慣れなこともあって、なかなか良い方法が思いつきません・・・。
どうか集計方法をご教授いただけないでしょうか。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
テーブル1として
テーブル名「T9」
フィールド:顧客番号(テキスト)/ 売上金額(通貨) / 売上月(テキスト)
テーブル2として
テーブル名「T9A」
フィールド:顧客番号(テキスト)/ 集約先番号(テキスト)
と仮定します。
標準モジュールに以下を記述しておきます。
Public Function Bango(sSrc As String) As String
Dim rs As New ADODB.Recordset
Dim sR As String
sR = sSrc
rs.Source = "SELECT * FROM T9A WHERE 顧客番号='" & sSrc & "';"
rs.Open , CurrentProject.Connection, adOpenForwardOnly, adLockReadOnly
If (Not rs.EOF) Then sR = Bango(rs("集約先番号"))
rs.Close
Bango = sR
End Function
クエリの SQL ビューで以下を記述します。
SELECT Bango(顧客番号) AS 集約番号, Sum(売上金額) AS 売上金額計, 売上月
FROM T9
GROUP BY Bango(顧客番号), 売上月;
※ 処理性能はわかりません
※ 不都合あれば修正してください
ご回答ありがとうございます!
早速試してみたところ、期待通りの結果が出ました!
この機会にVBAをきちんと勉強したいと思います。
どうもありがとうございました。
No.1
- 回答日時:
集約先には複数の顧客番号が含まれるということですね
テーブル1に集約先も入れておいて集約させない場合は顧客場号と同じ物を記載
集計時に集約先で集計ではだめかな
顧客番号を二回記入するのが面倒なら
顧客ナンバーと集約ナンバーのテーブルつくって顧客ナンバー記入したら自動的に集約ナンバーはいるようにすればいい
複雑にしない方が逆に楽ですよ
ご回答ありがとうございます!
同じテーブル内で集約先も追加してしまうんですね。
自動入力のアドバイスも大変参考になります。
ありがとうございます。
ただ、書き漏らしがあって申し訳ないのですが、
「集約先(顧客番号)」は入れ子のようになっている場合があります(集約先の集約先がある)
テーブル2のように、
>001/002
>002/003
と、002と003が別の集計ではなく、
003(002+001)の集計結果が欲しいです。
なので、集約先が空白になるまで参照するマクロが必要かな?とも思っていました。
今回ご回答いただいたような、スマートな方法があればよいのですが・・・。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Access IF文でテーブルに存在しない場合の処理について 2 2022/10/10 18:09
- 経営情報システム 起業とサービス価格設定 3 2023/04/12 11:29
- Visual Basic(VBA) 指定月分の顧客データファイルを統合して並べ替え、所定の場所に貼り付ける 3 2022/09/10 07:55
- Excel(エクセル) Excel 指定した固有番号で、複数の行を削除する方法は? 2 2022/03/30 15:18
- Excel(エクセル) 関数の式を教えてください 2 2022/04/04 11:15
- Visual Basic(VBA) 複数ページあるPDFファイル内の文字列等の情報をキーにPDFをグループ分け分割したい。 2 2022/06/25 09:51
- Excel(エクセル) Excelで、別シートへ情報を参照表示する関数について。 2 2023/06/26 09:58
- Visual Basic(VBA) 指定月分の顧客データファイルを統合して並べ替え、所定の場所に貼り付ける (再質問) 4 2022/09/14 22:51
- Excel(エクセル) 【Excel】住所に郵便番号を付記する方法 3 2022/05/07 17:15
- Excel(エクセル) SUMIFのIF分岐について 4 2023/04/15 12:57
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
顧客・売上管理のツールをさが...
-
Accessにて検索結果の一覧表示...
-
Access VBAでクエリーのレコー...
-
アクセスのオートナンバーについて
-
ワードでの単純作業の効率化に...
-
Access フォームのデータがテー...
-
Access クエリ このレコードセ...
-
access、パラメータの順番を並...
-
テーブル設計につきまして(正規化)
-
【Access】特定の顧客のみ集約...
-
Access2002でレポート(納品書)...
-
Excel 2019 のピボットテーブル...
-
IT用語について質問です。 以前...
-
エクセルVBAで5行目からオート...
-
Excelの表、重複データ2行を1...
-
アンドロイド おサイフケータイ...
-
Accessでテーブルからテーブル...
-
1ヶ月に土日は何日あるか
-
VBA 得意先ごと且つ日付ごとに...
-
アクセスのテーブルを分ける理...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
データベースの1要素に複数デー...
-
Access VBAでクエリーのレコー...
-
Access IF文でテーブルに存在し...
-
Access フォームのデータがテー...
-
顧客IDを入力すると顧客名や住...
-
ワードでの単純作業の効率化に...
-
ACCESS で マクロの中でフィ...
-
ワードで保存するファイル名の...
-
シングルクォーテーションとダ...
-
Access 縦(行)のデータを横(列)...
-
別のDBからテーブルをコピーす...
-
Access 既に開いているフォー...
-
Access2000 単票フォーム上の...
-
Accessデータベースで行と列を...
-
Accessで名寄せグループの関係...
-
文字化け、記号の含まれるフィ...
-
Access レコードロックについて...
-
ACCESSで重複したデータがある...
-
【続続】Access2002で連番のつ...
-
Access クエリ このレコードセ...
おすすめ情報