PowerBI如何编写度量值按活动统计去重邮件的打开/点击量
PowerBI 邮件营销事件去重计数问题
问题背景
我是PowerBI新手,希望基于导出的邮件营销数据统计打开、点击相关指标,原始数据结构如下:
| Campaign Name | Email Address | Event Type | |:---------------: |:---------------------:| :--------: | | Test Campaign | test@example.com | Open | | Test Campaign | test@example.com | Open | | Test Campaign | test123@example.com | Open | | Test Campaign 2 | test@example.com | Open | | Test Campaign 2 | test@example.com | Open | | Test Campaign 2 | test1234@example.com | Open | | Test Campaign 2 | test@example.com | Clicked | | Test Campaign 2 | test@example.com | Clicked |
统计规则:
- 按
Campaign Name(活动名称)维度汇总各事件类型的计数 - 同一邮箱地址触发的同类型事件(例如用户多次打开邮件)仅计数1次
- 数据集包含多个不同活动名称
期望实现的汇总效果:
| Campaign Name | Open | Click |
|---|---|---|
| Test Campaign | 2 | 0 |
| Test Campaign 2 | 2 | 1 |
目前编写的点击量度量值无法按活动名称正确汇总,现有错误公式如下:
Clicks = Calculate(DistinctCount('table'[column]),'table2 for event type'[event type] = "click"))
可行解决方案
你写的公式存在三个问题:
- 末尾多了一个右括号,存在语法错误
- 引用的字段不明确,
'table'[column]没有指定为邮箱地址字段 - 额外使用独立的事件类型表但未配置正确的表间关系,导致筛选上下文不生效
不需要额外创建事件类型维度表,直接基于原始事实表写度量值即可,自动适配行上的活动名称筛选:
打开数度量值
Open_Cnt = CALCULATE( DISTINCTCOUNT('邮件数据表'[Email Address]), '邮件数据表'[Event Type] = "Open" )
点击数度量值
Click_Cnt = CALCULATE( DISTINCTCOUNT('邮件数据表'[Email Address]), '邮件数据表'[Event Type] = "Clicked" )
注意:将公式里的
'邮件数据表'替换为你实际导入的PowerBI表名即可。
逻辑说明
- 度量值会自动继承可视化对象行标签的
Campaign Name筛选条件,按活动单独计算数值 DISTINCTCOUNT对筛选范围内的邮箱地址做去重计数,正好满足同一用户多次触发同事件只计1次的要求- 直接在CALCULATE内写入事件类型筛选条件,避免跨表筛选失效问题
如果确实需要使用独立的事件类型维度表,先将维度表的Event Type字段和事实表的同名字段建立一对多、维度表筛选事实表的关系,再使用上述逻辑编写度量值即可。
内容的提问来源于stack exchange,提问作者ands8810
相关产品推荐
相关产品推荐

