如何用DAX计算Power BI中各地区达标占比(非总计占比)
实现各地区达标占比的DAX方案
直接编写以下度量值即可实现按地区计算达标(Yes)占该地区总记录数的比例:
地区达标占比 = DIVIDE( -- 计算当前地区的达标记录数 CALCULATE(COUNTROWS('PTL'), 'PTL'[Over 20 days] = "Yes"), -- 计算当前地区的总记录数(清除达标列的筛选,保留地区筛选) CALCULATE(COUNTROWS('PTL'), ALLSELECTED('PTL'[Over 20 days])), -- 除数为0时返回0,避免显示错误 0 )
关键逻辑说明
CALCULATE(COUNTROWS('PTL'), 'PTL'[Over 20 days] = "Yes"):统计当前筛选下(即当前地区)标记为"Yes"的记录数量。CALCULATE(COUNTROWS('PTL'), ALLSELECTED('PTL'[Over 20 days])):通过ALLSELECTED清除Over 20 days列的筛选,保留地区的筛选上下文,从而得到当前地区的总记录数。DIVIDE函数用于安全除法,第三个参数指定当总记录数为0时返回0,避免出现错误值。
使用方式
将这个度量值添加到Power BI的视觉对象中,搭配Place列作为分组维度,即可展示每个地区自身的达标占比,而非全局总计占比。
内容的提问来源于stack exchange,提问作者Dom




