• ベストアンサー

Access 集計について

エクセル出力用に年度_売上となっているフィールドを クロス集計クエリで売上(値_先頭)年度_列見出し コード_列見出し のようにしました。 合計の場合は集計を合計にすればよいのですが、 列見出し同士で計算を行う場合(前年比等)どのような関数で計算するのでしょうか? 2006年度売上/2005年度売上*100

  • sskj
  • お礼率24% (75/303)

質問者が選んだベストアンサー

  • ベストアンサー
  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.4

どんなやり方をしているの? 普通の簡単な集計クエリですよ SELECT sski.ID, Sum(IIf([年度]=2005,[売上],0)) AS 2005売上, Sum(IIf([年度]=2006,[売上],0)) AS 2006売上, Sum(IIf([年度]=2006,[売上],0))/Sum(IIf([年度]=2005,[売上],0)) AS 昨年比 FROM sski GROUP BY sski.ID ORDER BY sski.ID DESC; ID 2005売上 2006売上 昨年比 1130 230 300 130.43% 1120 150 200 133.33%

sskj
質問者

お礼

ありがとうございます。 >普通の簡単な集計クエリですよ 集計クエリだったのですね。 IDをグループ化していないのが原因だったようです。 ありがとうございました。

その他の回答 (3)

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.3

>レコードが分かれてしまうために使えないと思います。 フィールドが別れるだけです クレームをつける前にやってみたの?

sskj
質問者

補足

テーブル 企業コード 売上 年度 1 100 2006 1 100 2007 2 200 2006 2 200 2007 クエリ 企業コード_2006_2007 1 _100 _0 1 _0 _100 2 _200 _0 2 _0 _200 単純にIIFでフィールドを分けることは出来ますが、 前回の補足の通レコードも分かれてしまいます。 この状態で前年比等計算できるのでしょうか

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.2

>複数のデータを出力する場合は使えませんよね。 どうして? ヒントとして2006年度の求め方をあげただけで 同様にしてどの年度でも求まります 異なる年度の比率も求まります

sskj
質問者

補足

合計して比率を出すことはできますが 複数のデータがある場合ID別に比率を出すことは無理ではないでしょうか? ID_売上_年度 1120_150_2005 1120_200_2006 1130_230_2005 1130_300_2006 例えばIIf(年度=2006,売上,0)) IIf(年度=2005,売上,0)) とした場合2006年度と_2007年度に分けられますが、 レコードが分かれてしまうために使えないと思います。 それとも、2005年度のクエリ、2006年度のクエリのようにファイルを分けてと言う意味でおっしゃられたのでしょうか?

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.1

クロス集計クエリではできません クロス集計クエリから別の集計クエリを作るのが一番簡単かな あるいはクロス集計もどきの集計クエリを作るかです ヒント 2006年度売上:Sum(IIf(年度=2006,売上,0))

sskj
質問者

お礼

ありがとうございます。 誤 コード_列見出し 正 コード_行見出し でしたすみません。 >ヒント >2006年度売上:Sum(IIf(年度=2006,売上,0)) 複数のデータを出力する場合は使えませんよね。 クロス集計クエリからクエリを作成することにします。

関連するQ&A

  • 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で教えていただければ幸いでございます。 お手数お掛けしますが、何とぞ宜しくお願い致します。

  • アクセスのクエリの並び替えについて

    売上の前年比の表を作っています。 店名 今年度  前年度  前年比:[今年度] / [前年度] というクエリを作っています。 今年度と前年度はいくつかのデータを合計した値が入っています。 *例えば今年度は4月から8月までの合計売上です。 このクエリを前年比の高い順に並べ替えたいのですが、 前年比の並べ替えを降順にして実行しようとすると、 『指定されたフィールド'[今年度]'がSQLステートメントの FROM句にある複数のテーブルを参照しました』 というメッセージが出てしまいうまく行きません。 このクエリでは並べ替えをせずに、別のクエリをつくり、 前年比を式ではない状態で並べ替えてあげればうまく行くのですが、 あまりにも無駄な作業だと思うので・・・。 どなたか解消方法を教えてください。 よろしくお願い致します。

  • 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で教えていただければ 幸いでございます。 お手数お掛けしますが、何とぞ宜しくお願い致します。

  • Access クロス集計

    業態_年度_分類_売上_社数 列を分類、売上を値(合計)、sum([売上]) (演算) 業態グループ化 行、社数グループ化 行 業態グループの分類の合計を出すために上のような クロス集計を行いました。 レポート 業態_20年売上_19年売上_18年売上_19年社数 レポートの表示を上のようにしたいのでさらに クロス集計をし年度を列、分類の合計を値、業態グループ としましたが、社数を表示ができません。 何か良い方法は無いでしょうか?

  • アクセス クロス集計クエリ→テーブル作成クエリ

    クロス集計クエリは、 そのままテーブル作成クエリを使って クロス集計クエリのままテーブルにすることはできないのでしょうか? クロス集計クエリの時は、行見出し・列見出しがあるのに、 そのままテーブルにはなりません。

  • アクセスでの年度別集計

    教えてください。 売上データの支店別・品目別の年間売上の集計を出したいのですが、売上年と売上月は別のフィールドになっています。下記の様な感じで・・・ CD 支店名 品目 売上金額 売上年 売上月  2004年度(2004/4/1~2005/3/31)の品目別売上合計を出したいのです。 クエリは売上フィールドで集計し、抽出条件を、  売上年    売上月  2004      >=4    2005       <=3 にしてみたのですが、そうすると品目の合計にはなりません。(同じ品目でも売上月が違えば別のレコードになります) わかりにくい説明で申し訳ありませんが、困っています。よろしくお願いします。

  • Accessで集計したい!

    こんな集計ができないか?いろんな参考書を見ても載っていないので、どなたか教えて下さい。 例) 選択クエリで、「金額」は計算して合計を表示するようにして、製品の合計を見出しを追加して集計したいのです。 製品 数量 単価 金額 <製品の合計を表示したい> A1  100  1   100      800 A1  100  3   300      800 A1  200  2   400      800 B1  150  2   300      1800 B1  300  0.5  150      1800 B1  450  2   900      1800 B1  450  1   450      1800      

  • 【Accessで困っています】クロス集計の列見出し

    お世話になります。 クロス集計後の列見出しの並び替えですが 2009下期,2009上期,2008年下期・・・・・と 下期、上期と並べたいのですが、上期,下期と並んでしまいます。 クエリプロパティで設定すればいいのですが、たくさんあるので、【関数】かSQL文でのやり方をご存知の方教えて下さい。よろしくお願いします。

  • Access クエリより集計という列の使い方

    単純な質問ですいません。 クエリで、Σマークをクリックすると集計という行が出て グループ化と表示されています。 このグループ化とはどういう意味でしょうか。 また、演算をかけてある列フィールドに対しては“演算”を選んだ方がいいのでしょうか。 とか、合計をかけてある列フィールドには“合計”を選んでおいたほうがよい?。。 ちょっとよくわかりません・・。

  • クロス集計クエリ 必ず、列見出しを作らないとだめ?

    アクセスでクロス集計クエリを作る際は 必ず、列見出しを作らないとだめですか? 行見出しと値だけあればいいので、 列見出しを消したらエラーになります。 結局 --------------------------- フィールド:test: "ダミー" 集計:グループ化 行列の入れ替え:列見出し --------------------------- というダミーを作ったのですが 列見出しがいらない場合は この方法をやるしかないのでしょうか?

専門家に質問してみよう