Преобразование функции таблицы дат в запрос таблицы в LuckyTemplates

Я собираюсь показать вам, как превратить М-код для таблицы дат в табличный запрос. Вы можете посмотреть полное видео этого урока в нижней части этого блога.

Я бы рассматривал уровень сложности этого урока как средний, потому что, если у вас есть опыт работы с M-кодами, вам будет легко следовать ему. Если у вас нет соответствующего опыта, я предлагаю вам сначала изучить М-коды, чтобы вам было легче понять концепции, представленные здесь.

Оглавление

Вызванный запрос функции и запрос таблицы дат

Это запрос таблицы дат и запрос вызываемой функции.

Преобразование функции таблицы дат в запрос таблицы в LuckyTemplates

Если вы посмотрите на панель Applied Steps справа, там будет только один шаг. Он показывает источник для этого запроса.

Преобразование функции таблицы дат в запрос таблицы в LuckyTemplates

Итак, если вы хотите разработать M-код для этой таблицы дат, вам придется переключаться между функцией и запросом таблицы, чтобы увидеть любые изменения, которые вы применяете.

Это означает, что сложнее бороться с ошибками, вызванными любыми вашими изменениями. Это приведет к ошибке в самом запросе таблицы, тогда вам придется искать строки кода, чтобы исправить ошибку.

На следующей странице показан запрос даты, возвращающий таблицу вместо функции.

Преобразование функции таблицы дат в запрос таблицы в LuckyTemplates

Глядя на Прикладные шаги справа, вы увидите, что на этот раз перечислено несколько шагов.

Преобразование функции таблицы дат в запрос таблицы в LuckyTemplates

Это означает, что по мере разработки М-кода таблицы дат вы сразу же увидите результаты своих изменений в запросе к этой таблице.

Что еще более важно, всякий раз, когда ваше изменение приводит к ошибке, вы можете легко определить шаг, вызвавший ошибку. Это облегчает решение проблемы.

Применение М-кода

Код M таблицы дат можно найти на форуме LuckyTemplates. Он находится в разделе Расширенная таблица данных Power Query M Function в M Code Showcase.

Преобразование функции таблицы дат в запрос таблицы в LuckyTemplates

Код M находится наверху. Я выделю весь код и скопирую его.

Преобразование функции таблицы дат в запрос таблицы в LuckyTemplates

Затем я создам новый пустой запрос.

Преобразование функции таблицы дат в запрос таблицы в LuckyTemplates

Я открою расширенный редактор и вставлю туда этот код.

Преобразование функции таблицы дат в запрос таблицы в LuckyTemplates

Поскольку я вижу, что ошибок не обнаружено, я нажимаю «Готово».

Позвольте мне переименовать это и назвать это Dates.

Преобразование функции таблицы дат в запрос таблицы в LuckyTemplates

Этот запрос возвращает функцию, но мне нужна таблица.

Преобразование функции таблицы дат в запрос таблицы в LuckyTemplates

Чтобы внести необходимые изменения, я вернусь в расширенный редактор.

Преобразование функции в таблицу

Чтобы это возвращало таблицу, а не функцию, мне нужно было бы внести некоторые изменения в код M в расширенном редакторе.

Глядя на код M, я легко могу увидеть по крайней мере две среды в зависимости от количества операторов let.

Преобразование функции таблицы дат в запрос таблицы в LuckyTemplates

Каждое выражение let имеет собственное предложение in, которое можно найти внизу.

Преобразование функции таблицы дат в запрос таблицы в LuckyTemplates

Вы можете подумать, что было бы проще просто удалить это последнее предложение in, чтобы превратить его в таблицу.

Преобразование функции таблицы дат в запрос таблицы в LuckyTemplates

Но я не собираюсь этого делать. Вместо этого я собираюсь прокомментировать это, добавив две косые черты перед последним предложением in.

Преобразование функции таблицы дат в запрос таблицы в LuckyTemplates

Я также собираюсь сделать это для первого оператора let. Это делает его неактивным.

Преобразование функции таблицы дат в запрос таблицы в LuckyTemplates

Под внутренним оператором let я собираюсь создать раздел для объявления своих параметров, потому что мне все еще нужно передать эти параметры в этот код.

Я собираюсь отметить, где эти переменные должны быть объявлены.

Преобразование функции таблицы дат в запрос таблицы в LuckyTemplates

Теперь я скопирую первую переменную из внешнего оператора let и вставлю ее в пустое место.

