日付が第何四半期にあたるかを調べるには

[Access 2016/2013/2010/2007]

四半期ごとに売上高を集計するときなどに、各データが第何四半期にあたるかを知る必要があります。四半期と月の対応は会社によって異なりますが、さまざまなパターンに対応できるような求め方を紹介します。計算方法もいくつかあるので、好きな方法を使ってください。

スポンサーリンク

パターンA.1月~3月を「第1四半期」と表示する

1月1日~12月31日が1会計年度ならば、DatePart関数で簡単に四半期を求められます(構文1)。引数[単位]に「"q"」を指定するだけで、1月~3月が「1」、4月~6月が「2」、7月~9月が「3」、10月~12月が「4」と求められます(正式な構文はDatePart関数のページを参照してください)。

構文1 日時から指定した単位の数値を取り出す
DatePart(単位, 日時)

ここでは、[受注日]フィールドの日付に対応する四半期を求めます(式1図1図2)。DatePart関数の戻り値は「1」「2」「3」「4」の数値なので、「第○四半期」の表記にするには前後に「第」と「四半期」を&演算子で連結します。

式1 1月1日~12月31日を1会計年度として四半期を求める
四半期: "第" & DatePart("q",[受注日]) & "四半期"

図1 クエリの[フィールド]欄に式1を入力する。

図2 1月~3月を「第1四半期」、4月~6月を「第2四半期」…、と表示できた。

パターンB.4月~6月を「第1四半期」と表示する

Choose関数を使えば、会計年度が何月始まりの場合でも四半期を簡単に計算できます(構文2)。Choose関数は、引数[インデックス]が「1」の場合は[選択肢1]、「2」の場合は[選択肢2]…、というように、インデックスに対応する選択肢を返す関数です。

構文2 インデックスに対応する選択肢を返す
Choose(インデックス, 選択肢1, 選択肢2 …, 選択肢n)

4月始まりとして[受注日]の四半期を求めるには、式2のように引数[インデックス]に「Month([受注日])」を指定して、[受注日]の月を取り出します。続けて1月~12月に対応する四半期の数値12個を「4,4,4,1,1,1,2,2,2,3,3,3」のように並べて指定します(図3図4)。例えば、[受注日]が「2017/5/28(5月)」の場合、「4,4,4,1,1,1,2,2,2,3,3,3」の5番目にある第「1」四半期という結果になります。

式2 4月1日~3月31日を1会計年度として四半期を求める
四半期: "第" & Choose(Month([受注日]),4,4,4,1,1,1,2,2,2,3,3,3) & "四半期"

図3 クエリの[フィールド]欄に式2を入力する。

図4 1月~3月を「第4四半期」、4月~6月を「第1四半期」…、と表示できた。

5月始まりの場合は、引数を「3,4,4,4,1,1,1,2,2,2,3,3」と変えるだけです。月と四半期の対応を並べるだけなので簡単です。

パターンC.2017年1月~3月を「2017年第1四半期」と表示する

Format関数を使用すると、日付をさまざまな形式で表示できます(構文3、正式な構文はFormat関数のページを参照してください)。

構文3 データに書式を設定して返す
Format(データ, 書式)

例えば、「年」を表す書式指定文字「yyyy」と「四半期」を表す書式指定文字「q」を使用して、引数[書式]に「"yyyy.q"」を指定すると、2017年1月~3月を「2017.1」、2017年4月~6月を「2017.2」、2017年7月~9月を「2017.3」、2017年10月~12月を「2017.4」の形式で表示できます。

「2017年第1四半期」の形式にしたい場合は、引数[書式]に「"yyyy""年第""q""四半期"""」と指定します(式3図5図6)。「年第」と「四半期」の部分は二重のダブルクォーテーション「""」でくくってください。実際には、クエリの[フィールド]欄に「"yyyy年第q四半期"」と入力すれば、自動的に「"yyyy""年第""q""四半期"""」と「""」が補われます。

式3 1月1日~12月31日を1会計年度として年度付きで四半期を求め
四半期: Format([受注日],"yyyy""年第""q""四半期""")

図5 クエリの[フィールド]欄に式3を入力する。

図6 2017年1月~3月を「2017年第1四半期」、2017年4月~6月を「2017年第2四半期」…、と表示できた。

パターンD.2017年4月~6月を「2017年第1四半期」と表示する

式3では1会計年度が1月1日~12月31日に限定されますが、自由な期間で四半期を求めたいこともあるでしょう。そんなときは、DateAdd関数を使用して、日付の月を調整しましょう(構文4)。DateAdd関数の引数[単位]に「"m"」を指定すれば、日付の月を調整できます。

構文4 日時に時間を加減算する
DateAdd(単位, 時間, 日時)

会計年度の始まりを4月にしたいなら、[受注日]から「3」を引いて3カ月前の日付を求めます。図7は、「3カ月前: DateAdd("m",-3,[受注日])」の式で3カ月前の日付を求めたクエリです。月によって日数は異なりますが、「5月28日~5月31日」は2月末日の「2月28日」、「7月30日~7月31日」は4月末日の「4月30日」に変換され、「月」の部分がきちんと3カ月前の数値になっていることがわかります。

図7 「3カ月前: DateAdd("m",-3,[受注日])」の式で3カ月前の日付を求めた。3カ月前に対応する日付がない場合は、3カ月前の末日の日付が求められる。

4月始まりの場合の四半期を年度付きで求めるには、式4のようにFormat関数の引数[データ]に3カ月前の日付を指定します。そうすれば、「2017/1/26」のような前年度の日付の「年」を正しく「2016年」と表示できます(図8図9)。

式4 4月1日~3月31日を1会計年度として年度付きで四半期を求める
四半期: Format(DateAdd("m",-3,[受注日]),"yyyy""年第""q""四半期""")

図8 クエリの[フィールド]欄に式4を入力する。

図9 2017年1月~3月を「2016年第4四半期」、2017年4月~6月を「2017年第1四半期」…、と表示できた。

スポンサーリンク

関連記事