W formule nie ma nic złego, ale być może nie jest to formuła, której chcesz użyć. Istnieje inna formuła programu Excel:
=WEEKNUM(serial_num, [return_type])
To zwróci oczekiwane wyniki. Należy jednak najpierw sprawdzić, który typ numeru tygodnia jest bardziej odpowiedni dla Twojej aplikacji.
Pozwól mi wyjaśnić dalej:
Funkcja ISOWEEKNUM (data) działa na podstawie tego, że tydzień zawsze zaczyna się w poniedziałek i kończy w niedzielę, a następnie ustala standard, że pierwszym tygodniem roku jest ten tydzień, który zawiera pierwszy czwartek roku w tygodniu. Oznacza to, że ostatnie kilka dni poprzedniego roku można oznaczyć jako tydzień 1 następnego roku.
Funkcja WEEKNUM (data, dzień_początkowy) zaczyna liczyć w tygodniu, który zawiera 1 stycznia. Więc 01 stycznia jest pierwszym dniem tygodnia 1. Domyślnie nowe tygodnie rozpoczynają się w niedzielę, a tydzień 2 rozpoczyna się w pierwszą niedzielę po 1 stycznia. Możesz zmienić dzień rozpoczęcia, używając drugiego parametru w funkcji. Innymi słowy, pierwszy tydzień może mieć 1 dzień, jeśli 01 stycznia jest sobotą i używany jest domyślny dzień początkowy. <- jest to kluczowe zrozumienie funkcji WEEKNUM ().
Utworzyłem mały arkusz kalkulacyjny, który zawiera wartości daty i dodaje jeszcze kilka, aby pokazać różnicę:
Zwróć uwagę, że nie tylko w 2018 roku ostatni dzień w roku przypada w pierwszym tygodniu następnego roku. Funkcja ISOWEEKNUM () działa dobrze, po prostu ma inną interpretację, kiedy zaczyna się pierwszy tydzień.
Innym sposobem na to jest spojrzenie na 2 funkcje w ciągu dnia, który przypada pierwszego stycznia:
W 2015 r. Pierwszy stycznia to czwartek. Dlatego funkcja tygodnia ISOWEEKNUM () obejmuje ostatnie 3 dni w grudniu, podczas gdy funkcja WEEKNUM () rozpoczyna tydzień od pierwszego stycznia, ale w pierwszym tygodniu będą tylko 3 dni dla domyślnego dnia rozpoczęcia niedzieli.
Mam nadzieję, że to wyjaśnia różnicę.