PowerBI按月份统计首次出现邮件主题数 排除跨月重复计数
PowerBI 月度新增邮件主题统计实现方案
核心实现目标:按自然月统计首次出现的邮件主题数量,历史月份已出现的同主题当月不重复计数,匹配新增邮件线程核算需求。
前置配置:修正月份字段排序(必做,避免统计错误)
现有Month Year received为文本型字段(如Jan 21、Feb 21),默认按字母排序会打乱时间顺序,导致历史月份判断逻辑出错,先做如下配置:
- 新建计算列,生成每个接收日期对应的月份起始日期,用于时间先后判断:
Month Start Date = EOMONTH([Date Received], -1) + 1 - 在字段面板选中
Month Year received字段,顶部菜单栏切到「列工具」选项卡,找到「按列排序」按钮,选择刚才新建的Month Start Date字段,完成排序规则修正。
核心度量值编写
新建以下度量值,直接替换公式里的你的数据表名为你实际导入PowerBI的数据集名称即可:
月度新增邮件线程数 = VAR 当前统计月份的起始日期 = MAX('你的数据表名'[Month Start Date]) // 取当前筛选范围内,早于当前统计月份的所有历史月份出现过的邮件主题 VAR 历史已出现主题 = CALCULATETABLE( VALUES('你的数据表名'[Email Subject]), FILTER( ALLSELECTED('你的数据表名'[Month Start Date]), '你的数据表名'[Month Start Date] < 当前统计月份的起始日期 ) ) // 计算当月出现、且未在历史主题列表中出现过的主题数量 VAR 统计结果 = COUNTROWS( EXCEPT( VALUES('你的数据表名'[Email Subject]), 历史已出现主题 ) ) RETURN 统计结果
该度量值自动适配切片器筛选、总计行计算逻辑,不需要额外编写总计专用公式。
结果验证(匹配样例数据预期)
在报表页添加表格/矩阵可视化组件:
- 行维度拖入
Month Year received字段 - 值维度拖入刚才新建的
月度新增邮件线程数度量值
最终输出结果和预期完全一致: - Jan 21:计数为2,对应首次出现的Red、Blue两个主题
- Feb 21:计数为1,仅统计首次出现的Green,1月已出现的Red自动排除
- 总计行:计数为3,对应全量时间范围内3个唯一主题
可选补充:全量唯一主题总计数
如果需要单独用卡片展示全周期不重复邮件主题总数,可新建简单度量值:
全量唯一邮件线程数 = DISTINCTCOUNT('你的数据表名'[Email Subject])
该度量值在样例数据下返回结果为3,符合需求。
内容的提问来源于stack exchange,提问作者tg_12
相关产品推荐
相关产品推荐

