Учасник попросив спосіб перетворити його поле «Підтверджена дата доставки» , яке має формат року, тижня та дня тижня, і перетворити його на поле дати.
У своєму прикладі учасник пояснює, що код 20145 слід перетворити на 2020-04-03. Отже, звідси можна зробити висновок, що перші дві цифри відповідають році, наступні дві цифри відповідають номеру тижня, а остання цифра відповідає дню тижня.
Тепер, коли ми вже маємо ідею, як впоратися із запитом, давайте почнемо.
Щоб полегшити нашу роботу, давайте завантажимо наші дані в.
Перше, що я помітив, коли завантажив дані в Power Query, це те, що він негайно зробив крок зміни типу, як показано нижче.
Оскільки нам це не потрібно, ми можемо видалити цей крок, натиснувши кнопку X поруч із ним.
Тепер давайте почнемо розбивати код на окремі стовпці для року, тижня та дня тижня.
Стовпець року
Як я вже згадував раніше, перші дві цифри коду відповідають року значення дати.
Щоб додати окремий стовпець для року, нам потрібно переконатися, що вибрано стовпець Підтверджена дата доставки . Для цього перейдіть на вкладку «Додати стовпець» , натисніть «Витягнути» , а потім виберіть « Перші символи» .
Оскільки нам потрібні лише перші дві цифри для стовпця року, введіть «2» на вкладці «Кількість» і натисніть «ОК».
Тепер давайте змінимо наш новий стовпець, відредагувавши рядок формул. Отже, щоб змінити назву стовпця, змініть перші символи в панелі формул на Рік. Щоб перетворити його на правильне значення року, давайте додамо 2000 до кожного з наших значень.
Зауважте, що після зміни нашої формули ми отримаємо повідомлення про помилку через невідповідність типу.
У повідомленні про помилку сказано, що ми не можемо застосувати оператор + до значень типу числа та тексту.
Щоб виправити це, нам потрібно відредагувати нашу формулу так, щоб текстове значення було перетворено на число. Для цього ми будемо використовувати функцію Number.from і брати наступні частини в дужки. Потім змініть тип повернення з тексту на число.
Колонка тижня
Давайте тепер витягнемо номер тижня з коду.
Ще раз переконайтеся, що вибрано стовпець « Підтверджена дата доставки », перейдіть на вкладку «Додати стовпець», клацніть «Витягти», а потім виберіть «Діапазон».
Щоб отримати третю та четверту цифри нашого коду, нам потрібно почати відлік від 0, оскільки Power Query базується на нулі. Це означає, що для отримання третьої цифри нашого коду діапазон має починатися з 2.
І оскільки нам потрібні лише 2 цифри коду для номера тижня, ми введемо 2 у поле «Кількість символів».
Знову ж таки, тут застосовна та сама логіка. Щоб перетворити мітку стовпця на її власну назву, змініть діапазон тексту на тиждень у рядку формул.
Крім того, додайте функцію Number.from у нашу формулу, візьміть наступні частини в дужки та змініть тип повернення на число.
День Колонка
Для колонки дня нам потрібна лише остання цифра коду. Щоб витягти його, виберіть стовпець «Підтверджена дата доставки» , перейдіть на вкладку «Додати стовпець», виберіть «Витягнути», а потім натисніть « Останні символи» .
Введіть 1, тому що з коду, який нам потрібно витягти, залишилася лише одна цифра.
Подібно до того, що ми робили раніше, на панелі формул змініть останні символи на день, щоб наш новий стовпець мав свою правильну назву.
Знову додайте функцію Number.from , візьміть наступні частини формули в дужки та змініть тип повернення на число.
Тристоронній пошук для отримання значення дати
Тепер, коли у нас є всі компоненти для отримання однієї дати з нашої таблиці календаря, єдине, що залишилося зробити, це виконати тристоронній пошук .
Для цього перейдіть на вкладку «Домашня сторінка» та виберіть «Об’єднати запити».
Оскільки ми збираємося об’єднати з нашою таблицею дат, клацніть спадну вкладку та виберіть Дати.
Визначення пар
Зараз ми визначимо пари, які належать разом.
У верхній таблиці виберіть стовпець року, а потім поєднайте його зі стовпцем року таблиці нижче.
Щоб вибрати іншу пару, натисніть кнопку Ctrl на клавіатурі, виберіть стовпець тижня у верхній таблиці та поєднайте його зі стовпцем номера тижня в таблиці нижче.
Нарешті, утримуючи кнопку Ctrl, виберіть стовпець дня у верхній таблиці та поєднайте його зі стовпцем DayInWeek таблиці нижче.
Щоб переконатися, що стовпці поєднані правильно, перевірте, чи збігаються номери індексів один з одним.
Як показано нижче, стовпці «Рік» повинні мати індекс 1, стовпець «Тижні» — індекс 2, а стовпець «Дні» — індекс 3.
Отримання правильного значення дати
Оскільки нам потрібен лише стовпець дат, зніміть позначку з усіх інших стовпців і залиште стовпець дат позначеним, як показано нижче.
Як бачите, перше значення в нашому новому стовпці дат — 4-4-2020. Однак пам’ятайте, що на форумі код 20145 потрібно перетворити на 3-4-2020.
Це пояснюється тим, що якщо ми перевіримо таблицю дат, то побачимо, що в стовпці DayInWeek відлік починається від 0 до 6, а не від 1 до 7.
Віднімання зі стовпця дня
Щоб виправити це, давайте віднімемо 1 від усіх значень у стовпці «День».
У розділі «Застосовані кроки» клацніть крок, до якого ми додали стовпець «День». Це був крок «Вставлені останні символи» .
У рядку формул відніміть 1 відразу після дужок.
Зробивши це, ми побачимо, що у нас уже є правильні значення в нашому стовпці дати.
Нарешті, останнє, що нам потрібно зробити, це очистити та видалити стовпці, які нам більше не потрібні.
Щоб зробити це, виберіть «Вибрати стовпці», зніміть прапорці з усього іншого та залиште позначки в стовпцях «Підтверджена дата доставки» та «Дата».
І ми готові! Результат нашої роботи повинен виглядати ось так.
Висновок
У цьому блозі ми перетворили код у форматі року, тижня та дня тижня на правильне значення дати. Ми розбили код і створили з нього 3 стовпці. Використовуючи тристоронній пошук, ми об’єднали ці стовпці, щоб отримати єдине значення дати.
Техніку, яку ми використали для вирішення проблеми на форумі підтримки, можна використовувати в інших сценаріях. Тому переконайтеся, що ви їх добре розумієте.