白茶在刚开始接触PowerBI的时候,经常被一些基础的概念搞懵,也不好意思问别人说的具体是啥意思,分享一下一个小坑。
最开始经常听到“计算列”,“度量值”这两个概念,当时真的是只会一点EXCEL的基础函数,一上手学DAX完全搞不懂这说的是啥啊。
白茶决定用一组数据来告诉小伙伴二者的区别。
这是白茶做的一组虚假数据,有点粗糙了,大家伙将就着看,导入PowerBI中。
就这一个示例文件,没有其他。
什么叫计算列呢?
比如我现在想知道每一单利润。
点击建模窗口下面的新建列,输入相关计算,得出一列,那么我们新得到的这一列就是计算列。
什么叫度量值?
同样是上面的问题,求出单品利润。
鼠标右键点击表,选择新建度量值,输入如下代码:
利润 度量值 =
SUM ('示例'[售价] ) - SUM ('示例'[进价] )
这个就是度量值。
将二者放入矩阵中进行对比。
可以看得出来,二者所呈现的结果是一样的。
但是二者之间具体的区别在哪?
相同点:
二者有时候在写法上是一致的。
不同点:
①、首先就是,计算列,会直接在表格中添加一列,也就是说只要打开PowerBI点击刷新数据,那么我们所添加的列会根据原有的数据进行添加,无论我们是否进行运算、查看这一列,它都会占用我们的系统内存,导致文件变大,变卡。
而且有时候一些计算结果会有偏差,比如说刚才那组数据,我想知道出货日期与订单日期之间的间隔:
就像是这种,我们想知道的是间隔了几天,而不是这种计算错误的结果。
优点是操作较为简单一些。
②、而度量值,不占用内存,系统存储的只是它的计算逻辑,只有当你调用它的时候,想起它的时候,才会执行运算。
上面的问题,日期间隔用度量值计算。
间隔 度量值 =
INT ( SUMX ('示例','示例'[出货日期] ) - SUMX ('示例','示例'[下单日期] ) )
结果如图:
一些特定的运算,相对于计算列比较准确。
但是缺点也异常的明显:度量值比较在意外部上下文和内部上下文,相对于计算列无疑它的计算是繁琐的,比较费头脑的。而且特别容易把人绕懵。
同样,如果上下文关系判断不正确,那么它的结果也是错误的。
小伙伴们❤GET了么?
白茶会不定期的分享一些函数卡片
(文件在知识星球[PowerBI丨需求圈])
这里是白茶,一个PowerBI的初学者。
下面这个知识星球是针对有实际需求的小伙伴,有需要的请加入下面的知识星球。