Dax 日历,不同国家不同部门的假期,power bi
Dax calender with holidays for different divisions in different countries, power bi
我有一个用 Dax 制作的相当大的压延机 table,大约有 40 个不同的列。我引入了一个额外的假期 table 以在日历 table 中制作两列:“假期”和“IsWorkday”。这很好用,但现在我在不同的国家有部门,因此这两列必须根据部门动态变化。
相关的 table 是销售额、部门、日历和假日。日历和分区都与销售有关。假期 table 仅在日历 table.
中与 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,
'Holiday' return 即使我 select 不同的部门也是空白。
当我注释掉假期部分时,'IsWorkday' 能够在星期一至星期五为 return 1,但是当我包含它时 returns 0。两列的Holiday-part基本相同
我不太擅长 Dax,我承认我可能不理解我在这里写的 dax 的真正逻辑,因为我的逻辑显然是错误的。
非常感谢任何帮助或提示,让我更接近解决方案。希望我提供的信息足够。如果没有 - 请告诉我,我会添加。
谢谢!
我首先要在 Calendar[Date]
和 Holiday[Date]
之间建立关系。接下来,我将针对给定的 [Date]
和 [DivisionID]
.
创建一个度量 HolidayName
到 return 假期
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]))
如果给定日期是周末或假期,这将 return isWorkdayOrHoliday = 0
。
我有一个用 Dax 制作的相当大的压延机 table,大约有 40 个不同的列。我引入了一个额外的假期 table 以在日历 table 中制作两列:“假期”和“IsWorkday”。这很好用,但现在我在不同的国家有部门,因此这两列必须根据部门动态变化。
相关的 table 是销售额、部门、日历和假日。日历和分区都与销售有关。假期 table 仅在日历 table.
中与 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,
'Holiday' return 即使我 select 不同的部门也是空白。 当我注释掉假期部分时,'IsWorkday' 能够在星期一至星期五为 return 1,但是当我包含它时 returns 0。两列的Holiday-part基本相同
我不太擅长 Dax,我承认我可能不理解我在这里写的 dax 的真正逻辑,因为我的逻辑显然是错误的。
非常感谢任何帮助或提示,让我更接近解决方案。希望我提供的信息足够。如果没有 - 请告诉我,我会添加。
谢谢!
我首先要在 Calendar[Date]
和 Holiday[Date]
之间建立关系。接下来,我将针对给定的 [Date]
和 [DivisionID]
.
HolidayName
到 return 假期
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]))
如果给定日期是周末或假期,这将 return isWorkdayOrHoliday = 0
。