Spis treści
Podczas gdy Microsoft Excel zapewnia szereg funkcji do pracy z dniami tygodnia, miesiącami i latami, tylko jedna jest dostępna dla tygodni - funkcja WEEKNUM. Tak więc, jeśli szukasz sposobu na uzyskanie numeru tygodnia z daty, WEEKNUM jest funkcją, którą chcesz.
W tym krótkim tutorialu krótko omówimy składnię i argumenty funkcji Excel WEEKNUM, a następnie omówimy kilka przykładów formuł demonstrujących, jak można użyć funkcji WEEKNUM do obliczania numerów tygodni w arkuszach Excela.
Funkcja WEEKNUM w Excelu - składnia
Funkcja WEEKNUM jest używana w Excelu do zwracania numeru tygodnia z określonej daty w roku (liczba z przedziału od 1 do 54). Ma dwa argumenty, pierwszy jest wymagany, a drugi opcjonalny:
WEEKNUM(serial_number, [return_type])- Numer seryjny - dowolną datę w ciągu tygodnia, której numer próbujemy znaleźć. Może to być odwołanie do komórki zawierającej datę, data wprowadzona za pomocą funkcji DATA lub zwrócona przez inną formułę.
- Return_type (opcjonalne) - liczba określająca, w którym dniu zaczyna się tydzień. Jeżeli pominięto, to stosowany jest domyślny typ 1 (tydzień zaczynający się w niedzielę).
Oto pełna lista typ
wartości obsługiwane w formułach WEEKNUM.
Return_type | Tydzień rozpoczyna się w dniu |
1 lub 17 lub pominięty | Niedziela |
2 lub 11 | Poniedziałek |
12 | Wtorek |
13 | Środa |
14 | Czwartek |
15 | Piątek |
16 | Sobota |
21 | Poniedziałek (wykorzystywany w systemie 2, patrz szczegóły poniżej). |
W funkcji WEEKNUM można zastosować dwa różne systemy numeracji tygodni są stosowane:
- System 1. Tydzień zawierający 1 stycznia jest uważany za 1. tydzień roku i jest numerowany jako tydzień 1. W tym systemie tydzień tradycyjnie rozpoczyna się w niedzielę.
- System 2. Jest to system daty tygodniowej ISO, który jest częścią normy ISO 8601 dotyczącej daty i czasu. W tym systemie tydzień zaczyna się w poniedziałek, a tydzień zawierający pierwszy czwartek roku jest uważany za tydzień 1. Jest on powszechnie znany jako europejski system numeracji tygodni i jest używany głównie w rządzie i biznesie do lat podatkowych i ewidencji czasu.
Wszystkie wymienione powyżej typy zwrotów dotyczą systemu 1, z wyjątkiem typu zwrotu 21, który jest stosowany w systemie 2.
Uwaga. W programie Excel 2007 i wcześniejszych wersjach dostępne są tylko opcje 1 i 2. Typy zwrotów od 11 do 21 są obsługiwane tylko w programie Excel 2010 i Excel 2013.
Formuły Excel WEEKNUM do konwersji daty na numer tygodnia (od 1 do 54)
Poniższy zrzut ekranu demonstruje, jak można uzyskać numery tygodni z dat za pomocą najprostszej metody =WEEKNUM(A2)
wzór:
W powyższym wzorze typ
argument jest pominięty, co oznacza, że używany jest domyślny typ 1 - tydzień rozpoczynający się w niedzielę.
Jeśli wolisz zacząć od jakiegoś innego dnia tygodnia, powiedzmy od poniedziałku, to użyj 2 w drugim argumencie:
=WEEKNUM(A2, 2)
Zamiast odwoływać się do komórki, można określić datę bezpośrednio w formule, używając na przykład funkcji DATA(rok, miesiąc, dzień):
=WEEKNUM(DATE(2015,4,15), 2)
Powyższy wzór zwraca 16, czyli numer tygodnia zawierającego 15 kwietnia 2015 roku, z tygodniem zaczynającym się w poniedziałek.
W rzeczywistych scenariuszach funkcja WEEKNUM w Excelu rzadko jest używana samodzielnie. Najczęściej używasz jej w połączeniu z innymi funkcjami, aby wykonać różne obliczenia na podstawie numeru tygodnia, jak pokazano w dalszych przykładach.
Jak przekonwertować numer tygodnia na datę w programie Excel
Jak właśnie zauważyłeś, nie ma większego problemu, aby zamienić datę na numer tygodnia za pomocą funkcji Excel WEEKNUM. Ale co, jeśli szukasz czegoś odwrotnego, czyli konwersji numeru tygodnia na datę? Niestety, nie ma funkcji Excela, która mogłaby to zrobić od razu. Będziemy więc musieli skonstruować własne formuły.
Załóżmy, że masz rok w komórce A2 i numer tygodnia w B2, a teraz chcesz obliczyć daty rozpoczęcia i zakończenia w tym tygodniu.
Uwaga. Ten przykład formuły oparty jest na numerach tygodni ISO, z tygodniem rozpoczynającym się w poniedziałek.
Formuła zwracająca Data rozpoczęcia tygodnia jest następująca:
=DATE(A2, 1, -2) - WEEKDAY(DATE(A2, 1, 3)) + B2 * 7
Gdzie A2 to rok, a B2 to numer tygodnia.
Zwróć uwagę, że formuła zwraca datę jako liczbę porządkową i aby była ona wyświetlana jako data, musisz odpowiednio sformatować komórkę. Szczegółową instrukcję znajdziesz w Zmiana formatu daty w Excelu. A oto wynik zwrócony przez formułę:
Oczywiście, formuła konwersji numeru tygodnia na datę nie jest trywialna i może zająć trochę czasu, aby uzyskać głowę wokół logiki. W każdym razie, zrobię co w mojej mocy, aby zapewnić znaczące wyjaśnienie dla tych, którzy są ciekawi, aby przejść do sedna.
Jak widzisz, nasza formuła składa się z 2 części:
DATE(A2, 1, -2) - WEEKDAY(DATE(A2, 1, 3))
- oblicza datę ostatniego poniedziałku w poprzednim roku.B2 * 7
- dodaje liczbę tygodni pomnożoną przez 7 (liczba dni w tygodniu), aby uzyskać poniedziałek (datę rozpoczęcia) danego tygodnia.
W systemie numeracji tygodni ISO tydzień 1 to tydzień zawierający pierwszy czwartek w roku. W związku z tym pierwszy poniedziałek jest zawsze pomiędzy 29 grudnia a 4 stycznia. Tak więc, aby znaleźć tę datę, musimy znaleźć poniedziałek bezpośrednio przed 5 stycznia.
W programie Microsoft Excel można wyodrębnić dzień tygodnia z daty za pomocą funkcji WEEKDAY. I można użyć następującej formuły ogólnej, aby uzyskać poniedziałek bezpośrednio przed dowolną datą:
= data - TYDZIEŃ( data - 2)Gdyby naszym ostatecznym celem było znalezienie poniedziałku bezpośrednio przed 5 stycznia roku w A2, moglibyśmy użyć następujących funkcji DATE:
=DATE(A2,1,5) - WEEKDAY(DATE(A2,1,3))
Ale to, czego faktycznie potrzebujemy, to nie pierwszy poniedziałek tego roku, ale raczej ostatni poniedziałek poprzedniego roku. Więc musisz odjąć 7 dni od 5 stycznia i stąd otrzymujesz -2 w pierwszej funkcji DATE:
=DATE(A2,1,-2) - WEEKDAY(DATE(A2,1,3))
W porównaniu z poznanym właśnie skomplikowanym wzorem, obliczenie Data końcowa Aby uzyskać niedzielę w danym tygodniu, wystarczy dodać 6 dni do listy Data rozpoczęcia , tj. =D2+6
Ewentualnie można dodać 6 bezpośrednio we wzorze:
=DATE(A2, 1, -2) - WEEKDAY(DATE(A2, 1, 3)) + B2 * 7 + 6
Aby upewnić się, że formuły zawsze dostarczają właściwych dat, proszę spojrzeć na poniższy zrzut ekranu. Formuły Data rozpoczęcia i Data zakończenia omówione powyżej są skopiowane odpowiednio przez kolumnę D i E:
Inne sposoby konwersji numeru tygodnia na datę w programie Excel
Jeśli powyższa formuła oparta na systemie dat tygodniowych ISO nie spełnia Twoich wymagań, wypróbuj jedno z poniższych rozwiązań.
Wzór 1. tydzień zawierający Jan-1 jest tygodniem 1, tygodniem poniedziałek-niedziela
Jak pamiętasz, poprzednia formuła działa w oparciu o system dat ISO, w którym pierwszy czwartek roku jest uważany za tydzień 1. Jeśli pracujesz w oparciu o system dat, w którym tydzień zawierający 1 stycznia jest uważany za tydzień 1, użyj następujących formuł:
Data rozpoczęcia:
=DATE(A2,1,1) - WEEKDAY(DATE(A2,1,1),2) + (B2-1)*7 + 1
Data zakończenia:
=DATE(A2,1,1)- WEEKDAY(DATE(A2,1,1),2) + B2*7
Wzór 2. Tydzień zawierający Jan-1 jest tygodniem 1, tygodniem Sun-Sat
Formuły te są podobne do powyższych z tą różnicą, że są napisane dla tygodnia niedziela - sobota.
Data rozpoczęcia:
=DATE(A2,1,1) - WEEKDAY(DATE(A2,1,1),1) + (B2-1)*7 + 1
Data zakończenia:
=DATE(A2,1,1)- WEEKDAY(DATE(A2,1,1),1) + B2*7
Formuła 3. Zawsze rozpoczynaj liczenie od 1 stycznia w tygodniu poniedziałek-niedziela
Podczas gdy poprzednie formuły zwracały poniedziałek (lub niedzielę) 1. tygodnia, niezależnie od tego, czy przypada on w tym roku, czy w poprzednim, ta formuła daty początkowej zawsze zwraca 1 stycznia jako datę początkową tygodnia 1 niezależnie od dnia tygodnia. Analogicznie, formuła daty końcowej zawsze zwraca 31 grudnia jako datę końcową ostatniego tygodnia w roku, niezależnie od dnia tygodnia. We wszystkich innych aspektach formuły te działają podobnie do formuły 1 powyżej.
Data rozpoczęcia:
=MAX(DATE(A2,1,1), DATE(A2,1,1) - WEEKDAY(DATE(A2,1,1),2) + (B2-1)*7 + 1)
Data zakończenia:
=MIN(DATE(A2+1,1,0), DATE(A2,1,1) - WEEKDAY(DATE(A2,1,1),2) + B2*7)
Wzór 4. Zawsze rozpoczynaj liczenie od 1 stycznia, tydzień Sun-Sat
Aby obliczyć daty rozpoczęcia i zakończenia tygodnia niedziela - sobota, wystarczy jedna mała korekta w powyższych formułach :)
Data rozpoczęcia:
=MAX(DATE(A2,1,1), DATE(A2,1,1) - WEEKDAY(DATE(A2,1,1),1) + (B2-1)*7 + 1)
Data zakończenia:
=MIN(DATE(A2+1,1,0), DATE(A2,1,1) - WEEKDAY(DATE(A2,1,1),1) + B2*7)
Jak uzyskać miesiąc z numeru tygodnia
Aby uzyskać miesiąc odpowiadający numerowi tygodnia, znajdujesz pierwszy dzień w danym tygodniu, jak wyjaśniono w tym przykładzie, a następnie zawijasz tę formułę w funkcję MIESIĄC Excela, jak poniżej:
=MONTH(DATE(A2, 1, -2) - WEEKDAY(DATE(A2, 1, 3)) + B2 * 7)
Uwaga. Proszę pamiętać, że powyższy wzór działa w oparciu o. System dat tygodniowych ISO , gdzie tydzień zaczyna się od poniedziałku, a tydzień zawierający pierwszy czwartek roku jest uważany za tydzień 1. Na przykład w roku 2016 pierwszy czwartek to 7 stycznia, dlatego tydzień 1 zaczyna się 4-Jan-2016.
Jak uzyskać numer tygodnia w miesiącu (od 1 do 6)
Jeśli logika biznesowa wymaga konwersji określonej daty na numer tygodnia w ramach odpowiadającego jej miesiąca, można użyć kombinacji funkcji WEEKNUM, DATE i MONTH:
Zakładając, że komórka A2 zawiera oryginalną datę, użyj następującej formuły dla tygodnia rozpoczynającego się w dniu Poniedziałek (zauważ 21 w argumencie return_type WEEKNUM):
=WEEKNUM($A2,21)-WEEKNUM(DATE(YEAR($A2), MONTH($A2),1),21)+1
Przez tydzień rozpoczynający się w dniu Niedziela , pomiń argument return_type:
=WEEKNUM($A2)-WEEKNUM(DATE(YEAR($A2), MONTH($A2),1))+1
Jak zsumować wartości i znaleźć średnią według numeru tygodnia
Teraz, gdy wiesz, jak przekonwertować datę na numer tygodnia w programie Excel, zobaczmy, jak możesz używać numerów tygodni w innych obliczeniach.
Załóżmy, że masz pewne miesięczne dane dotyczące sprzedaży i chcesz znać sumę dla każdego tygodnia.
Na początek znajdźmy numer tygodnia odpowiadający każdej sprzedaży. Jeśli daty są w kolumnie A, a sprzedaż w kolumnie B, skopiuj =WEEKNUM(A2)
formuła w poprzek kolumny C, zaczynając od komórki C2.
A następnie zrób listę numerów tygodni w jakiejś innej kolumnie (powiedzmy w kolumnie E) i oblicz sprzedaż dla każdego tygodnia za pomocą następującej formuły SUMIF:
=SUMIF($C$2:$C$15, $E2, $B$2:$B$15)
Gdzie E2 jest numerem tygodnia.
W tym przykładzie pracujemy z listą sprzedaży marcowej, więc mamy numery tygodni od 10 do 14, jak pokazano na poniższym zrzucie ekranu:
W podobny sposób można obliczyć średnią sprzedaży dla danego tygodnia:
=AVERAGEIF($C$2:$C$15, $E2, $B$2:$B$15)
Jeśli kolumna pomocnicza z formułą WEEKNUM nie pasuje dobrze do Twojego układu danych, z przykrością muszę Ci powiedzieć, że nie ma prostego sposobu na pozbycie się jej, ponieważ Excel WEEKNUM jest jedną z tych funkcji, które nie przyjmują argumentów zakresu. Dlatego nie można jej użyć w ramach SUMPRODUCT lub innej formuły tablicowej, takiej jak funkcja MONTH w podobnym scenariuszu.
Jak podświetlić komórki na podstawie numeru tygodnia
Powiedzmy, że masz długą listę dat w jakiejś kolumnie i chcesz podświetlić tylko te, które dotyczą danego tygodnia. Wystarczy, że zastosujesz regułę formatowania warunkowego z formułą WEEKNUM podobną do tej:
=WEEKNUM($A2)=10
Jak pokazano na poniższym zrzucie ekranu, reguła podświetla sprzedaż dokonaną w ciągu tygodnia 10, czyli w pierwszym tygodniu marca 2015 r. Ponieważ reguła dotyczy A2:B15, podświetla wartości w obu kolumnach. Więcej o tworzeniu reguł formatowania warunkowego dowiesz się z tego samouczka: Formatowanie warunkowe w Excelu na podstawie wartości innej komórki.
W ten sposób można obliczyć numery tygodni w Excelu, przekonwertować numer tygodnia na datę i wyodrębnić numer tygodnia z daty. Mam nadzieję, że formuły WEEKNUM, które poznaliście dzisiaj, okażą się przydatne w waszych arkuszach. W następnym tutorialu porozmawiamy o obliczaniu wieku i lat w Excelu. Dziękuję za przeczytanie i mam nadzieję, że zobaczymy się za tydzień!