Расчет недельных продаж с помощью DAX в LuckyTemplates
В этом руководстве показано, как в конечном итоге можно рассчитать разницу между еженедельными результатами продаж с помощью DAX в LuckyTemplates.
Я собираюсь показать вам, как извлекать записи из объединенных данных с разделителями в нескольких столбцах . Это преобразует ваши данные в формат, более подходящий для анализа.
Есть несколько способов сделать это. Но в этом уроке я сосредоточусь на решении, предложенном Ankit, который является частью нашего сообщества LuckyTemplates. Вы можете посмотреть полное видео этого урока в нижней части этого блога.
Оглавление
Использование Text.Split
Для этого решения я собираюсь использовать Power Query для извлечения записей из данных с разделителями.
Ниже представлена таблица Opportunities в Power Query .

Как видите, несколько значений объединены в одну запись. Например, во 2-й строке представлены 4 разных значения. Эти 4 значения объединены в столбцах «Конкуренты» и «Количество конкурентов» .

Первое, что я собираюсь сделать, это использовать Text.Split .

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

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

Как только я это сделаю, я добавлю пользовательский столбец.

Мне пока не нужно менять имя. Мне просто нужно сделать Text.Split под Custom Column Formula .

Для этой формулы требуется текстовое значение. Поэтому я просто выбираю столбец «Конкуренты» на правой панели, и он автоматически добавляется в формулу.

Мне также нужен разделитель в виде текста. Итак, внутри пары кавычек я вставлю разделитель, который скопировал ранее. Затем я добавлю закрывающую скобку.

Как только я нажму OK, я получу объект списка.

Глядя на первый список, столбцы «Конкуренты» и «Суммы» показывают только одну запись. Поэтому, если я нажму на пустое место рядом с объектом списка в столбце «Пользовательский», внизу также появится одно значение.

Для второй записи у меня есть список, содержащий четыре значения. Это соответствует 4 значениям, также показанным в столбцах «Конкуренты » и «Суммы» .

Использование List.Zip
Теперь, когда я разделил список, следующим шагом будет добавление соответствующего значения из столбца «Количество конкурентов». Я собираюсь сделать это в List.Zip .

Думайте о List.Zip как о настоящей застежке-молнии. Он принимает список списков и объединяет элементы.
Глядя на приведенный ниже пример, просто подумайте о первом списке (1 и 2) как о зеленой дорожке на молнии.

Затем подумайте о 3 и 4 как о красной дорожке.

Когда применяется List.Zip , он�� объединяются посередине. Таким образом, 1 из 1-й группы объединяется с 3 из 2-й группы. То же самое происходит для 2 и 4. Это видно на выходе, где образовались две новые группы.

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

Возвращаясь к таблице «Возможности» , я собираюсь добавить еще один настраиваемый столбец.

На этот раз я добавлю в формулу столбец «Количество конкурентов» .

Я также собираюсь добавить List.Zip .

Проверка ниже показывает, что ошибок не обнаружено.

Но когда я нажимаю «ОК» и смотрю на сформированный новый столбец, я все равно получаю сообщение об ошибке.

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

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

Но синтаксис для столбцов Competitor Amounts также возвращал список.

Вспоминая, что делает List.Zip, он берет один список списков и объединяет их .

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

Как только я добавлю закрывающую фигурную скобку в конце, мне просто нужно нажать Enter. Это даст мне объект списка.

Теперь, когда я щелкаю сбоку от 1-й записи, отображается один объект списка. Это правильно, учитывая, что в разделе «Количество конкурентов» действительно есть одно значение.

Если я сделаю то же самое со второй записью, он покажет объект списка, содержащий 4 списка. Это также соответствует количеству значений в данных с разделителями в разделе «Количество конкурентов».

Я буду использовать боковые стрелки справа от заголовка пользовательского столбца, чтобы развернуть данные в новые строки.

Обратите внимание на вторую запись, поскольку я расширяюсь до новых строк.

Вы увидите, что все значения из этой записи расширяются вниз.

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

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

На третьей записи я показываю комбинацию вторых значений.

