【问题标题】:Calculate Number of Working Days based on a Month and Year Column - DAX根据月份和年份列计算工作日数 - DAX
【发布时间】:2020-04-02 04:04:56
【问题描述】:

我有一个像下面这样的列,我想从中提取工作日数(不包括周末——周六和周日,节假日不需要处理)。

现在我只想:

Required_Column = Total No of Days in that month - No of weekends in that month

Month_Year
01-2018
02-2018
03-2018
...
...
01-2019
02-2019

我是 Power 查询和 DAX 的新手,我尝试使用 DAX 查找各种方法,但是找不到任何相关线索。

预期输出:

Month_Year   Required_Column
01-2018      23 (31-8)
02-2018      20 (28-8)
03-2018      22 (31-9)
...          ...
...          ...
01-2019      23 (31-8)
02-2019      20 (28-8)

感谢您对此的帮助。

【问题讨论】:

  • 最常见和最有效的解决方案是使用日历表,它可以构建在数据库或 Power Query 中。日历表可以有一个标记“Is Workday”,然后您只需计算它们。 exceleratorbi.com.au/build-reusable-calendar-table-power-query
  • 是的,目前只有日历表或自写函数(在 Power Query 中)是唯一的可能性
  • 我明白了。我希望有一些 Dax 公式或函数可以做到这一点。不过,谢谢你们两个:)

标签: powerbi dax powerquery


【解决方案1】:

虽然 RADO 和 Strawberryshrub 的评论中建议使用基于日历表的方法,但也可以使用 DAX 计算列来执行此操作。

在下面的示例中,我假设 MonthYear 列包含每个月的第一天。

WorkingDays = 
VAR Year = YEAR( [MonthYear] )
VAR Month = MONTH( [MonthYear] )
VAR DatesInMonth = GENERATESERIES( [MonthYear], DATE( Year, Month + 1, 1 ) - 1, 1 )
RETURN SUMX(
    DatesInMonth,
    IF( WEEKDAY( [Value] ) IN { 1, 7 }, 0, 1 )
)

【讨论】:

  • 您是如何编写“MonthYear”列以仅显示年份和月份的?我很难找到像你这样的人,我发现的 Dax 每天都在倒计时。日期 = 日历(日期(2021, 1, 1),日期(2022,12,31))
猜你喜欢
  • 1970-01-01
  • 2012-06-06
  • 1970-01-01
  • 2015-06-20
  • 1970-01-01
  • 2022-11-29
  • 1970-01-01
  • 1970-01-01
  • 2016-11-23
相关资源
最近更新 更多