Функцията WEEKNUM на Excel - преобразуване на номера на седмицата в дата и обратно

  • Споделя Това
Michael Brown

Въпреки че Microsoft Excel предлага редица функции за работа с дни от седмицата, месеци и години, само една от тях е налична за седмици - функцията WEEKNUM. Така че, ако търсите начин да получите номер на седмица от дата, WEEKNUM е функцията, която ви трябва.

В този кратък урок ще разгледаме накратко синтаксиса и аргументите на функцията WEEKNUM на Excel, а след това ще обсъдим няколко примера за формули, демонстриращи как можете да използвате функцията WEEKNUM за изчисляване на номерата на седмиците във вашите работни листове на Excel.

    Функция WEEKNUM на Excel - синтаксис

    Функцията WEEKNUM се използва в Excel за връщане на номера на седмицата на определена дата в годината (число между 1 и 54). Тя има два аргумента, като първият е задължителен, а вторият е незадължителен:

    WEEKNUM(serial_number, [return_type])
    • Сериен_номер - Това може да бъде препратка към клетка, съдържаща датата, дата, въведена с помощта на функцията DATE или върната от друга формула.
    • Return_type (незадължително) - число, което определя в кой ден започва седмицата. Ако се пропусне, по подразбиране се използва тип 1 (седмицата започва в неделя).

    Тук е пълен списък на return_type стойности, поддържани във формулите WEEKNUM.

    Return_type Седмицата започва на
    1 или 17 или пропуснато Неделя
    2 или 11 Понеделник
    12 Вторник
    13 Сряда
    14 Четвъртък
    15 Петък
    16 Събота
    21 Понеделник (използва се в Система 2, моля, вижте подробности по-долу.)

    Във функцията WEEKNUM се използват две различни системи за номериране на седмиците се използват:

    • Система 1. Седмицата, съдържаща 1 януари, се счита за първата седмица от годината и се номерира като седмица 1. В тази система седмицата традиционно започва в неделя.
    • Система 2. Това е системата на ISO за седмична дата, която е част от стандарта за дата и време ISO 8601. В тази система седмицата започва в понеделник, а седмицата, съдържаща първия четвъртък от годината, се счита за седмица 1. Тя е известна като европейска система за номериране на седмиците и се използва главно в държавната администрация и бизнеса за фискални години и отчитане на времето.

    Всички изброени по-горе типове връщане се отнасят за система 1, с изключение на тип връщане 21, който се използва в система 2.

    Забележка: В Excel 2007 и по-ранни версии са налични само опции 1 и 2. Типове връщане от 11 до 21 се поддържат само в Excel 2010 и Excel 2013.

    Excel WEEKNUM формули за преобразуване на дата в номер на седмица (от 1 до 54)

    Следващата снимка показва как можете да получите номера на седмицата от дати с най-простия =СЕДМИЦА(A2) формула:

    В горната формула return_type аргументът е пропуснат, което означава, че се използва тип 1 по подразбиране - седмица, започваща в неделя.

    Ако предпочитате да започнете с друг ден от седмицата, например с понеделник, използвайте 2 във втория аргумент:

    =WEEKNUM(A2, 2)

    Вместо да се позовавате на клетка, можете да зададете датата директно във формулата, като използвате функцията DATE(година, месец, ден), например:

    = СЕДМИЧНО ЧИСЛО(DATE(2015,4,15), 2)

    Горната формула връща 16, което е числото на седмицата, съдържаща 15 април 2015 г., като седмицата започва в понеделник.

    В реалния живот функцията WEEKNUM на Excel рядко се използва самостоятелно. Най-често тя се използва в комбинация с други функции за извършване на различни изчисления въз основа на номера на седмицата, както е показано в следващите примери.

    Как да конвертирате номер на седмица в дата в Excel

    Както току-що видяхте, не е проблем да превърнете дата в седмично число с помощта на функцията Excel WEEKNUM. Но какво ще стане, ако търсите обратното, т.е. да превърнете седмично число в дата? Уви, няма функция на Excel, която да може да направи това веднага. Така че ще трябва да създадем собствени формули.

    Да предположим, че имате година в клетка A2 и номер на седмица в B2 и сега искате да изчислите началната и крайната дата на тази седмица.

    Бележка: Този пример за формула се основава на номерата на седмиците по ISO, като седмицата започва в понеделник.

    Формулата за връщане на Начална дата на седмицата е следната:

    =ДАТА(A2, 1, -2) - ДЕН ОТ СЕДМИЦАТА(ДАТА(A2, 1, 3)) + B2 * 7

    Където A2 е годината, а B2 е номерът на седмицата.

    Моля, обърнете внимание, че формулата връща датата като пореден номер и за да бъде показана като дата, трябва да форматирате клетката по съответния начин. Можете да намерите подробни инструкции в раздел Промяна на формата на датата в Excel. Ето и резултатът, върнат от формулата:

    Разбира се, формулата за преобразуване на числото на седмицата в дата не е тривиална и може да отнеме известно време, за да се ориентирате в логиката й. Както и да е, ще се постарая да дам смислено обяснение за тези, които са любопитни да стигнат до дъното.

    Както виждате, нашата формула се състои от 2 части:

    • ДАТА(A2, 1, -2) - ДЕН ОТ СЕДМИЦАТА(ДАТА(A2, 1, 3)) - изчислява датата на последния понеделник от предходната година.
    • B2 * 7 - добавя броя на седмиците, умножен по 7 (броя на дните в седмицата), за да получи понеделника (началната дата) на въпросната седмица.

    В системата за номериране на седмиците по ISO седмица 1 е седмицата, която съдържа първия четвъртък от годината. Следователно първият понеделник винаги е между 29 декември и 4 януари. Така че, за да намерим тази дата, трябва да намерим понеделника непосредствено преди 5 януари.

    В Microsoft Excel можете да извлечете ден от седмицата от дадена дата, като използвате функцията WEEKDAY. Можете да използвате и следната обща формула, за да получите понеделник непосредствено преди дадена дата:

    = дата - СЕДМИЧЕН ДЕН( дата - 2)

    Ако крайната ни цел е да намерим понеделника непосредствено преди 5 януари на годината в A2, можем да използваме следните функции DATE:

    =ДАТА(A2,1,5) - ДЕН ОТ СЕДМИЦАТА(ДАТА(A2,1,3))

    Но това, от което се нуждаем, всъщност не е първият понеделник на тази година, а последният понеделник на предходната година. Така че трябва да извадите 7 дни от 5 януари и така да получите -2 в първата функция DATE:

    =ДАТА(A2,1,-2) - ДЕН ОТ СЕДМИЦАТА(ДАТА(A2,1,3))

    В сравнение със сложната формула, която току-що научихте, изчисляването на Крайна дата на седмицата е лесна задача :) За да получите неделята на въпросната седмица, просто добавете 6 дни към Начална дата , т.е. =D2+6

    Можете също така да добавите 6 директно във формулата:

    =ДАТА(A2, 1, -2) - ДЕН ОТ СЕДМИЦАТА(ДАТА(A2, 1, 3)) + B2 * 7 + 6

    За да се уверите, че формулите винаги предоставят правилните дати, погледнете следната снимка на екрана. Формулите за начална дата и крайна дата, разгледани по-горе, са копирани съответно в колони D и E:

    Други начини за конвертиране на номер на седмица в дата в Excel

    Ако горната формула, базирана на системата за седмична дата по ISO, не отговаря на вашите изисквания, опитайте едно от следните решения.

    Формула 1. Седмица, съдържаща Jan-1, е седмица 1, седмица от понеделник до неделя

    Както си спомняте, предишната формула работи на базата на системата за дати ISO, където първият четвъртък от годината се счита за седмица 1. Ако работите на базата на система за дати, където седмицата, съдържаща 1 януари, се счита за седмица 1, използвайте следните формули:

    Дата на започване:

    =ДАТА(A2,1,1) - ДЕН ОТ СЕДМИЦАТА(ДАТА(A2,1,1),2) + (B2-1)*7 + 1

    Крайна дата:

    =ДАТА(A2,1,1)-СЕДМИЧЕН ДЕН(ДАТА(A2,1,1),2) + B2*7

    Формула 2. Седмица, съдържаща Jan-1, е седмица 1, седмица от неделя до събота

    Тези формули са подобни на горните, с единствената разлика, че са написани за седмицата от неделя до събота.

    Дата на започване:

    =ДАТА(A2,1,1) - ДЕН ОТ СЕДМИЦАТА(ДАТА(A2,1,1),1) + (B2-1)*7 + 1

    Крайна дата:

    =ДАТА(A2,1,1)-СЕДМИЧЕН ДЕН(ДАТА(A2,1,1),1) + B2*7

    Формула 3. Винаги започвайте да броите на 1 януари, седмица от понеделник до неделя

    Докато при предишните формули се връща понеделник (или неделя) от седмица 1, независимо дали се пада в рамките на тази или предишната година, тази формула за начална дата винаги връща 1 януари като начална дата на седмица 1, независимо от деня от седмицата. По аналогия формулата за крайна дата винаги връща 31 декември като крайна дата на последната седмица в годината, независимо от деня от седмицата. Във всички останали отношения тези формули работят подобно на формула 1 по-горе.

    Дата на започване:

    =MAX(DATE(A2,1,1), DATE(A2,1,1) - WEEKDAY(DATE(A2,1,1),2) + (B2-1)*7 + 1)

    Крайна дата:

    =MIN(DATE(A2+1,1,0), DATE(A2,1,1) - WEEKDAY(DATE(A2,1,1),2) + B2*7)

    Формула 4. Винаги започвайте да броите на 1 януари, седмица слънце-събота

    За да изчислите началната и крайната дата на седмицата от неделя до събота, е необходима само една малка корекция в горните формули :)

    Дата на започване:

    =MAX(DATE(A2,1,1), DATE(A2,1,1) - WEEKDAY(DATE(A2,1,1),1) + (B2-1)*7 + 1)

    Крайна дата:

    =MIN(DATE(A2+1,1,0), DATE(A2,1,1) - WEEKDAY(DATE(A2,1,1),1) + B2*7)

    Как да получите месец от номера на седмицата

    За да получите месец, съответстващ на номера на седмицата, намерете първия ден в дадена седмица, както е обяснено в този пример, и след това обвийте тази формула във функцията MONTH на Excel по следния начин:

    =МЕСЕЦ(ДАТА(A2, 1, -2) - ДЕН ОТ СЕДМИЦАТА(ДАТА(A2, 1, 3)) + B2 * 7)

    Забележка. Моля, не забравяйте, че горната формула работи на базата на ISO система за седмична дата , където седмицата започва в понеделник, а седмицата, съдържаща първия четвъртък на годината, се счита за седмица 1. Например през 2016 г. първият четвъртък е 7 януари и затова седмица 1 започва на 4 януари 2016 г.

    Как да получите номер на седмица в месец (от 1 до 6)

    Ако вашата бизнес логика изисква преобразуване на определена дата в номер на седмица в рамките на съответния месец, можете да използвате комбинацията от функциите WEEKNUM, DATE и MONTH:

    Предполагайки, че клетка А2 съдържа първоначалната дата, използвайте следната формула за седмица, започваща на Понеделник (забележете 21 в аргумента return_type на WEEKNUM):

    =WEEKNUM($A2,21)-WEEKNUM(DATE(YEAR($A2), MONTH($A2),1),21)+1

    За една седмица, започваща на Неделя , пропуснете аргумента return_type:

    =WEEKNUM($A2)-WEEKNUM(DATE(YEAR($A2), MONTH($A2),1))+1

    Как да съберете стойностите и да намерите средната стойност по номера на седмицата

    След като вече знаете как да преобразувате дата в число на седмица в Excel, нека видим как можете да използвате числата на седмицата в други изчисления.

    Да предположим, че разполагате с данни за месечните продажби и искате да знаете общата сума за всяка седмица.

    Като начало нека да открием номера на седмицата, съответстващ на всяка продажба. Ако датите са в колона А, а продажбите - в колона Б, копирайте =СЕДМИЦА(A2) формула в колона C, започвайки от клетка C2.

    След това съставете списък с номерата на седмиците в някоя друга колона (например в колона Е) и изчислете продажбите за всяка седмица, като използвате следната формула SUMIF:

    =SUMIF($C$2:$C$15, $E2, $B$2:$B$15)

    Където E2 е номерът на седмицата.

    В този пример работим със списък с мартенски продажби, така че имаме номера на седмиците от 10 до 14, както е показано на следващата снимка:

    По подобен начин можете да изчислите средната стойност на продажбите за дадена седмица:

    =AVERAGEIF($C$2:$C$15, $E2, $B$2:$B$15)

    Ако помощната колона с формулата WEEKNUM не се вписва добре във вашето оформление на данните, със съжаление трябва да ви кажа, че няма прост начин да се отървете от нея, защото Excel WEEKNUM е една от онези функции, които не приемат аргументи за диапазони. Следователно тя не може да се използва в рамките на SUMPRODUCT или друга формула за масиви като функцията MONTH в подобен сценарий.

    Как да маркирате клетките въз основа на номера на седмицата

    Да речем, че имате дълъг списък с дати в някоя колона и искате да подчертаете само тези, които се отнасят за дадена седмица. Всичко, от което се нуждаете, е правило за условно форматиране с формула WEEKNUM, подобна на тази:

    =WEEKNUM($A2)=10

    Както е показано на екранната снимка по-долу, правилото подчертава продажбите, извършени в рамките на седмица 10, която е първата седмица на март 2015 г. Тъй като правилото се прилага за A2:B15, то подчертава стойностите и в двете колони. Можете да научите повече за създаването на правила за условно форматиране в този урок: Условно форматиране в Excel въз основа на стойност на друга клетка.

    Ето как можете да изчислявате номера на седмицата в Excel, да преобразувате номера на седмицата в дата и да извличате номера на седмицата от дата. Надявам се, че формулите WEEKNUM, които научихте днес, ще се окажат полезни във вашите работни листове. В следващия урок ще говорим за изчисляване на възраст и години в Excel. Благодаря ви, че прочетохте, и се надявам да се видим следващата седмица!

    Майкъл Браун е отдаден технологичен ентусиаст със страст към опростяване на сложни процеси с помощта на софтуерни инструменти. С повече от десетилетие опит в технологичната индустрия, той е усъвършенствал уменията си в Microsoft Excel и Outlook, както и в Google Sheets и Docs. Блогът на Майкъл е посветен на споделянето на неговите знания и опит с други, предоставяйки лесни за следване съвети и уроци за подобряване на продуктивността и ефективността. Независимо дали сте опитен професионалист или начинаещ, блогът на Michael предлага ценни прозрения и практически съвети за извличане на максимума от тези основни софтуерни инструменти.