Поэтому я снова воспользуюсь боковыми стрелками. Но на этот раз я собираюсь извлечь значения из этого списка.

Я собираюсь дать ему пользовательский разделитель.

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

Как только я нажимаю OK, значения объединяются прямо в пользовательский столбец.

Очистка данных
Мне больше не нужны столбцы «Конкурент» и «Количество конкурентов», поэтому я собираюсь удалить эти столбцы.

Что касается столбца «Пользовательский», я собираюсь разделить его.
На вкладке «Преобразование» я выберу «Разделить столбец». Я собираюсь разделить его по разделителю.

В окне я возьму за основу двойную трубу.

Как только я нажму OK, данные теперь будут разделены на отдельные столбцы.

Я просто переименую эти новые столбцы, чтобы было проще понять, о чем данные. Я снова назову это столбцом «Конкурент».

Затем я назову другой столбец столбцом «Сумма».

Очевидно, столбец Сумма содержит числа. Но если вы посмотрите на значок, представляющий тип данных, вы увидите, что вместо чисел у меня есть текст. Итак, я начну исправлять это.
Я живу в Европе, поэтому вместо запятой мы используем точку в качестве разделителя тысяч. Я собираюсь использовать Заменить значения, чтобы очистить это.

В окне мне просто нужно поставить запятую под «Значение для поиска» и точку под «Заменить на».

Как только я нажму OK, все запятые теперь будут показывать точки.

Следующее, что я собираюсь сделать, это удалить знак доллара перед значениями. Опять же, я буду использовать инструмент «Заменить значения». На этот раз я оставлю место для «Заменить на» пустым.

Как только я нажму OK, значения будут отображать только числа без какой-либо валюты.
Просматривая мою колонку, она также показывает здесь запись с двойным тире. Поскольку это может вернуть возможную ошибку, я собираюсь избавиться от этого двойного тире.

Я заменю двойное тире пробелом.

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

Теперь я могу щелкнуть значок типа данных и выбрать «Целое число».

Изменение форматов даты с помощью редактора Power Query
3 способа объединения значений с помощью DAX Inside LuckyTemplates
Расширенные преобразования в LuckyTemplates
Заключение
Как я упоминал ранее, вы можете извлекать значения из данных с разделителями разными способами. Но для меня этот подход является одним из самых простых и быстрых способов сделать это.
Поскольку идея этого решения пришла мне от одного из членов сообщества LuckyTemplates это также показывает, насколько важен . Вы действительно можете увидеть каждую проблему с разных точек зрения. Оттуда вы можете просто выбрать решение, которое, по вашему мнению, лучше всего подходит для вас.
Всего наилучшего,
Мелисса
***** Изучаете LuckyTemplates? *****
В этом руководстве показано, как в конечном итоге можно рассчитать разницу между еженедельными результатами продаж с помощью DAX в LuckyTemplates.
Что такое self в Python: примеры из реального мира
Вы узнаете, как сохранять и загружать объекты из файла .rds в R. В этом блоге также рассказывается, как импортировать объекты из R в LuckyTemplates.
В этом руководстве по языку программирования DAX вы узнаете, как использовать функцию GENERATE и как динамически изменять название меры.
В этом учебном пособии рассказывается, как использовать технику многопоточных динамических визуализаций для создания аналитических сведений из динамических визуализаций данных в ваших отчетах.
В этой статье я пройдусь по контексту фильтра. Контекст фильтра — одна из основных тем, с которой должен ознакомиться любой пользователь LuckyTemplates.
Я хочу показать, как онлайн-служба LuckyTemplates Apps может помочь в управлении различными отчетами и аналитическими данными, созданными из различных источников.
Узнайте, как рассчитать изменения вашей прибыли, используя такие методы, как разветвление показателей и объединение формул DAX в LuckyTemplates.
В этом руководстве будут обсуждаться идеи материализации кэшей данных и то, как они влияют на производительность DAX при предоставлении результатов.
Если вы все еще используете Excel до сих пор, то сейчас самое подходящее время, чтобы начать использовать LuckyTemplates для своих бизнес-отчетов.