Gå till huvudinnehåll Gå till ytterligare innehåll

Härledda fält

Om du har en grupp med fält som är relaterade, eller om fälten har information som kan delas upp i mindre delar som är relevanta när du skapar definitioner eller mått, kan du skapa fältdefinitioner som kan användas för att generera härledda fält. Ett exempel är ett datumfält som du kan härleda flera attribut från, t.ex. år, månad, veckonummer eller dagsnamn. Alla dessa attribut kan beräknas i ett dimensionsuttryck med Qlik Sense-datumfunktioner, men ett annat alternativ är att skapa en kalenderdefinition som är gemensam för alla fält av datumtyp. Fältdefinitioner lagras i dataladdningsskriptet.

Anteckning om informationFältdefinitionerna i standardkalendern för Qlik Sense ingår i autoCalendar för datumfält som laddas med Datahanteraren.Mer information finns i Härleda datumfält automatiskt med autocalendar och Lägga till data i appen från kopplingar och nya filer.

Ange kalenderfältdefinitioner

Du använder Declare-satsen för att skapa en definition av de härledda fälten. Det är här du definierar de olika attributen för fältet, i det här fallet datumrelaterade attribut. Varje fält beskrivs som <expression> As field_name tagged tag. Du kan välja om du vill göra inställningar för en eller fler taggar, men det kan påverka sorteringsordningen för det härledda fältet. Använd $1 för att referera till datafältet som de härledda fälten ska genereras från.

Anteckning om varning Såvida du inte skapar din egen autocalendar eller arbetar med autokonfigurerade [autoCalendar] som skapas av Datahanteraren ska du inte använda autoCalendar som namn för kalenderfältdefinitioner. Det här namnet är reserverat för automatiskt genererade kalendermallar. Se Härleda datumfält automatiskt med 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');
 

Mer information finns i Declare.

Mappa datafält till kalendern med Derive

Nästa steg är att använda Derive-satsen för att mappa befintliga datafält till kalendern. Detta skapar härledda fält. Du kan göra detta på tre olika sätt i dataladdningsskriptet:

  • Mappa specifika fält efter fältnamn.

    DERIVE FIELDS FROM FIELDS OrderDate,ShippingDate USING Calendar;
  • Mappa alla fält med en eller flera specifika fälttaggar.

    DERIVE FIELDS FROM EXPLICIT TAGS ('$date') USING Calendar;
  • Mappa alla fält som är taggade med en av taggarna i fältdefinitionen ($date i exemplet ovan).

    DERIVE FIELDS FROM IMPLICIT TAG USING Calendar;

I det här fallet kan du använda något av de tre exemplen som ges här.

Mer information finns i Derive.

Härleda datumfält automatiskt med autocalendar

Om du använder Datahanteraren för att bygga din app och ladda data sätts en kalender benämnd [autoCalendar] automatiskt in i laddningsskriptet som tillhandahåller standardkalenderdefinitioner. De är synliga i appens affärslogik.

För appar som skapas med skript som innehåller datumfält kan du sätta in denna [autoCalendar]-kod som visas nedan i ditt skript i ett delavsnitt efter att du har laddat alla tillgängliga datumfält. På så sätt kan appanvändare använda alla tillgängliga periodbaserade analystyper, inklusive de som kan bygga smarta ark. Observera att kalendern måste vara benämnd [autocalendar] för att kalenderperioderna ska läggas till på rätt sätt i affärslogiken.

Modifiera fältnamnen för [My_Date_Field1] och [My_Date_Field2] i raden DERIVE FIELDS FROM FIELDS [My_Date_Field1], [My_Date_Field2] USING [autoCalendar] ; för att länka datumfältet med autocalendar-beräkningar som genererar de nya härledda datumfälten. Om du bara har ett datumfält som ska länkas till autocalendar tar du bort [My_Date_Field2]. På motsvarande sätt lägger du till ytterligare datumfält om du har fler än två datumfält att aktivera autocalendar för.

[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] ;

Om det görs korrekt kommer ett antal kalenderperioder att skapas automatiskt i appens affärslogik och du kommer att kunna använda de periodbaserade analystyperna i Insikter.

Mer information finns i Använd smarta ark i Insikter för periodbaserade analyser.

Använda de härledda datafälten i en visualisering

Qlik Sense känner igen härledda datumfält om du har skapat en kalenderdefinition och mappat fälten som i exemplet ovan. De finns tillgängliga i Datum & Tid-fält-avsnittet i Fält-resurspanelen. Du hittar även alla härledda fält i uttrycksredigeraren och när du skapar eller redigerar dimensioner.

Mer information finns i Datum- och tidsfält.

Var den här sidan till hjälp för dig?

Om du hittar några fel på denna sida eller i innehållet – ett stavfel, ett steg som saknas eller ett tekniskt fel – berätta för oss så att vi kan blir bättre!