8.16 PowerBI系列之DAX函数专题-客户购买商品关联度的分析

需求

8.16 PowerBI系列之DAX函数专题-客户购买商品关联度的分析_第1张图片
8.16 PowerBI系列之DAX函数专题-客户购买商品关联度的分析_第2张图片
8.16 PowerBI系列之DAX函数专题-客户购买商品关联度的分析_第3张图片

实现

1 客户数 = countrows(values(sales[customerkey]))
2 同时购买A和B的客户数 = 
var A_cust = values(sales[customerkey]) //
var b_cust = 
calculatetable(
	values(sales[customerkey]),
	usereletionship('product b'[productkey],sales[productkey]),//激活虚拟关系
	all('product')
) //由于productA的[productkey]作为视觉对象的行次,会形成影响productB的筛选的上下文,所以要去除这个字段上下文的影响
var AB_cust = intersect(a_cust,b_cust)
return calculate([客户数],AB_cust)
3 购买A的客户购买B的销售额 = 
var A_cust = values(sales[customerkey]) //获取当前行产品A对应的客户
var B_cust = calculatable(values(sales[customerkey],//获取切片器选择的产品B对应有购买行为的客户
userelationship('product B'[productkey],sales[productkey]),
all('poduct')
)
return calculate([购买B的销售额],A_cust,B_cust)  //计算购买产品A的客户中,购买了产品B的金额有多少
// return calculate([购买B的总销售额],intersect(A_cust,B_cust))
4 购买B的总销售额 = 
calculate([销售额]userelationship('product b'[productkey],sales[productkey]),
	all('product'))
5 关联度 = divide([同时购买A和B的客户数],[客户数])
 6 同时购买A和B的客户名称 = 
var A_cust = values(sales[customerkey]) //获取当前行产品A对应的客户
var B_cust = calculatable(values(sales[customerkey],//获取切片器选择的产品B对应有购买行为的客户
userelationship('product B'[productkey],sales[productkey]),
all('poduct')
)
var AB_cust = intersect(a_cust,b_cust)
//return concatenatex(AB_cust,[CustomerKey],"* ") //展示客户编码
var B_cust_names = filter(customer,customer[customerkey] in AB_cust) //获取到客户名称
return concatenatex(B_cust_names,[name],"*")

你可能感兴趣的:(powerbi)