【问题标题】:Difference current month / month a year back on customer level in Power BIPower BI 中客户级别的当前月/年差异
【发布时间】:2021-06-22 03:32:50
【问题描述】:

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

Date 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

我的输出应该是这样的:

Date 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

【问题讨论】:

    标签: date powerbi dax powerbi-desktop date-difference


    【解决方案1】:

    这是一个计算列:

    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)
    

    【讨论】:

    • 感谢您的回答,完美运行! :)
    • 嘿,我们刚刚修改了代码以从当前月份中减去上个月。但是,在 1 月 - 12 月,它无法正常工作,可能是由于年份不同。你能帮我解决这个问题吗?代码如下:
    • 净变化 CM-PM = VAR _y = YEAR([AS_OF_DATE]) VAR _m = MONTH([AS_OF_DATE]) VAR _c = [CUST_NO] VAR _tbl_prev = FILTER(ALL('Select ri_rep_table_monthly_his') , [CUST_NO] = _c && MONTH([AS_OF_DATE]) = _m -1 && YEAR([AS_OF_DATE]) = _y ) VAR _tbl_curr = FILTER(ALL('Select ri_rep_table_monthly_his'), [CUST_NO] = _c && MONTH([AS_OF_DATE ]) = _m && YEAR([AS_OF_DATE]) = _y ) VAR _result = SUMX(_tbl_curr, [AVG_VOLUME_LIABILITIES]) - SUMX(_tbl_prev, [AVG_VOLUME_LIABILITIES]) 返回 IF(COUNTROWS(_tbl_prev), _result, 0)
    • 嗨。如果您觉得问题相关,您应该创建一个单独的问题并链接这个问题。会更好,因为这个评论部分缺乏功能,不提供详细的答案。
    【解决方案2】:

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

    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,
        0,
        current_row_sales_value - last_year_sales_volumne
    )
    

    这是输出-

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-10
      • 1970-01-01
      • 1970-01-01
      • 2019-10-07
      • 1970-01-01
      • 2022-08-22
      • 1970-01-01
      • 2020-04-30
      相关资源
      最近更新 更多