見出し画像

直近n週間を週単位で集計する(その2)集計開始曜日を固定する[Googleスプレッドシート]

前回、スプレッドシートで関数を用い「本日を起点とし、1週間ごとの売上データを直近n週間集計する」という記事を書きました。

週次での集計の場合、「集計を開始する曜日」を固定したいケースが多くあります。例えば、「月曜始まり→日曜まで」としたい、など。

TODAY関数に加え、WEEKDAY関数を応用すると実現できます。
以下解説です。

本日=2022年2月1日(火)とし、「月曜始まり→日曜まで」の集計を直近4週間取りたいとします。

▼まずセルB2に「過去直近の日曜日」が返るように関数を設定します。
TODAY関数とWEEKDAY関数を用います。

セルB2: =TODAY()-WEEKDAY(TODAY(),17)+1


WEEKDAY関数は、指定した日付に対応する曜日を数値で返します。
構文は以下の通りです。

WEEKDAY(日付, [種類])

  • 日付 - 曜日を検証する日付
    (日付を含むセルへの参照、日付の種類を返す関数、または数値を指定)

  • 種類 - 曜日を表すのに使用する番号方式を数値で指定
    (省略可/デフォルトは1)


第二引数「種類」がピンときませんが...整理すると以下の通りです。


なお「返したい過去直近の曜日と、種類(第二引数)」の関係は
以下の通りです。

=TODAY()-WEEKDAY(TODAY(),種類)+1


作成中のシートに話を戻します。

▼(再掲)まずセルB2に「過去直近の日曜日」が返るように関数を設定します。
TODAY関数とWEEKDAY関数を用います。

セルB2: =TODAY()-WEEKDAY(TODAY(),17)+1

▼セルB1とC1-E2は以下のように設定します。

セルB1: =B2-6
セルC2: =B1-1
セルC1: =C2-6
セルD2: =C1-1
セルD1: =D2-6
セルE2: =D1-1
セルE1: =E2-6

▼セルB3-E6は前回同様、SUMIFS関数を用います。
絶対参照「$」マークを適宜用いてコピーしやすくすると手間が省けます。

また比較演算子(>=,<=)を用いるので、
ダブルクォーテーション(")とアンパサンド(&)が必要になります。

セルB3: =SUMIFS('売上データ3'!$C:$C,'売上データ3'!$B:$B,$A3,'売上データ3'!$A:$A,">="&B$1,'売上データ3'!$A:$A,"<="&B$2)

→セルB3-E6のうち残りの範囲にコピペでOK

以下のように、本日=2022年2月1日(火)とし、「月曜始まり→日曜まで」の1週間ごとの売上データを直近4週間集計する表が構築できました。


この記事が気に入ったらサポートをしてみませんか?