5.14 PowerBI系列之DAX函数专题-DAX函数使切片器可筛选多列数据

5.14 PowerBI系列之DAX函数专题-DAX函数使切片器可筛选多列数据/度量值间接筛选数据

一、使切片器可筛选多列数据

需求以及思路描述

需求:把多个列标题当作切片器筛选
思路:
1.创建一个辅助表将列转成行;
5.14 PowerBI系列之DAX函数专题-DAX函数使切片器可筛选多列数据_第1张图片

2.写度量值用于判断当期选择的列和抓取对应的数据;
3.将度量值应用到展示图表的筛选器当中

实现

产品大类筛选 = switch(true(),
										selectedvalue('产品大类辅助表'[产品类型])="配件",
										countrows(calculatetable('order',filter('order','order'[配件]=“Y”))),
										selectedvalue('产品大类辅助表'[产品类型])="服装",
										countrows(calculatetable('order',filter('order','order'[服装]=“Y”))),										
										selectedvalue('产品大类辅助表'[产品类型])="自行车",
										countrows(calculatetable('order',filter('order','order'[自行车]=“Y”))),	
										1
)				

将度量值‘产品大类筛选’>0作为对应视觉对象的展示条件。
需要注意的是,是否大于0是是否展现数据的条件,但是展现哪些数据,实际上是在产品大类筛选中calculatetable函数里计算好的。
通过使用这个度量值,将呈现的逻辑与特定的视觉对象建立了关系。

二、用度量值间接筛选数据

需求以及思路描述

5.14 PowerBI系列之DAX函数专题-DAX函数使切片器可筛选多列数据_第2张图片
需求:
如图所示表中,订单金额区间为度量值。

订单金额区间=
var v_amt = sum('Order'[订单金额])
return switch(true(),
				v_amt<=5000,
				"小于等于5千",
				v_amt>5000&&v_amt<10000,
				"大于5千,小于1万",
				v_amt>=10000,
				"大于等于1万")

希望通过这个度量值对视觉对象进行筛选。
思路:
1.新建一个辅助表,值为度量值的各种可能性,作为切片器的取值表;
2.新建一个度量值,计算订单金额区间出现与否(Y/N),建立起与原表,订单金额区间与辅助表之间的关系;
3.将新建的度量值的Y取值作为视觉对象的筛选条件。

实现

1.新建辅助表-金额区间表:
5.14 PowerBI系列之DAX函数专题-DAX函数使切片器可筛选多列数据_第3张图片
2.新建度量值:

是否被筛选=
var v1 - valuese('金额区间表'[区间])
return if([订单金额区间] in v1,"Y","N")

你可能感兴趣的:(powerbi,算法)