スプレッドシートで、週ごと、曜日ごとの集計をしてみます。
週ごと集計
週の定義
週について以下としました。
- 始まり:月曜日
- 終わり:土曜日
- 当月のみ
- 第1週の始まり:曜日が特定できない
- 最終週の終わり:曜日が特定できない
実施方法
- 週末(土曜日)の特定
WEEKDAY 関数を利用し、特定。
・1週目:7-WEEKDAY(A1)+A1)
・2週目移行は、7,14,21を加える。
利用した式:=(7-WEEKDAY(A1)+A1)+7*(B1-1)
A1セル:該当付きの月初(例 2019/10/1)
B1セル:第何週目。(例 第1周目なら、1を入れる)
※参考:第3月曜日など「第Nなんとか曜日」が何日かを1行の式で算出する方法【Googleスプレッドシート、Excel】 | TeraDas - 週の合計
SUMIFS関数を利用し、合計値を出す。
・データ
集計対象データ(実際は、右に続いている)
月初と週末の日付が入力されているセル(例:2019/10/1)
A1:月初。A2:1週目末。A3:2週目末。A4:3週目末。A5:4週目末。
・週ごとの集計範囲の計算(日付、範囲の部分をXとする)
1週目:A1<= X <= A2 (例 2019/10/1 ~ 2019/10/5)
2週目:(A2+1) <= X <= A3 (例 2019/10/6 ~ 2019/10/12)
3週目:(A3+1) <= X <= A4 (例 2019/10/13 ~ 2019/10/19)
4週目:(A3+1) <= X <= A4 (例 2019/10/20 ~ 2019/10/26)
5週目:(A3+1) <= X <= A4 (例 2019/10/26 ~ 2019/10/31)
・5週は、来月となるため今月末とする必要がある。
EOMONTH関数を使い、月末を出す。月末を超えた場合は、月末とする。 -
・利用した式
=if(EOMONTH(A1,0)>(7-WEEKDAY(A1)+A1+7*(B2-1)),7-WEEKDAY(A1)+A1+7*(B2-1),EOMONTH(A1,0))
曜日ごと集計
実施方法
- 曜日の特定
WEEKDAY関数を利用して、曜日ごとの数字を取得する。
- 集計
・SUMIF 関数を利用し、合計値を出す。
・データ:
1行目:年月日。
2行目:1行目を使い、 WEEKDAY関数で曜日番号を計算。(例 =Weekday(D1))・利用した式(日曜日を集計(週番号 1))
=sumif(D2:K2,1,D3:K3)
まとめ
結構複雑で大変です。最初から関数があれば良いと思います。