1/06/2019

Access。前月データの抽出・集計をするには、ちょっとアイディアが必要です。【Data】

Access。前月データの抽出・集計をするには、ちょっとアイディアが必要です。

<Access>

Accessのテーブルをつかって、前月データを抽出したり、前月データを集計するのは、簡単そうに思えますが、実は、ちょっと、アイディアが必要なんですね。

次のテーブルがあります。

仮に今日が2018年11月だとして、前月のデータは2018年10月が該当するわけですが、単純に-30しても意味がありませんね。

では、どのようにしたら、2018年10月のデータを抽出できるのでしょうか?

【Format関数で抽出できる】

作成タブからクエリデザインを使って、クエリをつくります。

テーブルのすべてのフィールドを使用します。
最初に、演算フィールドで、購入日から年月を抽出します。
年月: Format([購入日],"yyyymm")

Format関数は指定した表示形式で表示してくれる関数なのですが、このFormat関数を使うことで、年月を抽出するベースを作ることができます。

データシートビューで確認してみましょう。

続いて、抽出条件を設定して、前月のデータを抽出させていきましょう。

デザインビューにして、年月の演算フィールドに、抽出条件を追加します。
Format関数

Format(DateAdd("m",-1,Date()),"yyyymm")
と追記したら、実行して確認してみましょう。

先月のデータのみを抽出することができました。それでは、抽出条件を確認してみましょう。

Format(DateAdd("m",-1,Date()),"yyyymm")

Format関数は、先程確認したように、表示形式の指示に基づき表示を変更してくれます。

そして、先月の日付を算出するのが、DateAdd関数。このDateAdd関数を使って基準の日付(今回は、Date関数を使っているので、実行日)から-1(マイナス1)することで、先月の日付を得ることができます。

ところで、Format関数で、”yyyymm”と年と月を合わせて形式にしていますが、これは、当然のことながら、先月の日付だけを抽出したいわけなので、”mm”という月だけの表示形式にしてしまうと、他年の先月も、抽出してしまうからですね。

抽出だけでもいいのですが、せっかくなので、集計も行ってみましょう。

集計を行うには、グループ化するフィールドの問題がありますので、作成したクエリから、集計用のクエリを作成するという流れになります。

では、今アクティブにしているQ前月抽出クエリを閉じて、作成タブのクエリデザインから新しくクエリを作成していきます。

使用するのは、「Q前月抽出クエリ」。
使用するフィールドは、年月と金額のフィールドです。

そして、集計をするには、クエリツールのデザインタブにある「集計」をクリックして、集計行を表示させます。

あとは、集計を年月は「グループ化」として、金額を「合計」して、名前を付けて保存すれば完成ですね。

では、実行して、データシートビューで確認してみましょう。

このように先月の金額を集計することができましたね。

Format関数で表示形式をコントロールするというのがポイントなので、覚えておくといいかもしれませんね。