对于我在Power BI中的会计日历,我目前正在尝试实现4-4-5 approach。
我们的日历使用4-4-5周的季度。因为每年只有364天,所以几年后必须有53周的一年。因此,12月份有6周而不是5周。不幸的是,仍然没有基于DAX的方法。然而,在这里的另一篇文章中,我发现了一个JAVA代码,它可能决定一年是否有53周:calculate number of weeks in a given year
private static long getNumberOfWeeksInYear(LocalDate date) {
LocalDate middleOfYear = date.withDayOfMonth(1).withMonth(6);
return middleOfYear.range(WeekFields.ISO.weekOfWeekBasedYear()).getMaximum();
}
public static void main(String[] args) {
for (int year = 2000; year < 2400; year++) {
long numberOfWeeks = getNumberOfWeeksInYear(LocalDate.of(year, 1, 1));
if (numberOfWeeks != 52) {
System.out.println(year + " has " + numberOfWeeks + " weeks");
}
}
}你们有人知道怎么把代码翻译成Dax吗?
我们的会计日历不是从公历开始的。今年从30.12.19开始,到03.01.21结束。今年有53周。
发布于 2020-04-16 21:32:44
我对PowerPivot和DAX无能为力。但我可以告诉您如何使用Excel公式获取这些信息。
给定A2中的年份,您可以使用以下公式计算该年第一个ISO日历周的星期一:
=DATE($A2,1,1)-WEEKDAY(DATE($A2,1,1),3)+(ISOWEEKNUM(DATE($A2,1,1)-WEEKDAY(DATE($A2,1,1),3))<>1)*7您可以使用以下公式计算该年最后一个ISO日历周的星期日:
=DATE($A2+1,1,1)-WEEKDAY(DATE($A2+1,1,1),3)+(ISOWEEKNUM(DATE($A2+1,1,1)-WEEKDAY(DATE($A2+1,1,1),3))<>1)*7-1给定放置在C2中的最后一个ISO日历周的星期日,以下公式计算该年的ISO周数:
=ISOWEEKNUM($C2)示例:

如您所见,这些年是从A2开始的。计算第一个ISO日历周的星期一的公式从下往下放在B2中。计算最后一个ISO日历周的星期日的公式是从下到下的C2。计算那一年ISO周的公式是从下到下的D2。
https://stackoverflow.com/questions/61247927
复制相似问题