不管是Power BI中还是在Excel的Power Pbiot中使用DAX,都支持VAR变量的写法。变量的方法不仅提高了代码的性能,还能减少代码的重复使用带来的阅读不方便。
但是很多的新手朋友们在编写表达式的时候,使用变量可能会犯这样一个错误。来看看你是不是也有这样的习惯和问题。先来看一下数据模型。
比如,要计算每个大区的订单金额占所有大区订单总金额的占比。这是一个简单的度量值,新手朋友们有可能的一种编写的代码是:
然后我们将其放入到矩阵中,来观察一下结果。发现结果全是100%.如图所示:
上述公式虽然没有报错,但是其本身计算的结果是硬错误的,因为每个大区的订单金额占比都是100%,这是显而易见的。出现这种错误的原因是,代码关于VAR变量的理解是不正确的:
变量只在定义的时候计算,不会在使用变量的时候计算结果,并且变量的计算只进行一次。在这个例子中,已经定义的salestotal的变量不会受到CALCULATE函数的影响,即不考虑调用变量时的筛选上下文,所以后面的占比计算的时候,每一个大区返回的都是所有大区订单金额的总计值。
所以,上述错误的代码,可以分成来写成2个度量值:
再编写金额占比的度量值,如下:
再来看一下结果,就正确了。
所以,你知道你写的变量为什么总是返回100%了嘛~
当然,如果你使用了按列排序的功能也会造成你的占比的计算全是100%的情况,具体可以参考上一节的内容。
让我看看,是哪个小可爱翻到惊喜了~~
小必老师近期新出版的《Excel商务智能:Power Query和Power Pivot数据清洗、建模与分析实战》一书,在上市以来就取得不俗的表现,豆瓣上更是有了9.5分的评分。本书有50+的实战案例,有1G+的随书重难点章节的配套视频。主要讲解Power Query中的M和Power Pivot中的DAX,适用于Excel和Power BI。
领取专属 10元无门槛券
私享最新 技术干货