Access (一般機能)

Accessの一般機能に関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(Windows 7 Professional : Access 2013)
レポート集計について
投稿日時: 18/02/15 20:23:47
投稿者: 山ちゃん

いつもお世話になっております。
 
いろいろと調べたのですが、ちょっと私には難しく解決できなく投稿させていただきます。
 
【内容】レポート
担当者ヘッダ
----------------------------------------------------------
担当者 A
----------------------------------------------------------
    区分    4月    5月  6月・・・・
     確定   1,500 1,000
     見積提出 500 200 500
          見込   1,000 500
----------------------------------------------------------
担当者フッダ 3,000 700 1,500
----------------------------------------------------------
担当者ヘッダ
----------------------------------------------------------
担当者 B
----------------------------------------------------------
    区分    4月    5月  6月・・・・
     確定      500 1,500
          見込   1,000 500
----------------------------------------------------------
担当者フッダ 1,000 1,000 1,500
----------------------------------------------------------
各担当者ごとに区分が3個ある場合とないことがあります。
このような時のフッターへの合計はどのようにするのがいいのでしょうか。
 
すいませんが、どなたかご教授お願いいたします。
 
 

回答
投稿日時: 18/02/16 09:38:43
投稿者: sk

引用:
各担当者ごとに区分が3個ある場合とないことがあります
このような時のフッターへの合計はどのようにするのがいいのでしょうか。

担当者によってレコードの件数が異なる、
という意味でおっしゃっているのであれば、
Sum 関数を呼び出す演算テキストボックスを
[担当者フッター]上に配置すればよいでしょう。
 
(フィールド[4月]の値の合計を返す場合)
----------------------------------------------------------------
 
=Sum([4月])
 
----------------------------------------------------------------

投稿日時: 18/02/17 11:13:57
投稿者: 山ちゃん

skさんへ
 

sk さんの引用:
引用:
Sum 関数を呼び出す演算テキストボックスを
[担当者フッター]上に配置すればよいでしょう。

 
(フィールド[4月]の値の合計を返す場合)
----------------------------------------------------------------
=Sum([4月])
----------------------------------------------------------------

ありがとうございます。結果は頂いたコメント通りでできたのですが、
また、新たに区分別に月集計を出さなければいけなくなり、どうしても
集計が出来ず困ってあります。甘えていると分かっておりますが、ヒントだけ
でも結構ですのでご教授頂けませんでしょうか。
 
担当者ヘッダ
----------------------------------------------------------
担当者 A
----------------------------------------------------------
    区分    4月    5月  6月・・・・
   確定    1,500    1,000
   見積提出  500 200 500
      見込    1,000 500
----------------------------------------------------------
 担当者フッタ  3,000 700 1,500
----------------------------------------------------------
担当者ヘッダ
----------------------------------------------------------
担当者 B
----------------------------------------------------------
    区分    4月    5月  6月・・・・
   確定      500 1,500
      見込   1,000 500
----------------------------------------------------------
 担当者フッタ 1,000 1,000 1,500
----------------------------------------------------------
ページフッター(区分ごとの合計)
-----------------------------------------------------------
   確定 2,500 500 2,500
   見積提出 500 200 500
     見込 2,000 1,000
-----------------------------------------------------------
申し訳けございません。
よろしくお願いいたします。
 

回答
投稿日時: 18/02/19 09:18:49
投稿者: sk

引用:
また、新たに区分別に月集計を出さなければいけなくなり、どうしても
集計が出来ず困ってあります。

では集計対象となるテーブルの定義内容
(各フィールドの名前/データ型、主キーに関する情報等)を
明記されることをお奨めします。

投稿日時: 18/02/19 20:56:20
投稿者: 山ちゃん

[quote="sk"]

引用:
では集計対象となるテーブルの定義内容
(各フィールドの名前/データ型、主キーに関する情報等)を
明記されることをお奨めします。

 
内容
エクセルデータをリンクして、クロス集計にて作成しました。
 
エクセルのピボットテーブルでもそうなのですが、区分が複数ある時に、
各人の集計には該当がない区分は当然集計されません。
これと同じだとは思っているのですが。
 
今回はこれをどうにか解決できないものかと投稿しました。
やはり難しいでしょうか。
 
説明が下手で分かりにくいとは思いますが、どうにか解決策があれば
教えて頂けませんでしょうか。
お手数お掛けいたします。

回答
投稿日時: 18/02/20 09:40:18
投稿者: sk

引用:
エクセルデータをリンクして、クロス集計にて作成しました。

では、そのクロス集計クエリの SQL ビューの内容を
具体的に明記されることをお奨めします。

投稿日時: 18/02/20 20:18:52
投稿者: 山ちゃん

sk さんの引用:
引用:
では、そのクロス集計クエリの SQL ビューの内容を
具体的に明記されることをお奨めします。


 
すごく長くなってしまいますが、そのままSQLの内容をコピーしたものを
投稿いたします。
 
【売上合計クロス集計クエリー】
TRANSFORM Sum([Q00_10ひまわり抽出(元クエリー)クエリー].売上) AS 売上の合計
SELECT [Q00_10ひまわり抽出(元クエリー)クエリー].年度, [Q00_10ひまわり抽出(元クエリー)クエリー].所属部署名,
 [Q00_10ひまわり抽出(元クエリー)クエリー].社員コード, [Q00_10ひまわり抽出(元クエリー)クエリー].主担当,
