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

如何用Power BI新版卡片图按周/月/季统计唯一ID数量?

基于自定义周数统计时段唯一ID数量的实现方案

完全可以基于你创建的UpdatedAtWeek分组统计对应时段的唯一ID数量,以下是具体实现步骤:

1. 先创建基础度量值

先做一个通用的唯一ID计数度量值,后续复用:

总唯一ID数 = DISTINCTCOUNT('conversations'[id])

2. 各固定时段的度量值(上周/上月/上季度/上年)

上周唯一ID数

考虑跨年周的情况,用DAX计算目标周和年份:

上周唯一ID数 = 
VAR 当前年份 = YEAR(TODAY())
VAR 当前周数 = WEEKNUM(TODAY() + 1) + IF(WEEKDAY(DATE(当前年份,1,1))=7, -1, 0)
VAR 目标周数 = 当前周数 - 1
VAR 目标年份 = IF(目标周数 < 1, 当前年份 - 1, 当前年份)
VAR 跨年调整周数 = IF(目标周数 < 1, 52 + 目标周数, 目标周数)
RETURN
CALCULATE(
    [总唯一ID数],
    YEAR('conversations'[updatedAt]) = 目标年份,
    [UpdatedAtWeek] = 跨年调整周数
)

上月唯一ID数

直接通过年月筛选:

上月唯一ID数 = 
VAR 当前年月 = EOMONTH(TODAY(), -1)
RETURN
CALCULATE(
    [总唯一ID数],
    YEAR('conversations'[updatedAt]) = YEAR(当前年月),
    MONTH('conversations'[updatedAt]) = MONTH(当前年月)
)

上季度唯一ID数

处理跨年度季度的情况:

上季度唯一ID数 = 
VAR 当前季度 = QUARTER(TODAY())
VAR 当前年份 = YEAR(TODAY())
VAR 目标季度 = 当前季度 - 1
VAR 目标年份 = IF(目标季度 < 1, 当前年份 - 1, 当前年份)
VAR 目标季度调整 = IF(目标季度 < 1, 4, 目标季度)
RETURN
CALCULATE(
    [总唯一ID数],
    YEAR('conversations'[updatedAt]) = 目标年份,
    QUARTER('conversations'[updatedAt]) = 目标季度调整
)

上年唯一ID数

直接筛选上一年的记录:

上年唯一ID数 = 
VAR 目标年份 = YEAR(TODAY()) - 1
RETURN
CALCULATE(
    [总唯一ID数],
    YEAR('conversations'[updatedAt]) = 目标年份
)

3. 支持可选时段的交互配置

如果要让用户从全表中自由选择任意周/月/季/年,按以下步骤操作:

  • 新建日期表:在「建模」选项卡点击「新建表」,输入日期表 = CALENDARAUTO(),然后把日期表[Date]和conversations[updatedAt]建立关系(关联日期部分)
  • 在日期表中添加和你一致的周数字段:
日期表周数 = WEEKNUM('日期表'[Date] + 1) + IF(WEEKDAY(DATE(YEAR('日期表'[Date]),1,1))=7, -1, 0)
  • 创建通用度量值:选中时段唯一ID数 = DISTINCTCOUNT('conversations'[id])
  • 添加切片器:选择日期表的「年份」「季度」「月份」或「日期表周数」字段,用户选择后,卡片图自动显示对应时段的唯一ID数

4. 新版卡片图设置

  • 把对应的度量值(比如上周唯一ID数)拖到卡片图的「Data」字段栏
  • 若要显示时段提示,把时段名称(如“上周”)或日期范围字段拖到「Tooltips」栏,方便查看

内容的提问来源于stack exchange,提问作者lugger1

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 22:19:57