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

Power BI矩阵中市场份额平方总计错误,求HHI指数计算修正

解决Power BI中赫芬达尔-赫希曼指数(HHI)计算的总计错误问题

你需要按出版商计算赫芬达尔-赫希曼指数(即所有出版商市场份额的平方和),目前已创建两个度量值:Market Share(市场份额)的计算和总计都正确,但Market Share Square(市场份额平方)仅单个出版商计算正确,总体总计错误。为便于解读,计算时保留了*100的处理。

现有度量值DAX代码

市场份额(Market Share)

Market Share = VAR Volume =
SUM('Sales - Global'[Sales])

VAR AllVolume =
CALCULATE(SUM('Sales - Global'[Sales]), ALL('Publisher'))

RETURN
DIVIDE(Volume, AllVolume)

市场份额平方(Market Share Square)

Market Share Square = 
VAR Volume = SUM('Sales - Global'[Sales])
VAR AllVolume = CALCULATE(SUM('Sales - Global'[Sales]), ALL('Publisher'[Publisher]))
VAR MarketShare = DIVIDE(Volume, AllVolume)*100
RETURN
    MarketShare * MarketShare

问题原因

当前Market Share Square在总计行时,会直接计算整个市场的份额平方(即100²=10000),而非对各出版商的市场份额平方值求和,这不符合HHI的计算逻辑。

解决方案

使用SUMX函数迭代每个出版商,单独计算其市场份额平方后再求和,确保总计行返回正确的HHI值。

修正后的市场份额平方度量值

Market Share Square = 
SUMX(
    VALUES('Publisher'[Publisher]),
    VAR Volume = SUM('Sales - Global'[Sales])
    VAR AllVolume = CALCULATE(SUM('Sales - Global'[Sales]), ALL('Publisher'))
    VAR MarketShare = DIVIDE(Volume, AllVolume)*100
    RETURN MarketShare * MarketShare
)

直接计算HHI指数的度量值(可选)

若无需单独查看单个出版商的市场份额平方,可直接创建HHI指数度量值:

HHI Index = 
SUMX(
    VALUES('Publisher'[Publisher]),
    VAR Volume = SUM('Sales - Global'[Sales])
    VAR AllVolume = CALCULATE(SUM('Sales - Global'[Sales]), ALL('Publisher'))
    VAR MarketShare = DIVIDE(Volume, AllVolume)*100
    RETURN MarketShare * MarketShare
)

逻辑说明

SUMX会遍历Publisher表中的每个出版商,为每个出版商单独计算市场份额平方,最后将所有结果累加。这样单个出版商行显示自身的市场份额平方,总计行则显示所有出版商的平方和(即HHI指数),完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 09:15:11