Ga naar hoofdinhoud Ga naar aanvullende inhoud

Afgeleide velden

Als u een groep velden hebt die zijn gerelateerd, of als velden informatie bevatten die kan worden opgesplitst in kleinere delen die relevant zijn bij het maken van dimensies of metingen, kunt u velddefinities maken die kunnen worden gebruikt voor het genereren van afgeleide velden. Eén voorbeeld is een datumveld, waarvan u verschillende kenmerken kunt afleiden, zoals jaar, maand, weeknummer of dagnaam. Al deze kenmerken kunnen worden berekend in een dimensie-uitdrukking met behulp van Qlik Sense-datumfuncties, maar een alternatief is een agendadefinitie maken die algemeen geldt voor alle velden van het datumtype. Velddefinities worden opgeslagen in het load-script voor gegevens.

InformatieStandaard agendavelddefinities voor Qlik Sense zijn opgenomen in autoCalendar voor gegevensvelden geladen met behulp van Gegevensbeheer.Ga voor meer informatie naar Gegevensvelden automatisch afleiden met behulp van autocalendar en Gegevens aan de app toevoegen.

De agendavelddefinities declareren

U gebruikt de opdracht Declare om een definitie van de afgeleide velden te maken. Dit is waar u de verschillende kenmerken van het veld definieert, in dit geval aan de datum gerelateerde kenmerken. Elk veld wordt beschreven als <expression> As field_name tagged tag. Het instellen van een of meer tags is optioneel, maar kan van invloed zijn op de sorteervolgorde van het afgeleide veld. Gebruik $1 om te verwijzen naar het gegevensveld op basis waarvan de afgeleide velden moeten worden gegenereerd.

Waarschuwing Gebruik autoCalendar niet als naam voor kalendervelddefinities, tenzij u uw eigen autocalendar maakt of werkt met de automatisch geconfigureerde [autoCalendar] die is gemaakt door Gegevensbeheer. Deze naam is gereserveerd voor automatisch gegenereerde kalendersjablonen. Zie Gegevensvelden automatisch afleiden met behulp van 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');
 

Ga voor meer informatie naar Declare.

Gegevensvelden toewijzen aan de agenda met Derive

De volgende stap is het gebruiken van de opdracht Derive om bestaande gegevensvelden toe te wijzen aan de agenda. Hiermee worden de afgeleide velden gemaakt. U kunt dit op drie verschillende manieren doen in het load-script voor gegevens:

  • Specifieke velden toewijzen op veldnaam.

    DERIVE FIELDS FROM FIELDS OrderDate,ShippingDate USING Calendar;
  • Alle velden met één of meer specifieke veldtags toewijzen.

    DERIVE FIELDS FROM EXPLICIT TAGS ('$date') USING Calendar;
  • Alle velden toewijzen die zijn getagd met een of meer van de tags van de velddefinitie ($date in het bovenstaande voorbeeld).

    DERIVE FIELDS FROM IMPLICIT TAG USING Calendar;

In dit geval kunt u een van de drie voorbeelden hier gebruiken.

Ga voor meer informatie naar Derive.

Gegevensvelden automatisch afleiden met behulp van autocalendar

Als u Gegevensbeheer gebruikt om uw app te maken en gegevens te laden, wordt de kalender [autocalendar] automatisch ingevoegd in het load-script om standaard kalenderdefinities ter beschikking te stellen. Deze zijn zichtbaar in de bedrijfslogica van de app.

U kunt de onderstaande code [autocalendar] invoegen in een script in een sectie voor apps die zijn gemaakt met scriptcodes en die datumvelden bevatten, nadat u alle toepasselijke datumvelden hebt geladen. Dit stelt app-gebruikers in staat om alle beschikbare op periode gebaseerde analysetypen te gebruiken, inclusief de typen waarmee slimme werkbladen gemaakt kunnen worden. Houd er rekening mee dat de kalender de titel [autocalendar] moet hebben zodat kalenderperioden juist aan de bedrijfslogica worden toegevoegd.

Wijzig de veldnamen [My_Date_Field1] en [My_Date_Field2] in de regel DERIVE FIELDS FROM FIELDS [My_Date_Field1], [My_Date_Field2] USING [autoCalendar] ; om het datumveld te koppelen met de berekeningen van de autocalendar waarmee nieuwe afgeleide datumvelden worden gegenereerd. Verwijder [My_Date_Field2] als u slechts één veld hebt om aan autocalendar te koppelen. U kunt op een vergelijkbare manier aanvullende datumvelden toevoegen als u meer dan twee datumvelden hebt waarvoor u autocalendar wilt inschakelen.

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

Als u dit juist hebt gedaan, wordt er automatisch een aantal kalenderperioden gemaakt in de bedrijfslogica van de app. Ook kunt u dan de op periode gebaseerde analysetypen in Inzichtenadviseur gebruiken.

Ga voor meer informatie naar Slimme werkbladen gebruiken in Inzichtenadviseur voor op periodegebaseerde analyses.

De afgeleide datumvelden gebruiken in een visualisatie

Qlik Sense kan afgeleide datumvelden herkennen als u een agendadefinitie hebt gemaakt en de velden hebt toegewezen zoals in het voorbeeld hier. Zij zijn beschikbaar in de sectie Datum- en tijdvelden van het bedrijfsmiddelenvenster Velden. U vindt tevens alle afgeleide velden in de uitdrukkingseditor en bij het maken of bewerken van dimensies.

Ga voor meer informatie naar Datum- en tijdvelden.

Was deze pagina nuttig?

Als u problemen ervaart op deze pagina of de inhoud onjuist is – een typfout, een ontbrekende stap of een technische fout – laat het ons weten zodat we dit kunnen verbeteren!