6/06/2020

Access。Accessで月別集計や四半期集計のクエリをつくるならDatePart関数で算出します。

Access。Accessで月別集計や四半期集計のクエリをつくるならDatePart関数で算出します。

<Access:DatePart関数>

月別や四半期別で売上高を集計したいとします。

管理はAccessで行っています。

Excelにエクスポートすれば、ピボットテーブルで月別集計をしたり、日付から月を条件にして合算値を算出したりと、色々な方法で算出するわけですが、Accessだと意外と簡単に算出することができます。

次のテーブルがあります。
 
このデータを使って、「月別の売上高集計」を行いたいわけです。

Accessのテーブルでは数式をつくって算出するわけにはいきませんので、作成タブのクエリデザインで早速クエリを作成していきましょう。

Excelだったらば、MONTH関数をつかうことで、日付から月を算出することができます。

Accessにも、Month関数があるので、同じように、日付から月を算出することができるのですが、Accessには、DatePart関数というのがあって、引数の設定によって、「年」「月」などを引数内の設定を変えるだけで、算出することができます。

しかも、「四半期」での集計も容易になります。

なので、年だったら、Year関数。月ならMonth関数と、使い分けなくていいわけです。

せっかくなので、DatePart関数とMonth関数の算出結果が同じになること、確認しておきましょう。
 
DatePart関数の演算フィールドですが、
営業月: DatePart("m",[日付])

Month関数の演算フィールドは、
月: Month([日付])
と設定しておきます。

では、実行してみましょう。
 
どちらの演算フィールドも日付から「月」を抽出した算出結果になっていますね。

まだ、日付から月を抽出しただけなので、月別の合算値になっていませんので、作業を続けましょう。

では、デザインビューに切り替えて、日付と、月の演算フィールドを削除します。
 
デザインタブの集計をクリックして、集計行を表示させます。
 
売上高のフィールドは合算値を求めたいので、集計をグループ化から「合計」に変更します。
 
これで月別売上高集計を算出することができました。

四半期で算出をしたいときには、
営業月: DatePart("m",[日付])
の「m」を四半期の「q」に変更するだけで、四半期ごとの集計を行うことができます。

なお、引数の単位ですが、
yyyyだと、「年」を抽出することができます。これはYear関数と同じです。

qは「四半期」を抽出することができます。

mは「月」を抽出することができます。Month関数と同じですね。

yは「年間通算日」といって1月1日から数えた日数を算出することができます。
「年」が抽出されるわけではないので、注意が必要です。

dだと「日」を抽出することができます。
これはDay関数と同じですね。

wもあります。週の開始曜日から数えた日数を算出します。
Weekday関数と同じです。

wwが、第1週から数えた週数を算出してくれますが、「w」と間違えないようにしないといけませんね。

さて、完成した表ですが、売上月が数値のままですね。
折角なので、「~月」という表示にしましょう。

デザインビューにして、営業月: DatePart("m",[日付])の演算フィールドをアクティブにしておきます。
 
デザインタブの「プロパティシート」をクリックして、プロパティシート作業ウィンドウを表示させます。
 
標準タブにある「書式」に「0¥月」と入力します。

あとは実行して確認してみましょう。
 
表示形式を使って、月を表示させてみました。

ということで、Accessで月別や四半期別で集計をするときには、DatePart関数だけで対応することが可能です。