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

DAX度量值除法计算出现异常值问题求助

解决Power BI度量值异常的问题

嘿,我完全懂你卡了6小时有多崩溃,咱们直接说问题出在哪以及怎么修复:

问题根源

你的BuyingPrice度量值在**行上下文(比如SUMX迭代、图表按Date分组)**里没法正确获取全局筛选后的最早日期收盘价。原代码里的FILTER(Stonks, Stonks[Date]=x)会被当前行/分组的Date筛选影响——比如图表每个数据点对应单个Date时,Stonks表已经被自动筛成该日期的行,这时候如果当前Date不是最早日期,FILTER会返回空表,要么报错,要么意外取到当前行的close值,导致你看到所有结果变成340(比如(close*340)/close=340)。

第一步:修复BuyingPrice度量值

把你的BuyingPrice改成下面的写法,确保它不管在什么上下文里,都能稳定拿到全局筛选后的最早日期收盘价:

BuyingPrice = 
VAR FirstSelectedDate = CALCULATE(MIN(Stonks[Date]), ALLSELECTED(Stonks))
-- 用ALL(Stonks)清除所有行上下文的筛选,确保能找到最早日期的记录
RETURN MAXX(
    FILTER(ALL(Stonks), Stonks[Date] = FirstSelectedDate),
    Stonks[close]
)

这里用MAXX是因为股票单日收盘价一般是单一值,刚好能准确取到;如果你的表单日有多个close记录,根据需求换成SUM或MINX就行。

第二步:修复目标度量值

如果你要的是StockCountValue / BuyingPrice的结果,直接用标量计算就行,没必要用SUMX(两个都是全局标量):

TargetMeasure = DIVIDE(StockCount[StockCountValue], [BuyingPrice])

用DIVIDE比直接写/更安全,能自动处理除以0的异常情况。

要是你实际想算的是**(持仓量×每日收盘价)/(持仓量×买入价)**(也就是每日价格相对买入价的倍数),可以简化成:

DailyPriceRatio = DIVIDE(SUM(Stonks[close]), [BuyingPrice])

持仓量会被约掉,结果和带持仓量的计算完全一致。

验证效果

改完之后,当StockCountValue是340、BuyingPrice也是340时,图表里每个点应该显示1(或者对应的价格倍数),再也不会全变成340了。

内容的提问来源于stack exchange,提问作者Prime Timer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 13:48:14