• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ACCESS 前年比)

ACCESS 前年比を計算する方法 - 月別数量合計

30246kikuの回答

  • ベストアンサー
  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.1

一例ですが テーブル「T月」を追加します。 内容として、フィールド「月」「順」の2つで以下のデータを作っておきます。 (型は、数値型の整数) 月___順 1____10 2____11 3____12 4_____1 5_____2 6_____3 7_____4 8_____5 9_____6 10____7 11____8 12____9 元々のテーブル名を「★★」と仮定します。 入っているデータの「検収日」最大の年を今年と解釈します。 また、「検収日」は日付/時刻型とします。 クエリのSQLビューに以下を記述して表示を確かめます。 SELECT First(Q1.月) AS 月, Sum(IIF(Q2.年=Q1.年度, Q1.数量)) AS 今年の数量合計, Sum(IIF(Q2.年=Q1.年度+1, Q1.数量)) AS 前年の数量合計, IIF(Not IsNull(今年の数量合計), Format(今年の数量合計/Nz(前年の数量合計,今年の数量合計),'0.00 %')) AS 前年比 FROM (SELECT Q11.月 & '月' AS 月, 順, 検収日, 数量, 年度 FROM T月 AS Q11 LEFT JOIN (SELECT *, Year(DateAdd('m', -3, 検収日)) AS 年度 FROM ★★) AS Q12 ON Q11.月=Month(Q12.検収日) UNION ALL SELECT '合計', 13, 検収日, 数量, Year(DateAdd('m', -3, 検収日)) FROM ★★) AS Q1, (SELECT Year(DateAdd('m', -3, Max(検収日))) AS 年 FROM ★★) AS Q2 GROUP BY Q1.順 ORDER BY Q1.順; これでは、表示が今一つ?(今年が空欄でも、前年にデータがあれば表示)なので、 以下内容で、クエリ「▲▲」を作っておいて SELECT First(Q1.月) AS 月, Q1.順, Sum(IIF(Q2.年=Q1.年度, Q1.数量)) AS 今年の数量合計, Sum(IIF(Q2.年=Q1.年度+1, Q1.数量)) AS 前年の数量合計, IIF(Not IsNull(今年の数量合計), Format(今年の数量合計/Nz(前年の数量合計,今年の数量合計),'0.00 %')) AS 前年比 FROM (SELECT Q11.月 & '月' AS 月, 順, 検収日, 数量, 年度 FROM T月 AS Q11 LEFT JOIN (SELECT *, Year(DateAdd('m', -3, 検収日)) AS 年度 FROM ★★) AS Q12 ON Q11.月=Month(Q12.検収日)) AS Q1, (SELECT Year(DateAdd('m', -3, Max(検収日))) AS 年 FROM ★★) AS Q2 GROUP BY Q1.順 ORDER BY Q1.順; 作っておいたクエリ「▲▲」を利用して表示します SELECT 月, 今年の数量合計, 前年の数量合計, 前年比 FROM (SELECT 月, 順, 今年の数量合計, IIF(Not IsNull(今年の数量合計),▲▲.前年の数量合計) AS 前年の数量合計, 前年比 FROM ▲▲ UNION ALL SELECT '合計', 13, Sum(今年の数量合計) AS A, Sum(IIF(Not IsNull(今年の数量合計),前年の数量合計)) AS B, IIF(Not IsNull(A),Format(A/Nz(B,A),'0.00 %')) FROM ▲▲ ) AS Q1 ORDER BY 順;

noname#224171
質問者

お礼

御回答ありがとうございます。 T月のテーブルを作成しただけで、 月___順 1____10 2____11 3____12 4_____1 5_____2 6_____3 7_____4 8_____5 9_____6 10____7 11____8 12____9 これを入力していませんでした。 入力後、正しく表示されました。

noname#224171
質問者

補足

御回答ありがとうございます。 クエリを作成し、一番上の構文を入れるところまでできました。 月  今年の数量  前年の数量 前年比 合計   10000     20000      50% このように表示されます。 ※クエリ名は仮にQU1としました。 ここまではいいのですが、次のクエリを作成する際、新規作成→クエリデザインを選択するとテーブルの表示とあります。現在テーブルにはT月と★★、クエリにはQU1があります。 どれを選択してクエリ「▲▲」を作成し、真ん中のSQL文を記入するのでしょうか。 クエリ「▲▲」を作成したとします。 作っておいたクエリ「▲▲」を利用して表示します とありますが、どの様にSQL文を追加するのでしょうか。 教えて教えてで申し訳ないのですが、宜しくお願いいたします。

