メイン コンテンツをスキップする 補完的コンテンツへスキップ

派生項目

関連項目のグループがある場合、または軸またはメジャーの作成時に項目の情報を関連性のあるパーツに分解できる場合、自動取得項目の生成に使用できる項目定義を作成できます。たとえば、年、月、週番号、曜日といった複数の属性を取得する元となる日付項目を作成できます。これらのすべての属性は Qlik Sense 日付関数を使用して軸の数式で計算できますが、日付タイプのすべての項目に共通のカレンダー定義を作成することもできます。項目定義は、データ ロード スクリプトに記載します。

情報メモQlik Sense のデフォルトのカレンダー項目定義は、データ マネージャーを使用してロードされたデータ項目の autoCalendar に含まれています。詳細については、「AutoCalendar を使用して日付項目を自動的に取得する」および「アプリへのデータの追加」を参照してください。

カレンダー項目定義の宣言

自動取得項目の定義を作成するには、Declare ステートメントを使用します。このステートメントでは、項目のさまざまな属性を定義できます。この場合は、日付関連の属性を定義します。各項目は、<expression> As field_name tagged tag のように記述されます。タグ (複数可) の設定は任意ですが、自動取得項目のソート順に影響を与える場合があります。自動取得項目の生成元のデータ項目を参照するには $1 を使用します。

警告メモ 独自の AutoCalendar を作成する場合、または データ マネージャー によって作成された自動構成 [autoCalendar] を使用する場合を除き、カレンダー項目定義の名前として autoCalendar を使用しないでください。この名前は、自動生成されるカレンダー テンプレートとして予約済みです。「AutoCalendar を使用して日付項目を自動的に取得する」を参照してください。
Calendar: DECLARE FIELD DEFINITION TAGGED '$date' Parameters first_month_of_year = 1 Fields Year($1) As Year Tagged ('$numeric'), Month($1) as Month Tagged ('$numeric'), Date($1) as Date Tagged ('$date'), Week($1) as Week Tagged ('$numeric'), Weekday($1) as Weekday Tagged ('$numeric'), DayNumberOfYear($1, first_month_of_year) as DayNumberOfYear Tagged ('$numeric');
 

詳細については、「Declare」を参照してください。

Derive を使用したカレンダーへのデータ項目のマッピング

次に、Derive ステートメントを使用して、既存のデータ項目をカレンダーにマッピングします。これで、自動取得項目が作成されます。これは、データ ロード スクリプトで以下の 3 つの方法で実行できます。

  • 項目名で特定の項目をマッピングする。

    DERIVE FIELDS FROM FIELDS OrderDate,ShippingDate USING Calendar;
  • 1 つまたは複数の特定の項目タグを持つすべての項目をマッピングする。

    DERIVE FIELDS FROM EXPLICIT TAGS ('$date') USING Calendar;
  • 項目定義のタグのうちの 1 つによってタグ付けされたすべての項目をマッピングする (上の例の$date)。

    DERIVE FIELDS FROM IMPLICIT TAG USING Calendar;

この場合、ここで示す 3 つの例のいずれかを使用できます。

詳細については、「Derive」を参照してください。

AutoCalendar を使用して日付項目を自動的に取得する

データ マネージャー を使用してアプリを構築し、データをロードすると、[autocalendar] という名前のカレンダーが自動的にロード スクリプトに挿入され、既定のカレンダー定義が提供されます。これらはアプリのビジネス ロジックで確認できます。

日付項目を含むスクリプトを使用して作成されたアプリの場合、該当する日付項目をすべてロードした後、以下に示すこの [autocalendar] コードをスクリプトのセクションに挿入できます。これにより、アプリ ユーザーは、スマート シートを構築できるものを含む、使用可能なすべての期間ベースの分析タイプを使用できます。ビジネス ロジックでカレンダー期間を正しく追加するには、カレンダーのタイトルが [autocalendar] である必要があることに注意してください。

