Power BI计算新列:资源总产能减去分组使用时长求和
Power BI DAX 解决方案:资源产能与使用时长计算
1. 计算Table1的资源总产能(计算列)
由于Table1每行对应唯一资源,直接在Table1中新建计算列,将所有产能类型列求和:
总产能 = Table1[产能类型1] + Table1[产能类型2] + Table1[产能类型3] -- 替换为你的实际产能列名
若产能列数量较多,可通过SUMX简化(需统一列名规律,比如均以「产能」开头):
总产能 = SUMX(SELECTCOLUMNS(Table1, "产能1", [产能类型1], "产能2", [产能类型2], "产能3", [产能类型3]), [产能1])
2. 计算资源总使用时长(度量值)
在报表视图中新建度量值,统计当前筛选下某资源的所有使用时长总和:
资源总使用时长 = CALCULATE(SUM(Table2[使用时长]), ALLEXCEPT(Table2, Table2[资源]))
ALLEXCEPT会保留当前资源的筛选条件,忽略项目、工作类型等其他筛选,确保求和范围是该资源的全量使用数据。
3. 计算剩余产能(度量值)
新建度量值关联总产能与总使用时长,得到剩余可用产能:
剩余产能 = SELECTEDVALUE(Table1[总产能]) - [资源总使用时长]
注意:需确保Table1与Table2通过「资源」列建立一对一关系(Table1的资源为唯一值,Table2的资源为重复值),这样SELECTEDVALUE才能匹配到当前筛选资源对应的总产能。
4. 各工作类型使用时长展示
直接使用基础度量值工作类型使用时长 = SUM(Table2[使用时长]),在卡片/矩阵可视化中,将「资源」和「工作类型」拖入行/列字段,即可自动按分组展示各类型的使用时长。
关键提示
- 优先使用度量值而非计算列:仪表板的可视化需要动态响应筛选,度量值基于当前筛选上下文计算,比静态的计算列更适配需求。
- 跨表计算失败的核心原因:计算列基于行上下文,无法自动继承跨表筛选;度量值通过表间关系传递筛选条件,能实现动态跨表计算。
内容的提问来源于stack exchange,提问作者Michelle Foxen
相关产品推荐
相关产品推荐

