Зміст
У той час як 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. Дякую за прочитання і сподіваюся побачити вас наступного тижня!