web-dev-qa-db-ja.com

Excelの週番号の矛盾した結果

特定の日付の週番号を含むスプレッドシートを使用しています。いくつかの調査の結果、日付列に適用できるISOWEEKNUM()関数が見つかりましたが、これはうまく機能するようです。このスプレッドシートからの抜粋は、以下のリンクに表示されています。

excerpt from spreadsheet

しかし、関数が2018年の31/12/2018の週番号を週1として表示している場合、その関数が2018年にブレークダウンしているように見えることに気づきました(これは私にとって意味があります) 。

この関数の日付以外のパラメータは他にはありませんので、それはかなり簡単に見えます。これを機能させるにはどうすればいいですか?

18
WPDavid

式に問題はありませんが、使用したい式ではない可能性があります。別のExcelの公式があります:

=WEEKNUM(serial_num, [return_type])

それはあなたが得ることを期待している結果を返すでしょう。ただし、最初にどの種類の週番号がアプリケーションに適しているかを確認する必要があります。

さらに説明しましょう。

ISOWEEKNUM(date)関数は、週が常に月曜日から始まり日曜日に終わるという原則に基づいて機能し、その年の最初の週がその週であるという標準を設定します。週の最初の木曜日が含まれます。これは、前年の最後の数日を翌年の第1週としてラベル付けできることを意味します。

WEEKNUM(date、start_day)関数は、1月1日を含む週からカウントを開始します。したがって、January 1は週1の最初の日です。デフォルトでは、新しい週は日曜日から始まります。第2週は1月1日の後の最初の日曜日に始まります。関数の2番目のパラメータを使用して開始日を変更できます。つまり、1月1日が土曜日で、デフォルトの開始日が使用されている場合、最初の週には1日が含まれます。 < - これがWEEKNUM()関数の背後にある重要な理解です。

私はあなたの日付値を含む小さなスプレッドシートを作成し、違いを説明するためにさらにいくつか追加します。

enter image description here

その年の最後の日が翌年の最初の週になるのは2018年だけではありません。 ISOWEEKNUM()関数は正常に機能しています。最初の週が始まるときの解釈が異なるだけです。

これを確認するもう1つの方法は、1月1日にまたがる1日の期間にわたる2つの機能を調べることです。

enter image description here

2015年、1月1日は木曜日です。そのため、ISOWEEKNUM()週関数には12月の最後の3日が含まれますが、WEEKNUM()関数は1月1日の週を開始しますが、デフォルトの開始日の日は3週しかありません。

これが違いを説明することを願っています。

33
Clinton

2018年3月12日の週番号が週1として表示されている場合、関数は2018年に故障しているように見えます。

2018年12月31日は月曜日なので、それは正しいです。

12月31日が月曜日、火曜日、または水曜日の場合、来年の第01週になります。木曜日であれば、その年の53週目に終わります。金曜日にそれが52週目であるならば(またはちょうど終える年がうるう年なら53に)。土曜日または日曜日の場合は、終了するちょうど52週目です。

出典 ISO週の日付 - ウィキペディア

17
DavidPostill