Функція Excel WEEKNUM - перетворення номера тижня в дату і навпаки

  • Поділитися Цим
Michael Brown

У той час як Microsoft Excel надає безліч функцій для роботи з днями тижня, місяцями і роками, для тижнів доступна тільки одна - функція WEEKNUM. Отже, якщо ви шукаєте спосіб отримати номер тижня з дати, WEEKNUM - це функція, яка вам потрібна.

У цьому короткому уроці ми коротко поговоримо про синтаксис і аргументи функції WEEKNUM Excel, а потім обговоримо кілька прикладів формул, що демонструють, як можна використовувати функцію WEEKNUM для обчислення номерів тижнів на робочих аркушах Excel.

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

    Функція НЕДЕЛЯ використовується в Excel для повернення номера тижня певної дати в році (число від 1 до 54). Вона має два аргументи, 1-й - обов'язковий, 2-й - необов'язковий:

    WEEKNUM(порядковий_номер, [тип_повернення])
    • Серійний_номер - будь-яка дата в межах тижня, номер якої ви намагаєтеся знайти. Це може бути посилання на комірку, що містить дату, дата, введена за допомогою функції ДАТА або повернута за іншою формулою.
    • Тип_повернення (необов'язково) - число, яке визначає, з якого дня починається тиждень. Якщо не вказано, використовується тип 1 за замовчуванням (тиждень починається в неділю).

    До вашої уваги повний перелік тип_повернення значення, що підтримуються у формулах WEEKNUM.

    Тип_повернення Тиждень розпочинається з
    1 або 17 або пропущено Неділя
    2 або 11 Понеділок
    12 Вівторок
    13 Середа
    14 Четвер
    15 П'ятниця
    16 Субота
    21 Понеділок (використовується в Системі 2, детальніше див. нижче).

    У функції WEEKNUM використовуються два різних системи нумерації тижнів використовуються:

    • Система 1. Тиждень, що містить 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)

    Наступний скріншот демонструє, як можна отримати номери тижнів з дат за допомогою найпростіших =WEEKNUM(A2) формула:

    У наведеній вище формулі коефіцієнт тип_повернення опускається, що означає, що використовується тип за замовчуванням 1 - тиждень, що починається в неділю.

    Якщо Ви бажаєте почати з іншого дня тижня, скажімо, з понеділка, то використовуйте 2 у другому аргументі:

    =WEEKNUM(A2, 2)

    Замість посилання на комірку можна вказати дату безпосередньо у формулі, використовуючи, наприклад, функцію ДАТА(рік, місяць, день):

    =WEEKNUM(DATE(2015,4,15), 2)

    Вищевказана формула повертає 16, що є номером тижня, який містить 15 квітня 2015 року, а тиждень починається з понеділка.

    У реальних ситуаціях функція НЕДЕЛЯ в Excel рідко використовується сама по собі. Найчастіше вона використовується в поєднанні з іншими функціями для виконання різних обчислень на основі номера тижня, як показано в наступних прикладах.

    Як перетворити номер тижня на дату в Excel

    Як ви щойно переконалися, перетворити дату в номер тижня за допомогою функції Excel WEEKNUM не складає труднощів. Але що робити, якщо вам потрібно навпаки, тобто перетворити номер тижня в дату? На жаль, функції Excel, яка могла б зробити це відразу, не існує. Отже, доведеться будувати свої власні формули.

    Припустимо, що в комірці A2 вказано рік, а в комірці B2 - номер тижня, і тепер ви хочете обчислити дати початку і закінчення цього тижня.

    Примітка: Цей приклад формули базується на номерах тижнів ISO, при цьому тиждень починається в понеділок.

    Формула для повернення значення Дата початку тижня виглядає наступним чином:

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

    Де A2 - рік, B2 - номер тижня.

    Зверніть увагу, що формула повертає дату у вигляді порядкового номера, а для того, щоб вона відображалася як дата, необхідно відформатувати комірку відповідним чином. Детальну інструкцію ви можете знайти в розділі Зміна формату дати в Excel. А ось результат, який повертає формула:

    Звичайно, формула перетворення номера тижня на дату не є тривіальною, і може знадобитися деякий час, щоб розібратися в логіці. Втім, я постараюся надати змістовні пояснення для тих, кому цікаво докопатися до суті.

    Як бачите, наша формула складається з 2 частин:

    • DATE(A2, 1, -2) - ДЕНЬ ТИЖНЯ(DATE(A2, 1, 3)) - розраховується дата останнього понеділка попереднього року.
    • B2 * 7 - додає кількість тижнів, помножену на 7 (кількість днів у тижні), щоб отримати понеділок (дату початку) відповідного тижня.

    У системі нумерації тижнів ISO, тиждень 1 - це тиждень, що містить перший четвер року. Отже, перший понеділок завжди знаходиться між 29 грудня і 4 січня. Таким чином, щоб знайти цю дату, ми повинні знайти понеділок, що безпосередньо передує 5 січня.

    У Microsoft Excel ви можете витягти день тижня з дати за допомогою функції ТИЖДЕНЬ. І ви можете використовувати наступну загальну формулу, щоб отримати понеділок безпосередньо перед будь-якою датою:

    = дата - ТИЖДЕНЬ( дата - 2)

    Якби нашою кінцевою метою було знайти в комірці А2 понеділок, що безпосередньо передує 5 січня поточного року, ми могли б скористатися наступними функціями ДАТА:

    =DATE(A2,1,5) - ДЕНЬ ТИЖНЯ(DATE(A2,1,3))

    Але насправді нам потрібен не перший понеділок поточного року, а останній понеділок попереднього року. Отже, від 5 січня треба відняти 7 днів і в першій функції ДАТА ми отримаємо -2:

    =DATE(A2,1,-2) - ДЕНЬ ТИЖНЯ(DATE(A2,1,3))

    У порівнянні з хитромудрою формулою, яку ви щойно вивчили, розрахунок Дата закінчення неділі тижня - це простіше простого :) Щоб отримати неділю тижня, про який йде мова, просто додайте 6 днів до Дата початку тобто =D2+6

    Крім того, можна було б додати 6 безпосередньо у формулу:

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

    Щоб переконатися, що формули завжди видають правильні дати, будь ласка, подивіться на наступний знімок екрана. Формули "Дата початку" та "Дата закінчення", про які йшлося вище, копіюються в стовпці D та E відповідно:

    Інші способи перетворення номера тижня в дату в Excel

    Якщо наведена вище формула, заснована на системі тижневих дат ISO, не відповідає Вашим вимогам, спробуйте одне з наступних рішень.

    Формула-1. тиждень, що містить Січень-1 - це 1-й тиждень, тиждень з Пн по Нед

    Як ви пам'ятаєте, попередня формула працює на основі системи дат ISO, де перший четвер року вважається 1 тижнем. Якщо ви працюєте на основі системи дат, де тиждень, що містить 1 січня, вважається 1 тижнем, використовуйте наступні формули:

    Дата початку:

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

    Кінцева дата:

    =ДАТА(A2,1,1)- ДЕНЬ ТИЖНЯ(ДАТА(A2,1,1),2) + B2*7

    Формула 2. тиждень, що містить 1 січня, є тижнем 1, тиждень з суботи по неділю

    Ці формули подібні до наведених вище з тією лише різницею, що вони написані для тижня неділя - субота.

    Дата початку:

    =ДАТА(A2,1,1) - ДЕНЬ ТИЖНЯ(ДАТА(A2,1,1),1) + (B2-1)*7 + 1

    Кінцева дата:

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

    Формула 3: завжди починати відлік з 1 січня, тиждень з понеділка по неділю

    У той час як попередні формули повертають понеділок (або неділю) 1-го тижня, незалежно від того, чи припадає він на поточний або попередній рік, ця формула завжди повертає дату початку 1 січня як дату початку тижня 1 незалежно від дня тижня. За аналогією, формула дати закінчення завжди повертає 31 грудня як дата закінчення останнього тижня в році, незалежно від дня тижня. У всіх інших відношеннях ці формули працюють аналогічно Формулі 1, наведеній вище.

    Дата початку:

    =MAX(ДАТА(A2,1,1), ДАТА(A2,1,1) - WEEKDAY(ДАТА(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(ДАТА(A2,1,1), ДАТА(A2,1,1) - ДЕНЬ ТИЖНЯ(ДАТА(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)

    Як отримати місяць з номера тижня

    Щоб отримати місяць, що відповідає номеру тижня, ви знаходите перший день тижня, як описано в цьому прикладі, а потім обертаєте цю формулу у функцію МЕСЯЦ Excel таким чином:

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

    Зверніть увагу, що наведена вище формула працює на основі Система тижневих дат ISO де тиждень починається з понеділка, а тиждень, на який припадає 1-й четвер року, вважається 1-м. Наприклад, у 2016 році перший четвер припадає на 7 січня, а тому 1-й тиждень починається з 4 січня 2016 року.

    Як дізнатися номер тижня в місяці (від 1 до 6)

    Якщо бізнес-логіка вимагає перетворення конкретної дати в номер тижня в межах відповідного місяця, можна скористатися комбінацією функцій ЧИСЛОТИЖНЯ, ДАТА і МІСЯЦЬ:

    Припускаючи, що комірка A2 містить вихідну дату, використовуйте наступну формулу для тижня, що починається з Понеділок (примітка 21 в аргументі return_type WEEKNUM):

    =WEEKNUM($A2,21)-WEEKNUM(DATE(РІК($A2), МІСЯЦЬ($A2),1),21)+1

    Протягом тижня, починаючи з Неділя опустити аргумент return_type:

    =WEEKNUM($A2)-WEEKNUM(DATE(РІК($A2), МІСЯЦЬ($A2),1))+1

    Як підсумувати значення та знайти середнє за номером тижня

    Тепер, коли ви знаєте, як перетворити дату в номер тижня в Excel, давайте подивимося, як можна використовувати номери тижнів в інших обчисленнях.

    Припустимо, у вас є дані про продажі за місяць, і ви хочете дізнатися загальну суму за кожен тиждень.

    Для початку давайте дізнаємося номер тижня, який відповідає кожному продажу. Якщо ваші дати знаходяться в колонці А, а продажі в колонці В, скопіюйте =WEEKNUM(A2) формулу по стовпчику С, починаючи з комірки С2.

    А потім зробити список номерів тижнів в якомусь іншому стовпчику (скажімо, в стовпчику Е) і порахувати продажі за кожен тиждень за формулою SUMIF:

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

    Де E2 - номер тижня.

    У цьому прикладі ми працюємо зі списком березневих продажів, тому маємо номери тижнів з 10 по 14, як показано на наступному скріншоті:

    Аналогічним чином можна розрахувати середній показник продажів за певний тиждень:

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

    Якщо допоміжний стовпець з формулою ТИЖДЕНЬ не дуже добре вписується у ваш макет даних, на жаль, не існує простого способу позбутися його, оскільки Excel ТИЖДЕНЬ - одна з тих функцій, яка не приймає аргументи діапазону. Тому вона не може бути використана в формулі СУММЕСЛИ або будь-якій іншій формулі масиву, як функція МІСЯЦЬ, в подібному сценарії.

    Як виділити комірки на основі номера тижня

    Припустимо, у вас є довгий список дат в якомусь стовпчику і ви хочете виділити тільки ті, які відносяться до даного тижня. Все, що вам потрібно - це правило умовного форматування з формулою WEEKNUM, подібною до цієї:

    =WEEKNUM($A2)=10

    Як показано на знімку екрана нижче, правило виділяє продажі, здійснені протягом 10-го тижня, тобто першого тижня березня 2015 року. Оскільки правило застосовується до діапазону A2:B15, воно виділяє значення в обох стовпцях. Ви можете дізнатися більше про створення правил умовного форматування в цьому уроці: Умовне форматування в Excel на основі іншого значення клітинки.

    Ось так можна обчислити номер тижня в Excel, перетворити номер тижня в дату і витягти номер тижня з дати. Сподіваюся, формули WEEKNUM, які ви вивчили сьогодні, стануть в нагоді у ваших робочих таблицях. У наступному уроці ми поговоримо про обчислення віку і років в Excel. Дякую за прочитання і сподіваюся побачити вас наступного тижня!

    Майкл Браун — відданий ентузіаст технологій із пристрастю до спрощення складних процесів за допомогою програмних засобів. Маючи понад десятирічний досвід роботи в технологічній індустрії, він відточив свої навички роботи з Microsoft Excel і Outlook, а також із Google Таблицями та Документами. Блог Майкла присвячений тому, щоб поділитися своїми знаннями та досвідом з іншими, надаючи прості поради та навчальні посібники для підвищення продуктивності та ефективності. Незалежно від того, чи є ви досвідченим професіоналом чи початківцем, блог Майкла пропонує цінну інформацію та практичні поради щодо отримання максимальної користі від цих основних програмних інструментів.