You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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 NameOpenClick
Test Campaign20
Test Campaign 221

目前编写的点击量度量值无法按活动名称正确汇总,现有错误公式如下:

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 19:18:22