#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. В конце я включил две картинки, которые дадут вам представление об ожидаемом результате. Поскольку я ожидаю, что г / г будет рассчитываться с использованием меры, она должна давать результаты для каждого столбца измерения, который у меня есть.