【发布时间】:2021-06-15 08:12:12
【问题描述】:
我的后端表包含一周级别的数据。它包含当前 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 | Country | grade_level |
|---|---|---|---|---|---|---|
| 5 | 2020 | 18 | 2019 | 18 | IN | middle school |
| 7 | 2020 | 18 | 2019 | 18 | US | high school |
| 6 | 2021 | 17 | 2018 | 18 | IN | middle school |
| 8 | 2021 | 17 | 2018 | 18 | US | high school |
我想使用 signup_iso_year、signup_iso_week、iso_prev_year、iso_prev_yearweek 列计算 number_of_signups 的 Year-Over_Year 变化。
我已经尝试创建一个计算列,其中包含上一年的 number_of_signups 的总和,但是由于上一年度或本年度可能不存在 country、grade_level、subject、email_type 的每个组合,一些值会丢失并因此给出不正确的结果。
我正在寻找的答案是 Power BI 度量,它可以根据 signup_iso_year 和 signup_iso_week 为我提供 YOY 变化。
编辑:我之前应该提过这个,但我忘了。该表包含 2018 年至今的数据。因此,数据量非常大。此外,我需要这个 YoY 度量来获得时间序列视觉效果,这意味着我无法使用简单的 MAX/MIN 函数为上一年分配 ISOyear/ISOweek 值。它需要从 iso_prev_year、iso_prev_yearweek 列中选择值,但由于 EARLIER 函数不能用于度量,我无法弄清楚如何做到这一点。
这就是为什么我试图创建一个计算列,并使用 EARLIER 函数来计算前一年的 number_of_signups。但由于数据中存在其他列,即国家、等级_级别、主题、电子邮件类型,实际 number_of_signups 和计算出的 previous_year_number_of_signups 存在差异。这些差异是由于并非这些列的每个组合每周都存在,因此我们在计算 previous_year_number_of_signups 时可能会遗漏一些数据。
编辑 2:被要求包含预期结果的示例,因此添加了一些图片。
【问题讨论】: