SQL Server 每月百分比变化

tjjdgumg  于 2023-01-08  发布在  其他
关注(0)|答案(2)|浏览(149)

我试图找到一种方法来可视化或计算一个表,该表显示增长或百分比变化为正或负的幂bi。有没有一种快速的方法来显示它的视觉?使用Excel将很容易,例如,单元格引用,但我如何在幂BI上演示这一点。
从SQL Server输入的原始数据记录如下:
表:表1列:MONTH(整数)、CustomerID(整数)、CustomerName(文本)、Sales Rep(文本)、销售总额(小数)、月份名称(文本)
Month最初是从SQL Server中提取的一个日期部分值。我无法在Power BI中简单地显示月份名称,所以我创建了一个新字段,其中包含月份名称及其相应的数字日期部分。
我希望显示以下内容:
筛选条件:销售代表

Months    total   %  difference MoM growth
Jan        $
Feb        $
Mar       ...
...       ...

enter image description here

7gcisfzg

7gcisfzg1#

有几件事你需要做。
1.你需要有实际的日期,而不是名字。你最好的办法是实际创建一个日期表。微软有一些关于如何做到这一点的好信息。(见Model Data Tables on Microsoft learn
1.然后,您可以使用许多时间智能函数来获取先验值以进行计算。(参见time-intelligence-functions-dax on Microsoft Learn .过滤先验值。

CALCULATE(SUM(sales[SalesAmount]),  PREVIOUSMONTH('DateTime'[DateKey])) - SUM(sales[SalesAmount])

例如,将为您提供与上个月不同的值。

lymgl2op

lymgl2op2#

您的计算有点棘手,因为PowerBI主要处理表格,不像Excel那样有“上一行”的概念。
但是使用DAX变量可以将计算分解为易于理解的步骤:

% difference MOM growth = 
VAR this_month = 
    MAX(MyTable[MONTH])
VAR this_total = 
    CALCULATE(
        MIN(MyTable[total]),
        MyTable[MONTH] = this_month
    )
VAR prev_month = 
    CALCULATE(
        MAX(MyTable[MONTH]),
        ALL(MyTable),
        MyTable[MONTH] < this_month
    )
VAR prev_total =
    CALCULATE(
        MIN(MyTable[total]),
        ALL(MyTable),
        MyTable[MONTH] = prev_month
    )
RETURN
    DIVIDE(this_total - prev_total, prev_total)

将结果度量格式化为 Percentage 后,您将得到所需的结果:

相关问题