PowerBI DAX 在两个日期之间的另一个表中查找

问题描述 投票:0回答:1

各位美丽的人们大家好!

经过大量谷歌搜索,仍然无法解决这个简单的 PowerBI 技巧。我想基于两个表(用于时间表)构建另一个表,其中一个表具有时间表月份的开始日期和结束日期,另一个表具有时间表本身。我想在时间表中添加一列,以说明它属于哪个时间表月份。 (时间表月末是该月最后一个日期之前的几天,基于星期几等)

示例表:

cfgTimesheetMnth:

期间 tsDateStart tsDateEnd
202302 2023-01-28 2023-02-24
202303 2023-02-25 2023-03-29
202304 2023-03-30 2023-04-26

erpPrj时间表

员工号 ts日期 小时
100101 2023-03-05 7
100101 2023-03-30 6

结果表。然后我想在 PowerBI 中构建一个新表,需要如下所示:

verpPrj时间表

员工号 ts日期 小时 ts期间
100101 2023-03-05 7 202303
100101 2023-03-30 6 202304

我开始使用的PowerBI数据视图中的代码是:

verpPrjTimesheets = 

VAR t1 = SELECTCOLUMNS(erpPrjTimesheets
            , "EmpNo"    , [EmpNo]
            , "tsDate"   , [tsDate]
            , "Hrs"      , [Hrs]
            , "tsPeriod" , LOOKUPVALUE(cfgTimesheetsMnth[Period], cfgTimesheetsMnth[tsDateEnd], erpPrjTimesheets[tsDate])
) RETURN 

t1

但是 LOOKUPVALUE 没有在两个日期范围之间查找的命令。所以上面的方法不起作用。

更好的方法是什么?

powerbi dax powerbi-desktop data-modeling
1个回答
0
投票

给你。

verpPrjTimesheets = 
ADDCOLUMNS(
    erpPrjTimesheets, 
    "tsPeriod",
    SELECTCOLUMNS(FILTER(cfgTimesheetMnth, erpPrjTimesheets[tsDate] >= cfgTimesheetMnth[tsDateStart] && erpPrjTimesheets[tsDate] <= cfgTimesheetMnth[tsDateEnd]), "tsPeriod", cfgTimesheetMnth[Period])
)
© www.soinside.com 2019 - 2024. All rights reserved.