DERIVE FIELDS FROM FIELDS [My_Date_Field1], [My_Date_Field2] USING [autoCalendar] ; 行の [My_Date_Field1] および [My_Date_Field2] 項目名を変更して、日付項目を AutoCalendar 計算にリンクし、新しい派生日付項目を生成します。AutoCalendar にリンクする日付項目が 1 つのみの場合は、[My_Date_Field2] を削除します。 同様に、AutoCalendar を有効にする日付項目が 3 つ以上ある場合は、日付項目を追加します。

[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', '$cyclic'),
  Dual(Year($1)&'-Q'&Num(Ceil(Num(Month($1))/3)),QuarterStart($1)) AS [YearQuarter] Tagged ('$yearquarter', '$qualified'),
  Dual('Q'&Num(Ceil(Num(Month($1))/3)),QuarterStart($1)) AS [_YearQuarter] Tagged ('$yearquarter', '$hidden', '$simplified'),
  Month($1) AS [Month] Tagged ('$month', '$cyclic'),
  Dual(Year($1)&'-'&Month($1), monthstart($1)) AS [YearMonth] Tagged ('$axis', '$yearmonth', '$qualified'),
  Dual(Month($1), monthstart($1)) AS [_YearMonth] Tagged ('$axis', '$yearmonth', '$simplified', '$hidden'),
  Dual('W'&Num(Week($1),00), Num(Week($1),00)) AS [Week] Tagged ('$weeknumber', '$cyclic'),
  Date(Floor($1)) AS [Date] Tagged ('$axis', '$date', '$qualified'),
  Date(Floor($1), 'D') AS [_Date] Tagged ('$axis', '$date', '$hidden', '$simplified'),
  If (DayNumberOfYear($1) <= DayNumberOfYear(Today()), 1, 0) AS [InYTD] ,
  Year(Today())-Year($1) AS [YearsAgo] ,
  If (DayNumberOfQuarter($1) <= DayNumberOfQuarter(Today()),1,0) AS [InQTD] ,
  4*Year(Today())+Ceil(Month(Today())/3)-4*Year($1)-Ceil(Month($1)/3) AS [QuartersAgo] ,
  Ceil(Month(Today())/3)-Ceil(Month($1)/3) AS [QuarterRelNo] ,
  If(Day($1)<=Day(Today()),1,0) AS [InMTD] ,
  12*Year(Today())+Month(Today())-12*Year($1)-Month($1) AS [MonthsAgo] ,
  Month(Today())-Month($1) AS [MonthRelNo] ,
  If(WeekDay($1)<=WeekDay(Today()),1,0) AS [InWTD] ,
  (WeekStart(Today())-WeekStart($1))/7 AS [WeeksAgo] ,	
  Week(Today())-Week($1) AS [WeekRelNo] ;

DERIVE FIELDS FROM FIELDS [My_Date_Field1], [My_Date_Field2] USING [autoCalendar] ;

正しく実行すると、アプリのビジネス ロジックで多数のカレンダー期間が自動的に作成され、インサイト アドバイザー で期間ベースの分析タイプを使用できるようになります。

詳細については、「インサイト アドバイザー で期間ベースの分析にスマート シートを使用する」を参照してください。

ビジュアライゼーションでの自動取得日付項目の使用

カレンダー定義を作成済みで項目が上の例のようにマッピングされている場合、Qlik Sense が自動取得日付項目を認識します。自動取得日付項目は、[項目] アセット パネルの [日付および時刻項目] セクションで利用できます。すべての自動取得項目は、数式エディタでも確認できます。また軸の作成、編集時にも確認できます。

詳細については、「日付および時刻項目」を参照してください。

このページは役に立ちましたか?

このページまたはコンテンツに、タイポ、ステップの省略、技術的エラーなどの問題が見つかった場合は、お知らせください。改善に役立たせていただきます。