【问题标题】:Power BI DAX: Carry-over category status from latest date for every calendar monthPower BI DAX:每个日历月最晚日期的结转类别状态
【发布时间】:2021-07-05 21:11:12
【问题描述】:

我一直在尝试各种方法,但在继承独立于日历日期的类别的最新状态时遇到了缺点......因此提出了这个要求。

我有一个如下的类别表:

我正在尝试按每个月对 CategoryID 和 Last(TestDate) 进行分组,并每月获取每个 Category 的状态;如果不存在测试日期,请使用从最新测试日期开始该类别可用的类别状态值。

如下:

我试图实现的目标:

  1. 汇总类别表
  2. 添加日历表
  3. 尝试获取最新状态 - 但没有成功..

我尝试了一些方法来实现最大日期,但是,失败了!

Latest = VAR maxdate = MAX(Category[Test Date])
VAR cat = SELECTEDVALUE(Category[TestID]) 
RETURN
CALCULATE(SELECTEDVALUE(Categoty[Category Status]),Categrory[Test ID] = Cat, FILTER(Category,Category[Testdate]=maxdate))

任何建议表示赞赏。

【问题讨论】:

    标签: powerbi dax powerbi-desktop


    【解决方案1】:

    假设这是您当前的数据集,其中添加了 MM-YYYY 列:

    并且您已经为滚动状态创建了一个日历表,即使月份未显示在数据集中:

    首先,您需要再次在日历表中创建 MM-YYYY(假设您已经知道如何操作),然后您将使用 Lookup & calculate 的组合来返回您期望的滚动状态(您的数据集每个月必须有唯一的类别名称):

    Status = 
    var result = LOOKUPVALUE(Sheet1[Category Status],Sheet1[MM-YYYY],
                    'Calendar'[MM-YYYY],Sheet1[Category Name],'Calendar'[Category])
    return
    IF(ISBLANK(result),CALCULATE(FIRSTNONBLANK(Sheet1[Category Status],1),
        FILTER(Sheet1,Sheet1[Category Name]=EARLIER('Calendar'[Category])),
            FILTER(Sheet1, Sheet1[Test Date] <= EARLIER('Calendar'[Calendar Month]))), result)
    

    这是最终输出(有趣的是,FirstNonBlank 返回正确的输出而不是 LastNonBlank),其中 7 月、8 月和 10 月使用最新可用月份的滚动状态:

    【讨论】:

    • 我希望在翻转日历日期的分组表..任何建议表示赞赏。
    • 它是按展期月份分组的,因为我只用你的例子来计算,所以它只显示Jan2020和Jan2021,请尝试查看输出。
    • 我无法在滚动日历日期显示。我尝试将日历日期加入 MM-YYYY,但没有运气。
    • 我使用format([date],"mmm") &amp; "-" &amp; year([date])获取MM-YYYY,你只能从excel中获取?
    • Kin,我已经设法使用 Format 创建它。但是,当我将它放在日历中时,我只看到测试日期的值,而不是按类别和月份分组,也可以滚动到下个月
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-12
    相关资源
    最近更新 更多