基于总价范围、自定义天数参数的Power BI DAX平均计算度量值开发求助
可直接实现需求的DAX度量值
直接使用如下度量值即可匹配动态筛选、天数替换、平均值计算的全流程逻辑,复用已经写好的Apps_in_scope范围判断逻辑即可,无需重构原有判断代码:
动态调整后平均天数 = -- 获取用户选择的自定义天数参数值 VAR custom_selected_days = SELECTEDVALUE('自定义天数参数表'[自定义天数列]) -- 逐行遍历所有有效交易记录,计算调整后的天数总和 VAR sum_of_adjusted_days = SUMX( -- 保留所有用户筛选上下文,避免丢失统计范围 ALLSELECTED(Table1[App_Num], Table1[Days], Table1[Price]), -- 逐行判断所属应用是否在选定的总价值范围内 VAR app_is_in_scope = [Apps_in_scope] RETURN -- 范围内的交易替换为自定义天数,范围外保留原始天数 IF(app_is_in_scope = 1, custom_selected_days, Table1[Days]) ) -- 计算总交易笔数,和遍历范围保持一致 VAR total_valid_transactions = COUNTROWS( ALLSELECTED(Table1[App_Num], Table1[Days], Table1[Price]) ) RETURN DIVIDE(sum_of_adjusted_days, total_valid_transactions, 0)
逻辑匹配说明
- 逐行迭代的机制会精准匹配替换规则:落在总价值范围内的应用,其名下所有交易都会统一替换为自定义天数,比如测试场景中A1的2笔交易、A2的1笔交易,都会按15计值,合计贡献45到总天数中。
- 范围外的应用完全保留原始交易天数,比如A3的两笔12、A4的20和21,不会被修改。
- 最终计算结果和预期完全一致:调整后天数总和为110,除以7笔总交易,得到15.714的平均值,可直接绑定到卡片视觉对象上展示。
注意事项
- 原有
Apps_in_scope度量值无需修改,SUMX逐行迭代时会自动把当前行的App_Num作为上下文,让原判断逻辑正确识别当前行所属应用是否在价值范围内。 - 代码中
自定义天数参数表和自定义天数列需要替换为实际搭建的参数表名称,避免引用错误。
内容的提问来源于stack exchange,提问作者Student of the Digital World
相关产品推荐
相关产品推荐

