2016-09-09 79 views
0

これを会計カレンダーにどのように適応させるか考えた人はいますか?コードはこのように見えます。Qlik Senseを使って会計カレンダーを作成するカレンダーコード

[autoCalendar]: 

    DECLARE FIELD DEFINITION Tagged ('$date') 

FIELDS

Dual(Year($1), YearStart($1)) AS [Year] Tagged ('$axis', '$year') 

,Dual('Q'&Num(Ceil(Num(Month($1))/3)),Num(Ceil(NUM(Month($1))/3),00)) AS [Quarter] Tagged ('$quarter') 

,Dual(Year($1)&'-Q'&Num(Ceil(Num(Month($1))/3)),QuarterStart($1)) AS [YearQuarter] Tagged ('$axis', '$yearquarter') 

,Month($1) AS [Month] Tagged ('$month') 

,Dual(Year($1)&'-'&Month($1), monthstart($1)) AS [YearMonth] Tagged ('$axis', '$yearmonth') 

,Dual('W'&Num(Week($1),00), Num(Week($1),00)) AS [Week] Tagged ('$weeknumber') 

,Date(Floor($1)) AS [Date] Tagged ('$date') 

DERIVE FIELDS FROM FIELDS [StartDate] USING [autoCalendar] ; 

答えて

0

あなたの会計年度が開始するときに応じて、わずかに異なるものが必要と思います。

Dual(Year(Addmonths($1,9)),Makedate(Year(Addmonths($1,9))-1,4,1)) AS [Year] Tagged ('$axis', '$year') 
// e.g. text value will be 2017 and num value will be 01/04/2016 for 01/04/2016 to 31/03/2017 

,Dual('Q'&Num(if(Num(Month($1))<=3,4,Ceil(Num(Month($1))/3)-1)),Num(if(Num(Month($1))<=3,4,Ceil(Num(Month($1))/3)-1),00)) AS [Quarter] Tagged ('$quarter') 

,Dual(Year(Addmonths($1,9))&'-Q'&Num(if(Num(Month($1))<=3,4,Ceil(Num(Month($1))/3)-1)),QuarterStart($1)) AS [YearQuarter] Tagged ('$axis', '$yearquarter') 

,Month($1) AS [Month] Tagged ('$month') 

,Dual(Year($1)&'-'&Month($1), monthstart($1)) AS [YearMonth] Tagged ('$axis', '$yearmonth') 
// Have left this one as-is as generally people want YearMonth to be calendar year 

,Dual('W'&Num(Week($1),00), Num(Week($1),00)) AS [Week] Tagged ('$weeknumber') 
// Have left this one as-is as not sure whether you'd number this for fiscal or calendar weeks 

,Date(Floor($1)) AS [Date] Tagged ('$date') 

DERIVE FIELDS FROM FIELDS [StartDate] USING [autoCalendar] ; 

(注:基本的にちょうどあなたのような何かをしたいと思い、あなたの会計年度は4月に始まりと仮定すると、会計年度取得し、四半期適応...

日付に上の9ヶ月を追加 - このコードを直接手作業で試していないので、手作業で完全に貼り付けるだけではないかもしれません)

+0

Saranjithねえ、私はまだ完全に私が持っているものに合わせて、それを修正するために行われているかを理解することはできませんよにもかかわらず、その答えを 感謝。 私の会計カレンダーは、2015年12月28日から2016年12月25日に開始されます。 また、変更に合わせて週と月が必要になります。したがって、1月1日は2015年12月28日から開始し、2014年1月24日に終了します。 ありがとう –

+0

@FredAmponsahあなたの財務年度は**狂気**ですが、これはもう一つの答えがあり、これは正常な環境でのみ動作するためです^ –

0

したがって、あなたの会計年度は365ではありません。毎年違う日に終了します。

以下は、Qlikviewの古い概念と新しい概念(マスターカレンダーの作成)とQlik Senseで使用可能な新しい機能の組み合わせです。これはあなたの年を特定しますが、会計年度を特定するためにもう少し作業が必要になりますが、これはどこからの大きなステップではありません。

REM 
As Financial Year end varies from year to year, set variables for each to determine when each year ends; 
Let varFinYear1 = Date#('28/12/2015','DD/MM/YYYY') 
Let varFinYear2 = Date#('25/12/2015','DD/MM/YYYY') 

Rem 
Generate an entry for every day in your source data table; 
Temp: 
Load 
       min(StartDate) as minDate, 
       max(StartDate) as maxDate 
Resident TableNameHere; 

Let varMinDate = Num(Peek('minDate', 0, 'Temp')); 
Let varMaxDate = Num(Peek('maxDate', 0, 'Temp')); 

DROP Table Temp; 

TempCalendar: 
LOAD 
       $(varMinDate) + Iterno()-1 As Num, 
       Date($(varMinDate) + IterNo() - 1) as TempDate 
       AutoGenerate 1 While $(varMinDate) + IterNo() -1 <= $(varMaxDate); 

Rem 
Create a map that identifies each year as specified by the variables above, this will need updating for every year; 
Map_Calendar: 
Mapping Load 
       TempDate, 
       if(TempDate<=varFinYear1,'Year1' 
       ,if(TempDate<=varFinYear2,'Year2','Year3')) as FinancialYear 
Resident TempCalendar 
Order By TempDate ASC; 
Drop Table TempCalendar; 

Let varMinDate = null(); 
Let varMaxDate = null(); 

Rem Now using our map in the autocalendar we can define non 365 Fiscal years; 
[autoCalendar]: 

    DECLARE FIELD DEFINITION Tagged ('$date') 
    Dual(Year($1), YearStart($1)) AS [Year] Tagged ('$axis', '$year') 
,Dual('Q'&Num(Ceil(Num(Month($1))/3)),Num(Ceil(NUM(Month($1))/3),00)) AS [Quarter] Tagged ('$quarter') 
,Dual(Year($1)&'-Q'&Num(Ceil(Num(Month($1))/3)),QuarterStart($1)) AS [YearQuarter] Tagged ('$axis', '$yearquarter') 
,Month($1) AS [Month] Tagged ('$month') 
,Dual(Year($1)&'-'&Month($1), monthstart($1)) AS [YearMonth] Tagged ('$axis', '$yearmonth') 
,Dual('W'&Num(Week($1),00), Num(Week($1),00)) AS [Week] Tagged ('$weeknumber') 
,Date(Floor($1)) AS [Date] Tagged ('$date') 
,ApplyMap('Map_Calendar',$1) as [FiscalYear] 


DERIVE FIELDS FROM FIELDS [StartDate] USING [autoCalendar] ; 
関連する問題