Power BI 中客户级别的当前月份/每年月份的差异

问题描述

我正在尝试计算给定月份与一年前同月(例如 2021 年 1 月 - 2020 年 1 月)之间的销量差异。棘手的部分是它应该在客户层面上完成。我的表现在看起来像这样:

日期 Customer_number Sales_Volume
14.01.2020 1111 1000
13.01.2020 2222 2000
21.02.2020 1111 4000
17.02.2020 2222 5000
22.01.2021 1111 1500
24.01.2021 2222 2600
19.02.2021 1111 4700
18.02.2021 2222 5800

我的输出应该是这样的:

日期 Customer_number Sales_Volume Volume_Difference
14.01.2020 1111 1000 0
13.01.2020 2222 2000 0
21.02.2020 1111 4000 0
17.02.2020 2222 5000 0
22.01.2021 1111 1500 500
24.01.2021 2222 2600 600
19.02.2021 1111 4700 700
18.02.2021 2222 5800 800

解决方法

在下面试试这个测量代码-

your_value = 

var current_row_year = YEAR(MIN(your_table_name[Date]))
var current_row_month = MONTH(MIN(your_table_name[Date]))
var current_row_customer_number = MIN(your_table_name[Customer_number])
var current_row_sales_value = MIN(your_table_name[Sales_Volume])

var last_year_sales_volumne = 
CALCULATE(
    SUM(your_table_name[Sales_Volume]),FILTER(
        ALL(your_table_name),YEAR(your_table_name[Date]) = current_row_year - 1
        && MONTH(your_table_name[Date]) = current_row_month
        && your_table_name[Customer_number] = current_row_customer_number
    )
) + 0

RETURN IF(
    last_year_sales_volumne = 0,current_row_sales_value - last_year_sales_volumne
)

这是输出-

enter image description here

,

这是一个计算列:

Column = 
VAR _y = YEAR([Date])
VAR _m = MONTH([Date])
VAR _c = [Customer_number]
VAR _tbl_prev = FILTER(ALL('Table'),[Customer_number] = _c && MONTH([Date]) = _m && YEAR([Date]) = _y - 1)
VAR _tbl_curr = FILTER(ALL('Table'),[Customer_number] = _c && MONTH([Date]) = _m && YEAR([Date]) = _y)
VAR _result = SUMX(_tbl_curr,[Sales_Volume]) - SUMX(_tbl_prev,[Sales_Volume])
RETURN IF(COUNTROWS(_tbl_prev),_result,0)

enter image description here