Формула WEEKDAY в Excel за получаване на деня от седмицата, почивните дни и работните дни

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

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

Има различни функции за работа с дати в Excel. Функцията за ден от седмицата (WEEKDAY) е особено полезна за планиране и съставяне на графици, например за определяне на времевата рамка на даден проект и автоматично премахване на почивните дни от общата сума. И така, нека разгледаме примерите един по един и да видим как те могат да ви помогнат да се справите с различни задачи, свързани с дати в Excel.

    WEEKDAY - Функция на Excel за ден от седмицата

    Функцията WEEKDAY на Excel се използва за връщане на деня от седмицата от дадена дата.

    Резултатът е цяло число, което по подразбиране варира от 1 (неделя) до 7 (събота). Ако вашата бизнес логика изисква различно изброяване, можете да конфигурирате формулата да започне броенето с всеки друг ден от седмицата.

    Функцията WEEKDAY е налична във всички версии на Excel от 365 до 2000.

    Синтаксисът на функцията WEEKDAY е следният:

    WEEKDAY(serial_number, [return_type])

    Къде:

    Сериен_номер (задължително) - датата, която искате да конвертирате в числото на деня от седмицата. Тя може да бъде предоставена като серийно число, представляващо датата, като текстов низ във формат, който Excel разбира, като препратка към клетката, съдържаща датата, или чрез използване на функцията DATE.

    Return_type (незадължително) - определя кой ден от седмицата да се използва като първи ден. Ако се пропусне, по подразбиране се използва седмицата от Слънце до Събота.

    Ето списък на всички поддържани return_type стойности:

    Return_type Брой върнати
    1 или пропуснато От 1 ч. (неделя) до 7 ч. (събота)
    2 От 1 ч. (понеделник) до 7 ч. (неделя)
    3 От 0 (понеделник) до 6 (неделя)
    11 От 1 ч. (понеделник) до 7 ч. (неделя)
    12 От 1 (вторник) до 7 (понеделник)
    13 От 1 (сряда) до 7 (вторник)
    14 От 1 (четвъртък) до 7 (сряда)
    15 От 1 (петък) до 7 (четвъртък)
    16 От 1 (събота) до 7 (петък)
    17 От 1 (неделя) до 7 (събота)

    Забележка. return_type Стойностите от 11 до 17 бяха въведени в Excel 2010 и следователно не могат да се използват в по-ранни версии.

    Основна формула WEEKDAY в Excel

    Като начало нека видим как да използваме формулата WEEKDAY в нейната най-проста форма, за да получим числото на деня от датата.

    Например, за да получите деня от седмицата от датата в C4 със седмицата по подразбиране от неделя до събота, формулата е следната:

    =СЕДМИЦА(C4)

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

    =СЕДМИЦА(45658)

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

    =СЕДМИЦА("1/1/2025")

    Или въведете изходната дата по 100% надежден начин, като използвате функцията DATE:

    =СЕДМИЦА(DATE(2025, 1,1))

    За да използвате съпоставяне на дните, различно от това по подразбиране, въведете подходящо число във втория аргумент. Например, за да започнете да броите дните от понеделник, формулата е:

    =СЕДМИЦА(C4, 2)

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

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

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

    По замисъл функцията WEEKDAY на Excel връща деня от седмицата като число. За да превърнете числото на деня от седмицата в име на деня, използвайте функцията TEXT.

    За да получите имена за цял ден , използвайте кода на формата "dddd":

    TEXT(WEEKDAY( дата ), "dddd")

    Да се върнете съкратени имена на дни , кодът на формата е "ddd":

    TEXT(WEEKDAY( дата ), "ddd")

    Например за преобразуване на датата в A3 в име на работен ден формулата е:

    =TEXT(WEEKDAY(A3), "dddd")

    Или

    =TEXT(WEEKDAY(A3), "ddd")

    Друго възможно решение е използването на WEEKDAY заедно с функцията CHOOSE.

    Например, за да получите съкратено име на работен ден от датата в A3, формулата е следната:

    =CHOOSE(WEEKDAY(A3), "Sun", "Mon", "Tus", "Wed", "Thu", "Fri", "Sat")

    Тук WEEKDAY връща пореден номер от 1 (Sun) до 7 (Sat), а CHOOSE избира съответната стойност от списъка. Тъй като датата в A3 (Wednesday) съответства на 4, CHOOSE извежда "Wed", което е четвъртата стойност в списъка.

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

    Съвет. Друг лесен начин за преобразуване на дата в име на работен ден е чрез прилагане на потребителски формат на датата. Например при кодовия формат "dddd, mmmm d, yyyy" датата ще се покаже като " петък, 3 януари 2025 г. ", докато "dddd" ще покаже само " Петък ".

    Формула на Excel WEEKDAY за намиране и филтриране на работни и почивни дни

    Когато работите с дълъг списък от дати, може да искате да знаете кои от тях са работни дни и кои - почивни.

    За определяне на почивни и работни дни в Excel съставете декларация IF с вложената функция WEEKDAY. Например:

    =IF(WEEKDAY(A3, 2)<6, "Работен ден", "Уикенд")

    Тази формула се намира в клетка A3 и се копира надолу в толкова клетки, колкото е необходимо.

    Във формулата WEEKDAY задавате return_type на 2, което съответства на седмицата от понеделник до неделя, където понеделник е ден 1. Така че, ако броят на работните дни е по-малък от 6 (от понеделник до петък), формулата връща "Работен ден", в противен случай - "Уикенд".

    За филтриране на почивни или работни дни , приложете филтър на Excel към набора си от данни ( Данни tab> Филтър ) и изберете "Уикенд" или "Работен ден".

    На скрийншота по-долу работните дни са филтрирани, така че се виждат само почивните дни:

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

    Например, за лечение на Събота и Понеделник като почивни дни, задайте return_type до 12, така че ще получите тип седмица "от вторник (1) до понеделник (7)":

    =IF(WEEKDAY(A2, 12)<6, "Работен ден", "Уикенд")

    Как да подчертаете почивните дни и работните дни в Excel

    За да забележите с един поглед почивните и работните дни в работния си лист, можете да ги оцветите автоматично в различни цветове. За целта използвайте формулата за почивни дни/седмици, разгледана в предишния пример, с условно форматиране на Excel. Тъй като условието се подразбира, ни е необходима само основната функция WEEKDAY без обвивката IF.

    За подчертаване на уикендите (събота и неделя):

    =WEEKDAY($A2, 2)<6

    За подчертаване на работните дни (от понеделник до петък):

    =WEEKDAY($A2, 2)>5

    Където A2 е горната лява клетка на избрания диапазон.

    За да настроите правилото за условно форматиране, стъпките са следните:

    1. Изберете списъка с дати (в нашия случай A2:A15).
    2. На Начало в раздела Стилове група, щракнете върху Условно форматиране > Ново правило .
    3. В Ново правило за форматиране диалогов прозорец, изберете Използвайте формула, за да определите кои клетки да форматирате .
    4. В Форматиране на стойности, при които тази формула е вярно, въведете гореспоменатата формула за уикендите или работните дни.
    5. Щракнете върху Формат и изберете желания формат.
    6. Кликнете върху OK два пъти, за да запазите промените и да затворите диалоговите прозорци.

    За подробна информация за всяка стъпка вижте Как да настроим условно форматиране с формула.

    Резултатът изглежда доста добре, нали?

    Как да преброите работните и почивните дни в Excel

    За да получите броя на работните или почивните дни в списъка с дати, можете да използвате функцията WEEKDAY в комбинация със SUM. Например:

    За преброяване на почивните дни , формулата в D3 е:

    =SUM(--(WEEKDAY(A3:A20, 2)>5))

    За броене на работни дни , формулата в D4 има следния вид:

    =SUM(--(WEEKDAY(A3:A20, 2)<6))

    В Excel 365 и Excel 2021, които работят с масиви, това работи като обикновена формула, както е показано на снимката по-долу. В Excel 2019 и по-ранни версии натиснете Ctrl + Shift + Enter, за да я превърнете във формула за масив.

    Как работят тези формули:

    Функцията WEEKDAY с return_type зададено на 2, връща номер на ден от 1 (понеделник) до 7 (неделя) за всяка дата в диапазона A3:A20. Логическият израз проверява дали върнатите числа са по-големи от 5 (за почивни дни) или по-малки от 6 (за работни дни). Резултатът от тази операция е масив от стойности TRUE и FALSE.

    Двойното отрицание (--) превръща логическите стойности в 1 и 0, а функцията SUM ги сумира. Като се има предвид, че 1 (TRUE) представлява дните, които трябва да бъдат преброени, а 0 (FALSE) - дните, които трябва да бъдат пренебрегнати, се получава желаният резултат.

    Съвет. За да изчислите работни дни между две дати , използвайте функцията NETWORKDAYS или NETWORKDAYS.INTL.

    Ако е работен ден, тогава, ако е събота или неделя, тогава

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

    IF(WEEKDAY( клетка , 2)>5, if_weekend_then , if_weekday_then )

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

    • В logical_test вмъква функцията WEEKDAY, която проверява дали даден ден е работен или почивен.
    • В value_if_true аргумент, умножете броя на работните часове по ставката за почивните дни (G4).
    • В value_if_false аргумент, умножете броя на работните часове по ставката за работен ден (G3).

    Пълната формула в D3 е в този вид:

    =IF(WEEKDAY(B3, 2)>5, C3*$G$4, C3*$G$3)

    За да може формулата да се копира правилно в следващите клетки, не забравяйте да заключите адресите на клетките със знак $ (например $G$4).

    Функцията WEEKDAY не работи

    По принцип има две често срещани грешки, които може да върне формулата WEEKDAY:

    #VALUE! грешка възниква, ако:

    • Сериен_номер или return_type е нецифрово число.
    • Сериен_номер е извън поддържания диапазон от дати (1900 до 9999).

    #NUM! грешка възниква, когато return_type е извън допустимия диапазон (1-3 или 11-17).

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

    Практическа работна тетрадка за изтегляне

    Формула WEEKDAY в Excel - примери (.xlsx файл)

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