技巧分享 | 折线图的层级下钻


工作中我们经常会遇到一些较难需求。那么今天来和大家分享一个关于折线图层级下钻的案例。首先我们来看效果图:

当我们点击筛选器—“洲”下的“AP”时,折线图会展示AP洲对应其不同地区的值。以此类推,当我们点击筛选器—地区下的“CPA”时,折线图会展示CPA地区对应其不同国家的折线,当我们点击筛选器—国家下的“KR”时,会展现KR国家对应其不同产品的折线。

案例思考点:

  1. 折线图的横轴永远是时间季度。
  2. 筛选器的关系是层级关系。

一、数据准备

file

以上数据为不同季度下洲地区和国家对应的产品销量以及金额。

二、思考过程

1.创建包含洲、地区、国家和产品名的表。

表-层次结构=UNION(VALUES(sheet1[洲]),VALUES(sheet1[地区]),VALUES('sheet1'[国家]),VALUES('sheet1'[产品名]))

file

2.编写度量值,让结果值正确显示。

VALUES

VALUES()

返回由一列构成的一个表,该表包含来自指定列的非重复值。换言之,重复值将被删除,仅返回唯一值。

ISFILTERED

ISFILTERED()

当直接筛选 columnName 时,返回 TRUE。如果列没有筛选器,或由于正在筛选同一个表或相关表中的不同列而发生筛选,则函数返回 FALSE。

折线图下钻 =
var a=CALCULATE(sum('sheet1'[金额]),'sheet1'[产品名] in VALUES('表-层次结构'[新维度]))//产品的金额
var b=CALCULATE(sum('sheet1'[金额]),'sheet1'[地区]in VALUES('表-层次结构'[新维度]))//地区的金额
var c=CALCULATE(sum('sheet1'[金额]),'sheet1'[国家] in VALUES('表-层次结构'[新维度]))//国家的金额
RETURN
IF(
ISFILTERED(sheet1[国家]),//筛选器是否选择国家
a,
IF(
ISFILTERED(sheet1[地区]),//筛选器是否选择地区
c,
IF(
ISFILTERED(sheet1[洲]),//筛选器是否选择洲
b,
CALCULATE(sum('sheet1'[金额]),'sheet1'[洲] in VALUES('表-层次结构'[新维度]))//如果没有筛选的时候,默认展示洲的金额值
)
)
)

三、可视化展示

file

我们把时间放在折线图的轴上,把表-层次结构下的新维度列放在图例,把编写的度量值:折线图下钻放在值中,就可以得到我们想要的结果了。
file

方法不唯一,欢迎大家提供不同的思路。

  • PowerPivot工坊原创文章,转载请注明出处!

    如果您想深入学习微软Power BI,欢迎登录网易云课堂试听学习我们的“从Excel到Power BI数据分析可视化”系列课程。或者关注我们的公众号(PowerPivot工坊)后猛戳”在线学习”。


长按下方二维码关注“Power Pivot工坊”获取更多微软Power BI、PowerPivot相关文章、资讯,欢迎小伙伴儿们转发分享~

Power Pivot工坊