首页 > 解决方案 > 如何通过过滤 Power Bi dax 查询中的每个日期来获得最终状态

问题描述

我几乎没有每天在预定时间运行的工作。我有 logTime、Job_Name、Status。我必须获得最终状态,就好像在特定的日常工作中是成功、失败或进行中一样。

考虑到下面,我必须得到 final_status 列。

样本数据

标签: powerbidax

解决方案


添加一个查找表,它为每个状态分配一个数值 - 按升序排列:

+-----------+------------+
| status ID |   status   |
+-----------+------------+
|         1 | Succeeded  |
|         2 | Inprogress |
|         3 | Failed     |
+-----------+------------+

在您的工作表中的“状态”和此状态表之间创建关系。

现在您可以在作业表中添加一个计算列,以计算每天的最大状态:

FinalStatus = 
    LOOKUPVALUE (
        StatusTable[status],
        StatusTable[status ID],
        MAXX ( 
            FILTER ( 
                JobTable,
                JobTable[logTime] = EARLIER ( JobTable[logTime] )
            ),
            RELATED ( StatusTable[status ID] )
        )
    )

有关工作示例,请参阅https://excel.solutions/so20181206_lookupstatus/


推荐阅读