IIf([営業ステージ]="S:収支精算締切済","1・S精算済",IIf([営業ステージ]="A:人数確定","2・A人数確定",
IIf([営業ステージ]="B:受注","3・B受注",IIf([営業ステージ]="C:見積提出","4・C見積提出",
IIf([営業ステージ]="D:見込","5・D見込",""))))) AS ステージ, Sum([Q00_10ひまわり抽出(元クエリー)クエリー].売上) AS [合計 売上]
FROM [Q00_10ひまわり抽出(元クエリー)クエリー]
GROUP BY [Q00_10ひまわり抽出(元クエリー)クエリー].表示順, [Q00_10ひまわり抽出(元クエリー)クエリー].年度,
[Q00_10ひまわり抽出(元クエリー)クエリー].所属部署名, [Q00_10ひまわり抽出(元クエリー)クエリー].社員コード, [Q00_10ひまわり抽出(元クエリー)クエリー].主担当,
IIf([営業ステージ]="S:収支精算締切済","1・S精算済",IIf([営業ステージ]="A:人数確定","2・A人数確定",
IIf([営業ステージ]="B:受注","3・B受注",IIf([営業ステージ]="C:見積提出","4・C見積提出",IIf([営業ステージ]="D:見込","5・D見込","")))))
PIVOT [Q00_10ひまわり抽出(元クエリー)クエリー].計上月 In ("4","5","6","7","8","9","10","11","12","1","2","3");
 
【売総合計クロス集計クエリー】
TRANSFORM Sum([Q00_10ひまわり抽出(元クエリー)クエリー].売上総利益) AS 売総の合計
SELECT [Q00_10ひまわり抽出(元クエリー)クエリー].年度, [Q00_10ひまわり抽出(元クエリー)クエリー].所属部署名,
[Q00_10ひまわり抽出(元クエリー)クエリー].社員コード, [Q00_10ひまわり抽出(元クエリー)クエリー].主担当,
IIf([営業ステージ]="S:収支精算締切済","1・S精算済",IIf([営業ステージ]="A:人数確定",
"2・A人数確定",IIf([営業ステージ]="B:受注","3・B受注",IIf([営業ステージ]="C:見積提出",
"4・C見積提出",IIf([営業ステージ]="D:見込","5・D見込",""))))) AS ステージ, Sum([Q00_10ひまわり抽出(元クエリー)クエリー].売上総利益) AS [合計 売総]
FROM [Q00_10ひまわり抽出(元クエリー)クエリー]
GROUP BY [Q00_10ひまわり抽出(元クエリー)クエリー].表示順, [Q00_10ひまわり抽出(元クエリー)クエリー].年度,
[Q00_10ひまわり抽出(元クエリー)クエリー].所属部署名, [Q00_10ひまわり抽出(元クエリー)クエリー].社員コード, [Q00_10ひまわり抽出(元クエリー)クエリー].主担当,
IIf([営業ステージ]="S:収支精算締切済","1・S精算済",IIf([営業ステージ]="A:人数確定","2・A人数確定",
IIf([営業ステージ]="B:受注","3・B受注",IIf([営業ステージ]="C:見積提出","4・C見積提出",IIf([営業ステージ]="D:見込","5・D見込","")))))
PIVOT [Q00_10ひまわり抽出(元クエリー)クエリー].計上月 In ("4","5","6","7","8","9","10","11","12","1","2","3");
 
二つのクロス集計クエリーを最後に結合したクエリーを作成してレポートを作成しました。
結合フィールドは【年度】・【所属部署名】・【主担当】・【ステージ】としております。
 
こんな感じでしかできないのですが、大丈夫でしょうか。
本当に申し訳けございません。
よろしくお願いいたします。

回答
投稿日時: 18/02/21 11:27:46
投稿者: sk

引用:
GROUP BY [Q00_10ひまわり抽出(元クエリー)クエリー].表示順,
         [Q00_10ひまわり抽出(元クエリー)クエリー].年度,
         [Q00_10ひまわり抽出(元クエリー)クエリー].所属部署名,
         [Q00_10ひまわり抽出(元クエリー)クエリー].社員コード,
         [Q00_10ひまわり抽出(元クエリー)クエリー].主担当,
         IIf([営業ステージ]="S:収支精算締切済","1・S精算済",
             IIf([営業ステージ]="A:人数確定","2・A人数確定",
                 IIf([営業ステージ]="B:受注","3・B受注",
                     IIf([営業ステージ]="C:見積提出","4・C見積提出",
                         IIf([営業ステージ]="D:見込","5・D見込","")))))

引用:
二つのクロス集計クエリーを最後に結合したクエリーを作成してレポートを作成しました。
結合フィールドは【年度】・【所属部署名】・【主担当】・【ステージ】としております。

何故に[社員コード]が結合フィールドに含まれていないのか、
という問題はひとまず置くとして、
 
引用:
区分別に月集計

当初からおっしゃっている「区分」に当たるフィールドが
[ステージ]なのであれば、[年度]と[ステージ]を行見出しとする
([所属部署名], [社員コード], [主担当]をグループ化の対象から除外した)
同様のクロス集計クエリを新たに作成なされば、とりあえず
ご要望されている集計結果は取得出来るはずですよね。
 
あとはそれらの結果をどのような形で
レポートに出力するかの問題でしょう。

トピックに返信