calculate-见解 2 (如何吃后悔药)

数据源:
file

最后采购日期_采购金额 的副本 的副本 2:=CALCULATE([采购金额],

                                    LASTDATE('采购明细'[业务日期]),
                                    --接受的是calculate原始筛选上下文,不包过内部参数
                                    ALLEXCEPT('采购明细','商品信息'[主供应商名称],'商品信息'[主供应商编号])
                                    )

我是这样解的,-第一参数计算环境是calculate新的计值上下文(包含内部参数)
第二参数LASTDATE('采购明细'[业务日期])是个筛选器,要先于第一参数计算,那么它的计算环境是什么呢?我认为是calculate的原始上下文,就calculate没有生成新的计值上下文前的原始上下文,
所以 LASTDATE('采购明细'[业务日期]) 这个参数会受到外部环境影响,计算出不同的结果,仅此而已:

外部切片器并不会影响第一参数的结果,表面上看,切片器确实影响了第一参数的计算结果,但是这是不真实,因为新的筛选上下文仅仅保留了二个筛选器 ALLEXCEPT('采购明细','商品信息'[主供应商名称],'商品信息'[主供应商编号]),不可能接受切片器的筛选,所以外部切片器仅仅影响了 第二个参数LASTDATE('采购明细'[业务日期])计算结果,

上面这个感觉存在认识问题:修改如下:
当第二参数LASTDATE('采购明细'[业务日期])在原始上下文计算完毕,第三参数也计算完毕,然后第二参数和第三参数构成了新的筛选上下文计算第一个参数,因为二个筛选器是且的关系,这里存在一个问题,第三参数和第二参数存在矛盾,它是如何解决的呢? ALLEXCEPT('采购明细','商品信息'[主供应商名称],'商品信息'[主供应商编号])保留了二个筛选器忽略了数据模型所有的其他筛选器,第二参数接受了外部所有的筛选器,计算出最后日期,难道calculate可以吃后悔药,是的确实可以吃后悔药.忽略后重新添加筛选器.
第二参数会在第三筛选器的配合下计算第一参数.

最后采购日期_采购金额 的副本 的副本 2:=CALCULATE([采购金额],

                                    LASTDATE('采购明细'[业务日期]),
                                    --接受的是calculate原始筛选上下文,不包过内部参数
                                    ALL('采购明细')
                                    )

这个公式如何理解呢,它会根据当前供应商的最后日期(第二参数计算结果)去计算所有供应商在这个日期内的采购金额.
file
每个公式都代表不同的含义
当然这是我个人总结,可能会有认识的偏差
补充一个度量值:

最后一次采购金额:=CALCULATE(
                               CALCULATE([采购金额],LASTDATE('采购明细'[业务日期])),                        
                              ALLEXCEPT('采购明细','商品信息'[主供应商名称],'商品信息'[主供应商编号])
                        )

这个度量值写的有点酷,没有1年的水平,很难写出来!