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

Power BI中如何统计归属多个服务类别的用户数量

Power BI 多服务使用用户数统计方案

场景说明

  • 现有事实表名为Supported,存储机构服务对象的服务使用记录,机构提供多类服务,单个用户在指定时间段内可使用1项或多项服务,例如序列号为102617的用户在2020年1月共使用社区服务、出版物服务2项服务。
  • 需求为:在支持日期范围等筛选器生效的前提下,统计不同服务使用数量对应的用户人数,例如使用1项服务的用户数、使用2项服务的用户数等。
  • 已尝试编写如下度量值:
Total = 
   SUMX(
      VALUES(Supported[SERIALNUMBER]), 
      CALCULATE(DISTINCTCOUNT(Supported[Service Type]))
   )

该度量值搭配SERIALNUMBER字段制作图表时,可正确展示单个用户的服务使用数量,可匹配“6人使用3项服务”的样例结果,但无法直接输出不同服务数对应的用户数统计值。

实现步骤

1. 编写单用户服务数计算的基础度量值

首先创建可在当前筛选上下文下,计算单个用户使用不同服务类型数量的基础度量值:

单用户服务使用数 = 
CALCULATE(
    DISTINCTCOUNT(Supported[Service Type]),
    ALLEXCEPT(Supported, Supported[SERIALNUMBER])
)

如果你的报表使用独立的日期维度表做日期筛选,度量值会自动继承切片器、页面级、视觉级的所有筛选条件,无需额外调整。

2. 准备服务数维度表(用于可视化分组)

新建一张不与Supported表建立关系的独立维度表,命名为服务数分组,仅包含1列服务数量,值填充为1、2、3……直到覆盖你业务场景中单用户可能使用的最大服务数量即可。

3. 编写分组统计用户数的核心度量值

基于基础度量值和维度表,编写最终统计用度量值:

对应服务数的用户数 = 
VAR 目标服务数 = SELECTEDVALUE('服务数分组'[服务数量])
RETURN
COUNTROWS(
    FILTER(
        VALUES(Supported[SERIALNUMBER]),
        [单用户服务使用数] = 目标服务数
    )
)

补充说明

  • 你之前编写的Total度量值本质是对所有用户的服务使用数求和,输出的是服务使用总人次;只有当视觉对象的筛选上下文落到单个SERIALNUMBER维度时,才会展示单个用户的服务数,本身没有按服务数分组计数的逻辑,因此无法直接得到分组用户数结果。
  • 如果不需要做分组可视化,仅需要统计使用2项及以上服务的多服务用户总数,可直接使用如下度量值,无需创建独立维度表:
多服务用户总数 = 
COUNTROWS(
    FILTER(
        VALUES(Supported[SERIALNUMBER]),
        [单用户服务使用数] >= 2
    )
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 01:39:19