over50marathoner’s blog

食と農への関心事。試行錯誤しながら手作りしてます。パン作り・自家製酵母・野菜栽培

ランニングデータをまとめてみる 4

<前の記事

複数年カレンダーで週データのずれを修正する

関数も取り入れカレンダーを作っているようですが、データをまとめるための基本的な枠づくりのようなものです。

しばらくお付き合いください。

複数年とした場合の問題点

さて前回週データを集計するためにその日が第何週目かを求める関数を導入したのですが、年の変わり目で元に戻る(つまり52週目の次が1週目になる)ので、年末から年始にかけて集計がずれたり、複数年データを積み重ねていくと、複数年にわたってデータが足されたりしてしまうことになってしまいます。

このように2023年の1月2日からの週のデータと2024年1月1日からのデータが1週目ということで1週目データとして区別なく加算されていくことになります。

これを連続した週目としてカウントできるようにするには、週データに52×([年]-[基準年])を加えます。

積年型週データ

要するに2023/1/1は第0週目、2023/1/2からの週は1週目、2023/12/31は第52週目、2024/1/1の週は53週目いう感じです。

しかし、上記のように、1月1日が月曜日以外の場合に、1/1からその週の日曜日までがずれることになります。

問題点を解決するには

ここで、この値を修正するため条件により計算結果を変えるという関数を導入します。

条件に合致するかどうかで結果を変える関数 if関数

書式はIf(論理式真の場合偽の場合

関数で求める値で表現すると、日付のWeekNum関数の結果が52で、Month関数の結果が1の場合は、

真の場合:52*(YEAR(A2)-2024)と偽の場合:52*(YEAR(A2)-2023)から

変更する必要があります。

積年型週データ修正版

L列が修正後になります。こちらには、

=IF(AND(MONTH(A2)=1,WEEKNUM(A2,21)=52),

WEEKNUM(A2,21)+52*(YEAR(A2)-2024),WEEKNUM(A2,21)+52*(YEAR(A2)-2023))

という関数が入力してあります。

>次の記事