Power BI中DAX百分位数度量值显示空白问题求助
问题分析与解决方案
核心问题
你的分位数度量值(90th/75th Percentile RevPAR)返回空白,根源在于筛选条件过于严格:在PERCENTILEX.INC的FILTER参数中,你将Revenue、translated_Address这类高基数/唯一值字段与SELECTEDVALUE匹配,导致筛选后的数据量极少(甚至为0),无法满足分位数计算对数据样本量的要求。
另外,你的90th Percentile Revenue看似正常返回数值,实际是因为[90th Percentile RevPAR]为空白时,Sheet1[Revpar] >= BLANK()会包含所有非空白的RevPAR行,这并非你预期的逻辑。
修复后的DAX代码
1. 90th Percentile RevPAR
保留报表当前的筛选上下文(比如切片器、行/列维度的筛选),去掉不必要的唯一值/数值字段筛选:
90th Percentile RevPAR = PERCENTILEX.INC( ALLSELECTED(Sheet1), -- 获取当前筛选下的所有有效行 Sheet1[Revpar], 0.9 )
如果需要仅保留特定维度的筛选(比如只按Bedrooms、Custom_area等维度分组计算分位数),可以更精准地控制筛选范围:
90th Percentile RevPAR = PERCENTILEX.INC( CALCULATETABLE( Sheet1, ALLSELECTED(Sheet1[Bedrooms]), ALLSELECTED(Sheet1[Custom_area]), ALLSELECTED(Sheet1[Active Nights]), ALLSELECTED(Sheet1[Beachfront]), ALLSELECTED(Sheet1[Comp Name]), ALLSELECTED(Sheet1[Days_sold]), ALLSELECTED(Sheet1[Dynamic Pricing]), ALLSELECTED(Sheet1[Professionally Managed]) ), Sheet1[Revpar], 0.9 )
2. 75th Percentile RevPAR
同理修改75分位数的度量值:
75th Percentile RevPAR = PERCENTILEX.INC( ALLSELECTED(Sheet1), Sheet1[Revpar], 0.75 )
3. 75th Percentile Revenue
当分位数度量值正常返回数值后,这个度量值即可正常工作:
75th Percentile Revenue = CALCULATE( AVERAGE(Sheet1[Revenue]), FILTER(Sheet1, Sheet1[Revpar] >= [75th Percentile RevPAR] && Sheet1[Revpar] < [90th Percentile RevPAR]) )
验证逻辑
修改后,先确认90th Percentile RevPAR和75th Percentile RevPAR能返回合理数值,再检查75th Percentile Revenue的计算结果是否符合预期。
内容的提问来源于stack exchange,提问作者shubham tiwari
相关产品推荐
相关产品推荐

