例如,我们有一张表含有分层结构的字段
我们需要当我们筛选“洲“时,折线图显示该“洲”下面“地区”的随时间趋势,当筛选“地区”时,折线图显示该“地区”下面的“国家”的随时间变化的趋势。。。。
1.创建表
表_层次结构 = union(VALUES(sheet1[洲]),VALUES(sheet1[地区]),VALUES(sheet1[国家]),VALUES(sheet1[产品名]))
这个表就是 这4列去重过后连接起来的一列
2.编写度量值
DAX中用方法 :values() 返回由一列构成的一个表,该表包含来自指定列的非重复值。换言之,重复值将被删除,仅返回唯一值。
isfiltered :当直接筛选columnName 时,返回TRUE。如果列没有筛选器,或由于正在筛选同一个表或相关表中的不同列而发生筛选,则函数返回 FALSE
度量值DAX:
折线图下钻 =
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(‘表-层次结构’[新维度]))
)
)
)
3.可视化展示
然后创建 “洲”、“地区”、“国家”的切片器,就可以动态的钻取折线图了。