如何基于NameVIN匹配计算可归因于APP的销售数量(DAX问题)
解决可归因于APP的销售数量统计问题
第一步:修正NameVIN列的DAX错误
首先排查出Sales表的NameVIN列存在语法错误——误用了逻辑或运算符||,应该使用文本连接符&才能正确拼接姓名与VIN。
ConsumerFunnelTime表的NameVIN(原有代码正确,保留)
NameVIN = IF( ConsumerFunnelTime[CustomerFirstName] <> BLANK() && ConsumerFunnelTime[CustomerLastName] <> BLANK(), ConsumerFunnelTime[CustomerFirstName] & ConsumerFunnelTime[CustomerLastName] & ConsumerFunnelTime[VIN], BLANK() )
Sales表修正后的NameVIN
NameVIN = IF( 'Sales'[c_Customer1FirstName] <> BLANK() && 'Sales'[c_Customer1LastName] <> BLANK(), 'Sales'[c_Customer1FirstName] & 'Sales'[c_Customer1LastName] & 'Sales'[v_VIN], BLANK() )
第二步:正确的DAX统计度量值
以下两种方式均可实现统计需求,根据数据量选择:
方式一:FILTER+COUNTROWS(直观易懂,适合小数据集)
APP归因销售数量 = VAR AppUserNames = VALUES(ConsumerFunnelTime[NameVIN]) RETURN COUNTROWS( FILTER( 'Sales', 'Sales'[NameVIN] IN AppUserNames && 'Sales'[NameVIN] <> BLANK() ) ) + 0
方式二:CALCULATE+TREATAS(性能更优,适合大数据集)
APP归因销售数量 = VAR AppUserNames = VALUES(ConsumerFunnelTime[NameVIN]) RETURN CALCULATE( COUNTROWS('Sales'), TREATAS(AppUserNames, 'Sales'[NameVIN]), 'Sales'[NameVIN] <> BLANK() ) + 0
原有代码失败原因说明
- Sales表NameVIN列的
||运算符导致字符串拼接错误,无法与ConsumerFunnelTime表的NameVIN匹配; - 第一段统计DAX错误地统计了漏斗表行数,而非销售表的匹配行数;
- 第二段DAX直接将列赋值给变量,DAX无法识别单一行值,触发语法错误。
内容的提问来源于stack exchange,提问作者talkingtoducks
相关产品推荐
相关产品推荐

