突出显示最大最小值
在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木小桼