繁体   English   中英

Dax 日历,不同国家的不同部门都有假期,power bi

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM