突出显示最大最小值

在PowerBI折线图有介绍怎么利用AI功能在折线图上查找异常值,但是通常业务人员定义的异常值可能会有不同,比如当年销售额最大最小值需要特殊标记。

我们来分析下这个需求,要标记每年的最大和最小值所在月份:

  • • 则首先需要一张表,包含年份、月份及对应的销售额

  • • 然后求出最大和最小的销售额

  • • 分别赋予最大和最小销售额不同的颜色来区分

MaxMinColor = 
VAR Sales = [Sales Amt]
VAR YearMoth = 
    ALLSELECTED(dimDate[Month], dimDate[MonthNo])
VAR MaxSales =
    MAXX( YearMoth, [Sales Amt] )
VAR MinSales =
    MINX( YearMoth, [Sales Amt] )
VAR Result = 
    SWITCH(
        TRUE(),
        Sales=MaxSales, "Green",
        Sales=MinSales, "Red",
        "blue"
    )
RETURN
    Result

但这还有一个小问题,就是我们并不能直接给折线图上的数据使用度量值来设置颜色,所以我们需要先切换为其他图表,比如柱状图。

接下来,我们再变一下需求,比如异常值的判定是比上一年的最大值大或比上一年的最小值小。具体写法上可能存在差异,但思路还是一样的,只不过这里日期限定为了是上一年而不是当年。

MaxSales.PY = 
VAR LastYear = SELECTEDVALUE( dimDate[Year] )
VAR LastYearSales = 
    CALCULATETABLE( 
        ADDCOLUMNS( 
            ALLSELECTED( 'dimDate'[Month],  'dimDate'[MonthNo] ), 
            "@sales", [Sales Amt] 
        ), 
        'dimDate'[Year] = LastYear - 1
    )
VAR MaxSales = MAXX(LastYearSales, [@sales] )
return MaxSales

可以看出求出来的确实是上一年的最大的销售额,同样的方法继续完善即可

MaxMinSales.PY.Color =
VAR Sales = [Sales Amt]
VAR LastYear = SELECTEDVALUE( dimDate[Year] )
VAR LastYearSales = 
    CALCULATETABLE( 
        ADDCOLUMNS( 
            ALLSELECTED( 'dimDate'[Month],  'dimDate'[MonthNo] ), 
            "@sales", [Sales Amt] 
        ), 
        'dimDate'[Year] = LastYear - 1
    )
VAR MaxSales = MAXX( LastYearSales, [@sales] )
VAR MinSales = MINX( LastYearSales, [@sales] )
VAR Result = 
    SWITCH(
        TRUE(),
        Sales >= MaxSales, "Green",
        Sales <= MinSales, "Red"
    )

return 
    Result

同样的套路可以应用到其他地方,这就需要我们根据实际的业务需求来套用了。


本篇文章来源于微信公众号: PowerBI木小桼

类似文章

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注