簡體   English   中英

每個月的個人開始日期

[英]Individual start date per month

一起

我如何在 PowerPivot 或 Dax 公式中獲取它,從 2019 年 1 月的 31.120.2018 開始的月初收到的內部/個別月份? 那么,我已經從 31.12.2018 開始在 PowerPivot 日歷表中獲得了 1 月,然后在 4-4-5 周的周期中? 所以

31.12.2018 + 28 days = January
31.12.2018 + (28 days * 2) = February
31.12.2018 + (28 days * 2) + 7 days = March

有沒有人有想法?

在此處輸入圖片說明

此致

首先我創建一個日歷表,這是簡單的部分,我隨機開始和結束進行測試:

CalendarDates = CALENDAR(DATE(2012;12;20);DATE(2021;1;5))

然后我添加了列 WeekNumber,這是公歷。 有點復雜,因為微軟只是從一月一日開始從 1 開始計數。

WeekNumber = 
var wNrfirstDayJanNextYear = WEEKNUM(DATE(CalendarDates[Date].[Year] + 1;1;1);2)
var fullWeekNextYear = WEEKNUM(DATE(CalendarDates[Date].[Year] + 1;1;7);2) = 1 //If day 7 of week is still first week, its a full week
var wNr31Dex = WEEKNUM(DATE(CalendarDates[Date].[Year];12;31);2)
var wNr31DexPrevYear = WEEKNUM(DATE(CalendarDates[Date].[Year]-1;12;31);2)
var wNr = WEEKNUM(CalendarDates[Date];2)
var pbi4JanWeekNrNextYear = WEEKNUM(DATE(CalendarDates[Date].[Year] + 1;1;4);2)
var pbi4JanWeekNr = WEEKNUM(DATE(CalendarDates[Date].[Year];1;4);2)
var wNrComp = if (pbi4JanWeekNr =2; wNr - 1; wNr)
return if(NOT(fullWeekNextYear) && wNr = wNr31Dex;IF(pbi4JanWeekNrNextYear = 2; wNr31Dex;1);if(wNrComp = 0; wNr31DexPrevYear; wNrComp))

最后一步是根據周數創建月份:

Month = 
var quater = FLOOR((CalendarDates[WeekNumber] - 1)/13; 1)
var quarterWeek = MOD(CalendarDates[WeekNumber] - 1 - (quater*13);13)
var monthNr = FLOOR(quarterWeek/4;1)
var month445 = if (monthNr = 3; 2; monthNr) + quater * 3 + 1
return if (month445 = 13; 12;month445)

注意:我在上個季度更正了第 53 周,所以它變成了 4-4-6。 如果你想要它不同,你需要做你自己的數學。

最終結果: 在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM