首页 > 解决方案 > Dax计算列,vlookup最大值

问题描述

目标是功率数据透视表只显示与最后一个时间戳对应的定价信息,所有必要的数据都在一个表中。

在普通的 excel 中,我会尝试使用 vlookup 来解决问题。

我尝试了以下计算的列(以及其他列),但它不起作用。结果是它反映了该行的时间戳,而不是当天的最大时间,因此不会在电源轴上提供所需的结果。

column =
CALCULATE ( MAX ( TabName[Effective Time] ), ALL ( TabName ), TabName[Result] )
    = MAXX (
        FILTER (
            TabName,
            EARLIER ( TabName[Effective Time] ) = TabName[Effective Time]
        ),
        TabName[Result]
    )

这是我正在寻找的输出示例。

蓝色油漆产品有两个时间,5:00 和 17:00。

它找到最晚时间 (17:00) 并将其输出到计算列中。

然后重复获取每个产品的最新价格。

日期 有效时间 产品 价格 所需的计算列
2021 年 7 月 13 日 5:00 蓝色油漆 2.00 17:00
2021 年 7 月 13 日 12:00 绿漆 3.00 16:00
2021 年 7 月 13 日 17:00 蓝色油漆 3.00 17:00
2021 年 7 月 13 日 16:00 绿漆 2.00 16:00
2021 年 7 月 13 日 5:00 红漆 4.00 11:00
2021 年 7 月 13 日 11:00 红漆 4.00 11:00

标签: excelpowerbidax

解决方案


ALLEXCEPT函数适用于这些情况:

Desired Calculated Column =
CALCULATE (
    MAX ( TabName[Effective Time] ),
    ALLEXCEPT ( TabName, TabName[Product], TabName[Date] )
)

这将删除除指定列之外的所有过滤器上下文。


推荐阅读