Расчет изменений по сравнению с предыдущим годом с использованием года ISO и недели ISO в power BI

#powerbi #dax

Вопрос:

В моей внутренней таблице есть данные на уровне недели. Он содержит текущий год ISO и текущую неделю ISO, а также номер года ISO и недели предыдущего года, с которыми следует сравнить данные текущего года.

Для каждой комбинации signup_iso_year-signup_iso_week существует только одна комбинация iso_prev_year-iso_prev_yearweek. Столбцы iso_prev_year, iso_prev_yearweek учитывают смещение, которое может произойти из-за того, что в определенных годах 53 недели вместо 52.

таблица данных

(Я не могу встраивать изображения, поэтому я также добавил таблицу здесь, хотя в ней гораздо меньше информации, чем в изображении в «таблице данных»).

Number_of_signups signup_iso_year signup_iso_week iso_prev_year iso_prev_yearweek Страна уровень grade_level
5 2020 18 2019 18 В средняя школа
7 2020 18 2019 18 США старшая школа
6 2021 17 2018 18 В средняя школа
8 2021 17 2018 18 США старшая школа

Я хочу рассчитать изменение числа подписей в течение года за год с использованием столбцов signup_iso_year, signup_iso_week, iso_prev_year, iso_prev_year.

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

Ответ, который я ищу, — это мера Power BI, которая может дать мне изменение в годовом исчислении на основе signup_iso_year и signup_iso_week.

Правка: Я должен был упомянуть об этом раньше, но я забыл. В таблице приведены данные за период с 2018 года по текущий день. Таким образом, размер данных довольно велик. Кроме того, мне нужна эта мера в годовом исчислении для визуального представления временных рядов, что означает, что я не могу назначить значения ISOyear/ISOWeek за предыдущий год, используя простые функции MAX/MIN. Ему необходимо выбрать значения из столбцов iso_prev_year, iso_prev_yearweek, но, поскольку предыдущая функция не может использоваться в качестве меры, я не могу понять, как это сделать.

Вот почему я попытался создать вычисляемый столбец и использовать более РАННЮЮ функцию для вычисления количества подписей за предыдущий год. Но из-за других столбцов, присутствующих в данных, т. е. страна, уровень, тема, тип электронной почты, наблюдались расхождения в фактическом количестве подписей и вычисленных предыдущих подписях. Эти расхождения были вызваны тем фактом, что не каждая комбинация этих столбцов существует для каждой недели, поэтому мы можем пропустить некоторые данные при расчете предыдущих подписей.

Правка 2: Меня попросили включить примеры того, как будет выглядеть ожидаемый результат, поэтому я добавил несколько фотографий.

г / г на общем уровне, уровне страны, уровне класса

Г / г на уровне страны класс

Ответ №1:

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

 prev_signup = 

var iso_prev_year = MIN(your_table_name[iso_prev_year])
var iso_prev_year_week = MIN(your_table_name[iso_prev_yearweek])

RETURN
CALCULATE(
    SUM(your_table_name[Number_of_signups]),
    FILTER(
        ALL(your_table_name),
        your_table_name[signup_iso_year] = iso_prev_year
            amp;amp; your_table_name[signup_iso_week] = iso_prev_year_week
    )
)   0
 

Вы также можете выполнить некоторые преобразования в редакторе запросов Power и присоединиться к той же таблице с помощью ключевых столбцов. В этом случае вы можете привести значение за предыдущий год в той же строке. Отдых-это просто сравнить 2 столбца из вашей таблицы, чтобы рассчитать Г / г

Комментарии:

1. Я должен был упомянуть об этом раньше, но мне нужна эта мера в годовом исчислении для визуализации временных рядов. Вот почему я не могу использовать такие функции, как MAX или MIN, для присвоения значений предыдущего года. Кроме того, что касается создания объединенной таблицы, я боюсь, что это может увеличить объем данных до слишком большого размера и значительно замедлить работу моего отчета.

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

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