代码之家  ›  专栏  ›  技术社区  ›  Jéan

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

  •  1
  • Jéan  · 技术社区  · 2 年前

    大家好,美丽的人们!

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

    示例表格:

    桌子 cfg时间表 :

    时期 ts日期开始 ts日期结束
    202302 2023-01-28 2023-02-24
    202303 2023-02-25 2023-03-29
    202304 2023-03-30 2023-04-26

    桌子 erpPrj时间表 :

    EmpNo ts日期 小时
    100101 2023-03-05 7.
    100101 2023-03-30 6.

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

    桌子 verpPrj时间表 :

    EmpNo 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没有在两个日期范围之间查找的命令。所以上面的内容不起作用。

    什么是更好的方法?

    1 回复  |  直到 2 年前
        1
  •  1
  •   davidebacci    2 年前

    给你。

    enter image description here

    verpPrjTimesheets = 
    ADDCOLUMNS(
        erpPrjTimesheets, 
        "tsPeriod",
        SELECTCOLUMNS(FILTER(cfgTimesheetMnth, erpPrjTimesheets[tsDate] >= cfgTimesheetMnth[tsDateStart] && erpPrjTimesheets[tsDate] <= cfgTimesheetMnth[tsDateEnd]), "tsPeriod", cfgTimesheetMnth[Period])
    )
    
    推荐文章