一、 计算列与度量值区别
- 举例:计算每个客户的最后下单时间
计算列
-
尝试1:=MAX(‘订单表’[订单日期]);如下图,可以看到结果为整个表最大的日期,不是我们的目的
计算列的上下文就是当前行,但MAX函数(包括SUM、MIN等聚合函数)不能将行上下文转化为筛选上下文,也就是说当前行没有起到筛选作用,它就会返回整个表的最大订单日期。 -
尝试2: =CALCULATE(MAX(‘订单表’[订单日期]));如下图,发现筛选上下文自动识别为当前行,返回的日期列=订单日期,也不是我们想要的
让当前行发生筛选作用——在MAX函数外围再套个CALCULATE函数 -
尝试3:=CALCULATE(MAX(‘订单表’[订单日期]),ALLEXCEPT(‘订单表’,‘订单表’[客户]));如下图,通过ALLEXCEPT函数定义筛选上下文对应的列,成功返