alt

PowerBI中,通常我们会使用折线图来展示数据的趋势情况。但是当数据类别过多的时候,需求也在进一步深入,往往还需要我们将用户关注的重要节点标注出来,例如:最大值和最小值。

很早之前,白茶曾经写过一篇关于《折线图阈限设置》的文章,因为当时PowerBI软件版本的原因,折线图不支持Fx设置动态颜色。后续随着软件版本的迭代和计算组功能的推出,折线图最大值和最小值问题,也有了新的解决方案。

案例数据:

alt

将其导入到PowerBI中,通过以下代码,添加日期表。

Dim_Date =
GENERATE (
    CALENDAR ( MIN ( 'Fact_Sales'[DATE] ), MAX ( 'Fact_Sales'[DATE] ) ),
    VAR DA = [Date]
    VAR YEAR =
        YEAR ( DA )
    VAR QUARTER =
        "Q" & FORMAT ( DA, "Q" )
    VAR MONTE =
        FORMAT ( DA, "MM" )
    VAR DAY =
        DAY ( DA )
    RETURN
        ROW (
            "Year", YEAR,
            "Quarter", QUARTER,
            "Month", MONTE,
            "DayOfMonth", DAY,
            "YearQuarter", YEAR & QUARTER,
            "YearMonth", YEAR & MONTE,
            "YearMonthCount",
                YEAR * 12 + MONTE
        )
)

模型关系如下:

alt

添加基础度量值:

01 基础度量值 =
SUM ( Fact_Sales[Quantity] )

将其拖放到折线图中展示如下:

alt

到这里,我们的准备工作完成。

解析思路:

折线图我们需要将最大值最小值标记出来,那么我们需要求出当前上下文的最大值最小值,才能进行后续的操作。

添加如下代码,求出最大值最小值。

最大值:

02 数据最大值 =
MAXX (
    ALLSELECTED ( 'Dim_Date'[YearMonth], Dim_Date[YearMonthCount] ),
    [01 基础度量值]
)

最小值:

03 数据最小值 =
MINX (
    ALLSELECTED ( 'Dim_Date'[YearMonth], Dim_Date[YearMonthCount] ),
    [01 基础度量值]
)

展示效果如下:

alt

注释:

1.ALLSELECTED的作用,是为了根据筛选上下文,获取相对的最大值和最小值;

2.ALLSELECTED内部白茶使用了2个参数,是因为白茶使用了按列排序功能,需要将排序依据的筛选效果也清除掉。

有了最大值和最小值,我们就可以通过度量值,来对颜色进行标注了。

03 阈值配色 = 
IF (
    [01 基础度量值] = [02 数据最大值],
    "#FF0000",
    IF ( [01 基础度量值] = [03 数据最小值], "#FFC000", "#000000" )
)

展示效果如下:

alt

可以看到最大值最小值的颜色已经标注出来了。


是不是以为到这里就结束了? NO!并没有!

除了可以通过Fx来标注折线图的最大值和最小值以外,我们还可以通过计算组功能,对此进行补充,例如:添加最大值最小值的文本信息。

在外部工作区,打开Tabular。

alt

选择创建计算组。

alt

添加计算项。

alt

在公式栏输入如下代码:

SELECTEDMEASURE()

将公式栏切换到格式设置页面,添加如下代码:

IF (
    [01 基础度量值] = [02 数据最大值],
    "最大值:" & SELECTEDMEASUREFORMATSTRING (),
    IF (
        [01 基础度量值] = [03 数据最小值],
        "最小值:" & SELECTEDMEASUREFORMATSTRING (),
        SELECTEDMEASUREFORMATSTRING ()
    )
)

alt

选择保存,将其应用到PowerBI中,最终展示效果如下:

alt

解释说明:

1.SELECTEDMEASURE可以根据当前上下文,获取到应用的度量值[01 基础度量值];

2.SELECTEDMEASUREFORMATSTRING的作用,是为了正常输出原度量值的格式,即输出[01 基础度量值]的原有格式;

3.不能直接使用[01 基础度量值]作为计算组格式输出结果,会由于数据格式问题报错;

4.计算组可以应用到PowerBI文件中,发布到云端或本地报表服务器依然生效。

alt alt

这里是白茶,一个PowerBI的初学者。 alt