[英]Dax calender with holidays for different divisions in different countries, power bi
我有一个用 Dax 制作的非常大的日历表,大约有 40 个不同的列。 我引入了一个额外的假期表来在日历表中创建两列:“假期”和“IsWorkday”。 这很好用,但现在我在不同的国家有分部,因此这两列必须基于分部是动态的。
相关的表是销售额、部门、日历和假期。 日历和分区都与销售有关。 假日表仅与日历表中的 LOOKUPVALUE 一起使用。
简化预览:[简化预览][1] [1]:https://i.stack.imgur.com/FQv5G.png
Dax 日历中的两列看起来像这样,(其中 [Date] 不是来自 Holiday 是来自 Calender dax 的日期)
"Holiday", VAR DivisionCountry = LOOKUPVALUE(Division[Country], Division[DivisionID], SELECTEDVALUE(SALES[DivisionID]))
VAR Country = LOOKUPVALUE(Holiday[Country], Holiday[Country], DivisionCountry)
RETURN
LOOKUPVALUE(Holiday[Holiday],Holiday[Date],[Date], Holiday[Country], Country),
"IsWorkday", VAR WeekdayNum = WEEKDAY( [Date], 2)
VAR DivisionCountry = LOOKUPVALUE(Division[Country], Division[DivisionID], SELECTEDVALUE(SALES[DivisionID]))
VAR Country = LOOKUPVALUE(Holiday[Country], Holiday[Country], DivisionCountry)
VAR Integer = INT( NOT WeekdayNum IN {6, 7} && ISBLANK(LOOKUPVALUE(Holiday[Holiday],Holiday[Dato],[Date],Holiday[Country], Country) ) )
VAR Result = Integer
RETURN Result,
即使我 select 不同的部门,“假期”也会返回空白。 当我注释掉假期部分时,'IsWorkday' 能够在星期一至星期五返回 1,但在我包含它时返回 0。 两列的Holiday-part基本相同。
我不太擅长 Dax,我承认我可能不理解我在这里写的 dax 的真正逻辑,因为我的逻辑显然是失败的。
我非常感谢任何帮助或提示,让我更接近解决方案。 希望我提供的信息足够。 如果没有 - 请告诉我,我会添加。
谢谢!
我将从在Calendar[Date]
和Holiday[Date]
之间建立关系开始。 接下来,我将创建一个度量HolidayName
以返回给定[Date]
和[DivisionID]
的假期。
HolidayName =
VAR DivisionCountry = LOOKUPVALUE(Division[Country], Division[DivisionID], SELECTEDVALUE(Sales[DivisionID]))
RETURN
LOOKUPVALUE(Holiday[Holiday], Holiday[Date], SELECTEDVALUE(Calendar[Date]), Holiday[Country], DivisionCountry)
然后,您可以进行另一项措施isWorkdayOrHoliday
以组合Calendar[isWorkday]
和新制定的措施HolidayName
。
isWorkdayOrHoliday = INT(Calendar[isWorkday] && ISBLANK([HolidayName]))
如果给定日期是周末或假日,这将返回isWorkdayOrHoliday = 0
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.