Преобразование функции таблицы дат в запрос таблицы в LuckyTemplates

В моем наборе данных исторические данные не уходят дальше 2017 года. Поэтому, чтобы передать значение переменной StartDate, я могу использовать встроенную дату. Я поставлю 1 января, тогда я закончу строку запятой.

Преобразование функции таблицы дат в запрос таблицы в LuckyTemplates

Затем я скопирую и вставлю следующую переменную EndDate.

Преобразование функции таблицы дат в запрос таблицы в LuckyTemplates

Я знаю, что EndDate потребует прогнозирования. Вот почему я хочу, чтобы EndDate всегда был концом следующего года.

У меня уже есть переменная внутри моего M-кода для CurrentDate, поэтому я буду ссылаться на нее.

Преобразование функции таблицы дат в запрос таблицы в LuckyTemplates

Опять же, я буду использовать внутреннюю дату. Я извлеку Date.Year и использую CurrentDate как значение года +1. Я также хочу, чтобы дата была 31 декабря.

Опять же, я заканчиваю эту строку запятой.

Следующая переменная — необязательный параметр FYStartMonth.

Преобразование функции таблицы дат в запрос таблицы в LuckyTemplates

Так что я просто скопирую это имя и вставлю.

Преобразование функции таблицы дат в запрос таблицы в LuckyTemplates

Обратите внимание, что под FYStartMonth под переменной, которую я только что вставил, появилось красное подчеркивание.

Преобразование функции таблицы дат в запрос таблицы в LuckyTemplates

Это потому, что их имена совпадают. Это не было проблемой, когда они находились в разных средах. Но имена переменных в одной среде должны быть уникальными. Это означает, что мне нужно изменить имя новой переменной, которую я только что вставил.

Вместо того, чтобы называть его FYStartMonth, я назову его FYStartMonthNum.

Преобразование функции таблицы дат в запрос таблицы в LuckyTemplates

Я не собираюсь присваивать значение этой переменной, поэтому я просто поставлю ноль.

Преобразование функции таблицы дат в запрос таблицы в LuckyTemplates

Поскольку я изменил имя переменной, мне также нужно изменить имя везде, где этот параметр упоминался.

Преобразование функции таблицы дат в запрос таблицы в LuckyTemplates

Возвращаясь к переменной, я закрою эту строку, добавив запятую в конце.

Преобразование функции таблицы дат в запрос таблицы в LuckyTemplates

Следующий параметр — необязательный список праздников. Я также скопирую и вставлю это, а также объявлю его нулевым.

Преобразование функции таблицы дат в запрос таблицы в LuckyTemplates

То же самое касается WDStartNum. Я скопирую и вставлю его, а затем объявлю его нулевым.

Преобразование функции таблицы дат в запрос таблицы в LuckyTemplates

Чтобы отметить, где начинается код таблицы дат, я добавлю сюда еще один комментарий.

Преобразование функции таблицы дат в запрос таблицы в LuckyTemplates

Как только я нажму «Готово», вы увидите, что теперь запрос возвращает правильный тип.

Преобразование функции таблицы дат в запрос таблицы в LuckyTemplates

Теперь у меня есть таблица вместо функции.

Преобразование функции таблицы дат в запрос таблицы в LuckyTemplates

На панели «Примененные шаги» я также вижу все шаги, из которых состоит запрос.

Преобразование функции таблицы дат в запрос таблицы в LuckyTemplates

Если я хочу внести какие-либо изменения в таблицу дат, достаточно просто использовать ленту для изменения или добавления шагов. Для каждого изменения, которое я делаю, я также сразу же увижу результаты в запросе.

Превращение табличного запроса обратно в функцию

Допустим, я хочу снова превратить запрос таблицы дат в функцию. Это просто вопрос настройки нескольких вещей в коде M, чтобы отменить изменения, которые я сделал ранее.

Я вернусь в расширенный редактор и удалю косые черты перед внешним оператором let.

Преобразование функции таблицы дат в запрос таблицы в LuckyTemplates

Далее я уберу косые черты перед операторами in.

Преобразование функции таблицы дат в запрос таблицы в LuckyTemplates

Затем я закомментирую блок переменных, который добавил ранее. Поэтому я добавлю косую черту и звездочку здесь.

Преобразование функции таблицы дат в запрос таблицы в LuckyTemplates

Затем звездочка и косая черта после блока переменных.

Преобразование функции таблицы дат в запрос таблицы в LuckyTemplates

