基于条件计算列的Dax查找日期

时间:2019-06-01 11:06:17

标签: powerbi dax powerpivot

在其他地方找不到我的问题的答案,所以请在这里试试运气。

我有销售表,我的最终结果应该确定在特定时间段内(例如在7个工作日内)是否针对同一个人进行了销售。例如: sales table

对于ID 123,我必须将其标记为在指定时期内销售产品A,B,C。

对于ID 1234,仅产品A和B的销售符合在不相关的时间范围内销售产品C的条件。

我创建了一个带有指示符的日期表,该指示符确定每个日期是否为工作日,但我正在努力计算相关的最后一个工作日 Date Table

例如:我需要在2019年1月1日基于NUMOFDAYS和FinalWorkday = TRUE获得10/01/2019日期,这基本上意味着我必须为每个日期计算NUMOFDAYS次TRUE语句并返回相应的日期。

完成此步骤后,我认为确定一个人的销售是否在特定时间范围内进行很容易。

如果有人能给我指导,那么感谢

提前谢谢

3 个答案:

答案 0 :(得分:0)

创建一列:

LastWorkDay = DateTable[Date] + DateTable[WeekDay] + if (FinalWorkDay;NUMOFDAYS;0)

答案 1 :(得分:0)

您可以使用像这样的DateTable:

enter image description here

我将以下DAX表达式用于计算列:

nrDays = 7

isWorkDay = WEEKDAY('DateTable'[Date],2) < 6

rankWorkingDays =  RANKX ( FILTER ( DateTable, DateTable[isWorkDay] = TRUE () ),
    DateTable[Date] , , ASC )

LastWorkDay = LOOKUPVALUE ( DateTable[Date],
    DateTable[isWorkDay], TRUE (),
    DateTable[rankWorkingDays], DateTable[rankWorkingDays] + DateTable[nrDays])

答案 2 :(得分:0)

可以通过以下方法解决此问题,因为三个是非工作日/节假日,我们可以通过POWERQUERY将其过滤掉,然后添加索引列和另一个基本上是索引列+所需天数的列,然后简单地合并索引上的日期查询的重复项+索引列上的所需天数列。我们会得到正确的日期