如何在Power BI中使用IF创建度量值 计算自有与竞品的价格差
自有产品与竞品价格差的DAX实现
核心使用CALCULATE()函数调整筛选上下文,提取自有产品的基准价格后做差值计算即可,示例逻辑如下:
- 先创建自有产品基准价度量值,固定筛选出自有品牌的价格(可根据需求替换聚合逻辑为SUM/MAX等):
自有产品基准价 = CALCULATE(AVERAGE('你的表名'[价格列名]), '你的表名'[Brand] = "这里替换成你自有品牌的实际名称")
- 再创建价格差度量值,直接用当前上下文的产品价格减去基准价即可:
竞品价格差 = SELECTEDVALUE('你的表名'[价格列名]) - [自有产品基准价]
如果需要同品类、同规格等维度匹配对比,在CALCULATE()的筛选参数里追加对应维度的筛选条件即可。
IF创建度量值必须加聚合函数的原因
DAX度量值运行在行上下文/筛选上下文的环境中,无法直接引用未聚合的原始列值:你直接写列名时,DAX无法判断你需要取该列的哪一行数据,必须通过聚合函数(常用SELECTEDVALUE()、SUM()、AVERAGE()等)将列值转换为单个标量值后,才能放入IF()的判断逻辑或返回值中使用。
错误写法示例(直接引用列):错误度量 = IF('表'[Price] > 100, "高价", "低价")
正确写法示例(加聚合):正确度量 = IF(SELECTEDVALUE('表'[Price]) > 100, "高价", "低价")
内容的提问来源于stack exchange,提问作者Mrinal Sharma
相关产品推荐
相关产品推荐