Помните, как я изменил эту строку кода ранее из-за FYStartMonthNum?

Преобразование функции таблицы дат в запрос таблицы в LuckyTemplates

Я собираюсь скопировать эту строку кода. Затем я добавлю новую строку и вставлю ее.

Преобразование функции таблицы дат в запрос таблицы в LuckyTemplates

Я вырежу первую (там, где я ранее внес изменения в имя переменной).

Преобразование функции таблицы дат в запрос таблицы в LuckyTemplates

Затем на втором я найду отредактированные имена переменных.

Преобразование функции таблицы дат в запрос таблицы в LuckyTemplates

И я превращу их обратно в FYStartMonth.

Преобразование функции таблицы дат в запрос таблицы в LuckyTemplates

Как только я нажму «Готово», запрос таблицы снова превратится в функцию.

Преобразование функции таблицы дат в запрос таблицы в LuckyTemplates


Создание динамической таблицы запроса даты в LuckyTemplates: руководство по редактору запросов
Создание таблицы дат в LuckyTemplates
Настройка динамической даты начала и окончания для таблиц дат Power Query

Заключение

Еще раз я показал вам, насколько удобны М-коды, особенно в таких случаях, как этот, когда мы преобразовывали функцию в табличный запрос и наоборот. Пока у вас есть доступ к M-коду, который есть на форуме LuckyTemplates, вы можете использовать его в подобных сценариях в будущем.

Вы также можете просмотреть другие коды M, которые вы можете использовать в других ситуациях, в разделе M Code Showcase на . Это совместное сообщество, поэтому вы можете прочитать комментарии для других идей от наших экспертов и участников.

Всего наилучшего,

Мелисса

***** Изучаете LuckyTemplates? *****






Leave a Comment

Расчет недельных продаж с помощью DAX в LuckyTemplates

Расчет недельных продаж с помощью DAX в LuckyTemplates

В этом руководстве показано, как в конечном итоге можно рассчитать разницу между еженедельными результатами продаж с помощью DAX в LuckyTemplates.

Что такое self в Python: примеры из реального мира

Что такое self в Python: примеры из реального мира

Что такое self в Python: примеры из реального мира

Как сохранить и загрузить файл RDS в R

Как сохранить и загрузить файл RDS в R

Вы узнаете, как сохранять и загружать объекты из файла .rds в R. В этом блоге также рассказывается, как импортировать объекты из R в LuckyTemplates.

Новый взгляд на первые N рабочих дней — решение для языка кодирования DAX

Новый взгляд на первые N рабочих дней — решение для языка кодирования DAX

В этом руководстве по языку программирования DAX вы узнаете, как использовать функцию GENERATE и как динамически изменять название меры.

Продемонстрируйте идеи с помощью метода многопоточных динамических визуализаций в LuckyTemplates

Продемонстрируйте идеи с помощью метода многопоточных динамических визуализаций в LuckyTemplates

В этом учебном пособии рассказывается, как использовать технику многопоточных динамических визуализаций для создания аналитических сведений из динамических визуализаций данных в ваших отчетах.

Введение в фильтрацию контекста в LuckyTemplates

Введение в фильтрацию контекста в LuckyTemplates

В этой статье я пройдусь по контексту фильтра. Контекст фильтра — одна из основных тем, с которой должен ознакомиться любой пользователь LuckyTemplates.

Лучшие советы по использованию приложений в онлайн-службе LuckyTemplates

Лучшие советы по использованию приложений в онлайн-службе LuckyTemplates

Я хочу показать, как онлайн-служба LuckyTemplates Apps может помочь в управлении различными отчетами и аналитическими данными, созданными из различных источников.

Анализ изменений маржи прибыли с течением времени — аналитика с LuckyTemplates и DAX

Анализ изменений маржи прибыли с течением времени — аналитика с LuckyTemplates и DAX

Узнайте, как рассчитать изменения вашей прибыли, используя такие методы, как разветвление показателей и объединение формул DAX в LuckyTemplates.

Идеи материализации кэшей данных в DAX Studio

Идеи материализации кэшей данных в DAX Studio

В этом руководстве будут обсуждаться идеи материализации кэшей данных и то, как они влияют на производительность DAX при предоставлении результатов.

Бизнес-отчетность с использованием LuckyTemplates

Бизнес-отчетность с использованием LuckyTemplates

Если вы все еще используете Excel до сих пор, то сейчас самое подходящее время, чтобы начать использовать LuckyTemplates для своих бизнес-отчетов.