関連するQ&A

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

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

  • ピボットテーブルで前年比を出したい

    Windows XP Excel2000で以下のようなピボットテーブルを作成しました。  A  B C   D   E    F 合計 : 数量 月 1 客 年 3月  4月  5月   総計 2 A 20 23067 21016 18740   62823 3   21 20940 17879 15820   54639  4 A 計 44007 38895 34560  117462 5 B 20 22037 14945  8737   45719 6   21 18868  8558  6871   34297  7 B 計 40905 23503 15608   80016 この客計の集計フィールドの部分を前年比にしたいのです。  A  B C   D   E    F 合計 : 数量 月 1 客 年 3月  4月  5月   総計 2 A 20 23067 21016 18740   62823 3   21 20940 17879 15820   54639  4 A前年比 91%  85%  84%   87% ←ここの数式 5 B 20 22037 14945  8737   45719 6   21 18868  8558  6871   34297  7 B前年比 86%  57%  79%   75% ←ここの数式 数式→集計フォールドで数式を入れればいいのだなということは分かるのですが、 このように数式を入れればいいのかがわかりません。 どうぞよろしくお願いします。

  • 前年比の計算

    お世話になります。 下の表を分かりやすく解説していただけないでしょうか。 表は、とある店舗の売り上げの推移です。   去年(万) 今年(万) 前年比(%) 1月  100   120   120.0 2月  100   120   120.0 3月  100   120   120.0 4月  100     90   112.5 5月  100   110    112.0  ・   ・     ・      ・  ・   ・     ・      ・  ・   ・     ・      ・ 4月の売り上げが、前年を下回ったので前年比が落ちるのは分かるのですが、 5月の売り上げが前年を上回ったのに前年比が落ちているのです。 これってどういうことなんでしょう? 例えば、5月までの前年比を計算する場合、  今年の5月までの売上合計 ――――――――――――― ×100  去年の5月までの売上合計  ……これって間違ってませんよね? とすると、単純に考えて、分母が大きくなってるのだから、 おのずと答えも大きくなるのではないかと思うのですが…… よろしくおねがいします。

  • アクセスでレポートを作成しましたが、前年比の計算で0割りでエラーがでて

    アクセスでレポートを作成しましたが、前年比の計算で0割りでエラーがでてしまいます。 ボックスで=IIf([前期売上の合計]=0,Null,[前期売上の合計]/[前々期売上の合計]*100)と してみましたが駄目でした。NULLが聞いていないようですがなぜでしょか? 解決方法を教えてください。 (クエリで先に前年比を出さないと駄目ですかね?)

  • エクセルのピボットテーブルで前年比を集計する

    エクセルのピボットテーブルでの前年比についてです。 元データに商品別の前年比の値が入っています。前年金額は入っていないです。 この元データをピボットテーブルにして、ブランド別の前年比を出したいです。集計する時に平均にしてしまうと間違った数字が出てしまうことは認識しております。どのように設定したら良いのか教えていただきたいです。 よろしくお願いします。

  • 前年比の計算式について

    閏年に関する質問です。 私は仕事でデータ集計(ここでは分かりやすく売上金とします)をしています。 通常、前年比を出す際は 今月の売上÷去年同月の売上×100で算出しています。 分かりやすい例で言うと、1000円÷3000円×100=33.3% つまりこの月の前年比は33.3%となります。 ここからが本題です。 去年(2016年2月)は閏年で、2月は29日までありました。しかし、今年は閏年ではないので2月は28日までしかありません。 そこで、通常通り前年比を算出すると前年差が大きくなってしまいます。 それで閏年修正をしたいと思っているのですが、計算式がどうにも思い付かず困っております。 また、年度累計も集計している関係上、4-2月の累計値も閏年修正をしたいと思っております。 大変ご迷惑をおかけしますが、お知恵を拝借させて頂けないでしょうか。 どうぞよろしくお願い致します。

  • excelで前年比を求める時、どちらかの値がゼロの時の計算方法

    お世話になります。 商品の販売数量の前年比を求めています。 単純に前年を今年で割って100を掛けて求めていますが、前年もしくは今年が、ゼロの月はerrorが出ます。 このような場合の計算方法をご教示ください。 宜しくお願い致します。

  • アクセス クエリ・集計・計算方法について

    アクセスの集計機能を使用して、品名毎の数量の合計と金額の合計を算出しようとしていますが、 思うようにできません。どなたか教えてください。 クエリのフィールドを左から・・・ (1)年月: Format([日付],"yyyy/mm")(集計:グループ化) (2)品名(集計:グループ化) (3)品名のカウント(集計機能:カウント) (4)単価(集計:グループ化) (5)金額: [単価]*[品名のカウント](集計:グループ化) このような形でクエリを実行していますが、すべての注文が1つだけなら問題ないのですが、実際には品名には数量が掛けられている場合もあり、現在設定しているクエリ設定では正しい数量の合計と金額の合計を出すことができません。どうか集計方法をご教授いただけないでしょうか。よろしくお願いします。 ■現在のテーブルの設計とリレーションを明記します。 【A】顧客テーブル (1)顧客ID (2)発注コード (3)氏名 【B】商品テーブル (1)商品ID (2)品名 (3)単価 【C】注文テーブル (1)注文ID (2)日付 (3)顧客ID 【D】注文明細テーブル (1)注文明細ID (2)注文ID (3)商品ID (4)数量 リレーション 【A】(1)-【C】(3) 【B】(1)-【D】(3) 【C】(1)-【D】(2)

  • アクセス

    アクセスでテーブル上で、   単価 数量 金額    3 5 15 のように単価、数量いれると金額が合計されるテーブルができますか? クエリはつかわないで・・

  • Access2000・レポートのグループフッターについて教えて下さい。

     Access2000レポートのグループフッターにて、下記のように出力したいのですが 上手くいきません。    品名 数量  単価    金額    A   10  @100  1,000円    A   20  @100  2,000円    A   30  @100  3,000円 合計 A   60個 @100  6,000円 グループフッターにて、合計欄の品名(A)と単価(@100)をテーブルから出力 をしようとすると次のようになってしまいます。    品名 数量  単価    金額    A   10  @100  1,000円 合計 A   60個 @100  6,000円 2件目以降の明細が出力されずに、合計行が出力されてしまいます。 どのように設定をすれば、上手く出力されるのでしょうか。 以上、宜しくお願い致します。