Deze functie bepaalt of de invoertijdstempel binnen het jaar valt waarin het script voor het laatst is geladen en retourneert True als dat het geval is en False als dat niet het geval is.
In Qlik Sense wordt de booleaanse waarde Waar vertegenwoordigd door -1 en de waarde Onwaar door 0.
Als geen van de optionele parameters wordt gebruikt, betekent het jaar tot op heden een datum binnen één kalenderjaar vanaf 1 januari tot en met de datum waarop het script voor het laatst is uitgevoerd.
Met andere woorden: wanneer de yeartodate()-functie zonder extra parameters wordt getriggerd, wordt deze gebruikt om een tijdstempel te evalueren en een booleaans resultaat te retourneren op basis van of de datum in het kalenderjaar viel tot en met de datum waarop er opnieuw is geladen.
Maar het is tevens mogelijk om de begindatum van het jaar te vervangen met het firstmonth-argument, en om vergelijkingen te maken met voorgaande of volgende jaren met behulp van het yearoffset-argument.
In gevallen van historische gegevenssets, biedt de yeartodate()-functie een parameter om todaydate in te stellen, waarmee de tijdstempel met het kalenderjaar wordt vergeleken tot en met de datum die in het todaydate-argument is opgegeven.
Argumenten
Argument
Beschrijving
timestamp
De tijdstempel die moet worden geëvalueerd, bijvoorbeeld '10/12/2012'.
yearoffset
Als een yearoffset wordt opgegeven, retourneert yeartodate de waarde True voor dezelfde periode in een ander jaar. Een negatieve yearoffset geeft een eerder jaar aan en een positieve verschuiving een toekomstig jaar. Het meest recente jaar tot heden wordt geretourneerd door yearoffset = -1 op te geven. Bij weglating, wordt 0 aangenomen.
firstmonth
Door een firstmonth tussen 1 en 12 op te geven (1 indien weggelaten), kunt u het begin van het jaar naar voren verplaatsen naar de eerste dag van een andere maand. Als u bijvoorbeeld wilt werken met een fiscaal jaar dat begint op 1 mei, geeft u firstmonth = 5 op. Een waarde van 1 zou aangeven dat een boekjaar begint op 1 januari en een waarde van 12 zou aangeven dat een boekjaar begint op 1 december.
todaydate
Door een todaydate op te geven (tijdstempel van de laatste scriptuitvoering indien weggelaten), kunt u de dag verschuiven die als bovengrens van de periode wordt gebruikt.
Wanneer gebruiken
De functie yeartodate() retourneert een booleaanse waarde. Dit type functie wordt doorgaans gebruikt als voorwaarde in een if-uitdrukking. Dit retourneert een aggregatie of berekening afhankelijk van of een geëvalueerde datum plaatsvond in het jaar tot en met de datum waarop de applicatie voor het laatst opnieuw is geladen.
De YearToDate()-functie kan bijvoorbeeld worden gebruikt om alle materieel te identificeren dat tot dusver in het huidige jaar is geproduceerd.
Voor de volgende voorbeelden is de laatste datum waarop het script werd geladen = 11/18/2011.
Voorbeelden van functies
Voorbeeld
Resultaat
yeartodate( '11/18/2010')
retourneert False
yeartodate( '02/01/2011')
retourneert True
yeartodate( '11/18/2011')
retourneert True
yeartodate( '11/19/2011')
retourneert False
yeartodate( '11/19/2011', 0, 1, '12/31/2011')
retourneert True
yeartodate( '11/18/2010', -1)
retourneert True
yeartodate( '11/18/2011', -1)
retourneert False
yeartodate( '04/30/2011', 0, 5)
retourneert False
yeartodate( '05/01/2011', 0, 5)
retourneert True
Landinstellingen
Tenzij anders aangegeven, wordt in de voorbeelden in dit onderwerp de volgende datumindeling gebruikt: MM/DD/JJJJ. De datumopmaak wordt opgegeven in de opdracht SET DateFormat in uw script voor het laden van gegevens. De standaard datumindeling is mogelijk anders op uw systeem vanwege landinstellingen en andere factoren. U kunt de indelingen in de voorbeelden wijzigen zodat deze aansluiten op uw behoeften. Of u kunt de indelingen in uw load-script wijzigen zodat ze overeenkomen met deze voorbeelden.
Standaard landinstellingen in apps zijn gebaseerd op de regionale systeeminstellingen van de computer of server waarop Qlik Sense is geïnstalleerd. Als de Qlik Sense-server die u gebruikt is ingesteld op Zweden, gebruikt de editor voor laden van gegevens de Zweedse landinstellingen voor datums, tijd en valuta. Deze landinstellingen voor indelingen zijn niet gerelateerd aan de taal die wordt weergegeven in de gebruikersinterface van Qlik Sense. Qlik Sense wordt weergegeven in dezelfde taal als de browser die u gebruikt.
Voorbeeld 1 – Basisvoorbeeld
Overzicht
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Het load-script bevat:
Een gegevensset met een set transacties tussen 2020 en 2022 die wordt geladen in een tabel met de naam Transactions.
Het datumveld opgegeven in de DateFormat-systeemvariabele (MM/DD/YYYY) indeling.
Het aanmaken van een veld, year_to_date, dat bepaalt welke transacties hebben plaatsgevonden in hetzelfde kalenderjaar als de laatste keer dat er is geladen.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
date
year_to_date
Resultatentabel
date
year_to_date
01/10/2020
0
02/28/2020
0
04/09/2020
0
04/16/2020
0
05/21/2020
0
08/14/2020
0
10/07/2020
0
12/05/2020
0
01/22/2021
0
02/03/2021
0
03/17/2021
0
04/23/2021
0
05/04/2021
0
06/30/2021
0
07/26/2021
0
12/27/2021
0
02/02/2022
-1
02/26/2022
-1
03/07/2022
-1
03/11/2022
-1
Het veld year_to_date wordt gemaakt in de voorafgaande load-instructie met behulp van de functie yeartodate() en geeft het veld date door als het argument van de functie.
Omdat er geen andere parameters worden doorgegeven in de functie, identificeert de yeartodate()-functie aanvankelijk de herlaaddatum en daarom de grenswaarden voor het huidige kalenderjaar (vanaf 1 januari) die een booleaanse waarde van TRUE retourneren.
Daarom zal elke transactie die plaatsvindt tussen 1 januari en 26 april, de datum van opnieuw laden, een booleaans resultaat van TRUE retourneren. Een transactie die vóór het begin van 2022 plaatsvindt, retourneert een booleaans resultaat voor FALSE.
Voorbeeld 2 – yearoffset
Overzicht
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Het load-script bevat:
Dezelfde gegevensset en het scenario uit het eerste voorbeeld.
Het aanmaken van een veld, two_years_prior, dat bepaalt welke transacties twee jaar voor het kalenderjaar tot heden hebben plaatsgevonden.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
date
two_years_prior
Resultatentabel
date
two_years_prior
01/10/2020
-1
02/28/2020
-1
04/09/2020
-1
04/16/2020
-1
05/21/2020
0
08/14/2020
0
10/07/2020
0
12/05/2020
0
01/22/2021
0
02/03/2021
0
03/17/2021
0
04/23/2021
0
05/04/2021
0
06/30/2021
0
07/26/2021
0
12/27/2021
0
02/02/2022
0
02/26/2022
0
03/07/2022
0
03/11/2022
0
Door -2 als het yearoffset-argument te gebruiken in de yeartodate()-functie, verschuift de functie de grenswaarden van het kalenderjaarsegment voor vergelijking met twee hele jaren. Aanvankelijk komt het jaarsegment overeen met de periode tussen 1 januari en 26 april 2022. Het yearoffset-argument verschuift dit segment vervolgens naar twee jaar eerder. De datumgrenzen vallen tussen 1 januari en 26 april.
Daarom zal elke transactie die plaatsvindt tussen 1 januari en 26 april 2020 een booleaans resultaat van TRUE retourneren. Iedere transactie die vóór of na dit segment valt, retourneert FALSE.
Voorbeeld 3 – firstmonth
Overzicht
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Het load-script bevat:
Dezelfde gegevensset en het scenario uit het eerste voorbeeld.
Het aanmaken van een veld, year_to_date, dat bepaalt welke transacties hebben plaatsgevonden in hetzelfde kalenderjaar als de laatste keer dat er is geladen.
In dit voorbeeld stellen de het begin van het boekjaar in op 1 juli.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
date
year_to_date
Resultatentabel
date
year_to_date
01/10/2020
0
02/28/2020
0
04/09/2020
0
04/16/2020
0
05/21/2020
0
08/14/2020
0
10/07/2020
0
12/05/2020
0
01/22/2021
0
02/03/2021
0
03/17/2021
0
04/23/2021
0
05/04/2021
0
06/30/2021
0
07/26/2021
-1
12/27/2021
-1
02/02/2022
-1
02/26/2022
-1
03/07/2022
-1
03/11/2022
-1
Omdat in deze instantie het firstmonth-argument 7 wordt gebruikt in de yeartodate()-functie, stelt het de eerste dag van het jaar in op 1 juli en de laatste dag van het jaar op 30 juni.
Daarom zal elke transactie die plaatsvindt tussen 1 juli 2021 en 26 april 2022, de datum van opnieuw laden, een booleaans resultaat voor TRUE retourneren. Een transactie die vóór 1 juli 2021 plaatsvindt, retourneert een booleaans resultaat voor FALSE.
Voorbeeld 4 – todaydate
Overzicht
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Het load-script bevat:
Dezelfde gegevensset en het scenario uit het eerste voorbeeld.
Het aanmaken van een veld, year_to_date, dat bepaalt welke transacties hebben plaatsgevonden in hetzelfde kalenderjaar als de laatste keer dat er is geladen.
Maar in dit voorbeeld moeten we alle transacties identificeren die plaatsvonden in het kalenderjaar tot en met 1 maart 2022.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
date
year_to_date
Resultatentabel
date
year_to_date
01/10/2020
0
02/28/2020
0
04/09/2020
0
04/16/2020
0
05/21/2020
0
08/14/2020
0
10/07/2020
0
12/05/2020
0
01/22/2021
0
02/03/2021
0
03/17/2021
0
04/23/2021
0
05/04/2021
0
06/30/2021
0
07/26/2021
0
12/27/2021
0
02/02/2022
-1
02/26/2022
-1
03/07/2022
0
03/11/2022
0
Omdat het todaydate-argument van 03/01/2022 in dit geval wordt gebruikt in de yeartodate()-functie, stelt het de eindgrens van het kalenderjaarsegment waarmee wordt vergeleken in op 1 maart 2022. Het is cruciaal om de firstmonth-parameter (tussen 1 en 12) in te voeren omdat de functie anders geen resultaten oplevert.
Daarom zal elke transactie die plaatsvindt tussen 1 januari 2022 en 1 maart 2022, de parameter todaydate, een booleaans resultaat voor TRUEretourneren. Een transactie die vóór 1 januari 2022 of na 1 maart 2022 plaatsvindt, retourneert een booleaans resultaat van FALSE.
Voorbeeld 5 – Diagramobjectvoorbeeld
Overzicht
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Het load-script bevat dezelfde gegevensset en scenario als het eerste voorbeeld.
In dit voorbeeld wordt de ongewijzigde gegevensset echter in de applicatie geladen. De berekening die bepaalt welke transacties plaatsvonden in het kalenderjaar tot de datum van de laatste keer dat er is geladen, wordt gemaakt als een meting in een diagramobject van de applicatie.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg dit veld toe als dimensie: date.
Voeg de volgende meting toe:
=yeartodate(date)
Resultatentabel
date
=yeartodate(date)
01/10/2020
0
02/28/2020
0
04/09/2020
0
04/16/2020
0
05/21/2020
0
08/14/2020
0
10/07/2020
0
12/05/2020
0
01/22/2021
0
02/03/2021
0
03/17/2021
0
04/23/2021
0
05/04/2021
0
06/30/2021
0
07/26/2021
0
12/27/2021
0
02/02/2022
-1
02/26/2022
-1
03/07/2022
-1
03/11/2022
-1
De meting year_to_date wordt gemaakt in het diagramobject met behulp van de yeartodate()-functie en geeft het veld date door als het argument van de functie.
Omdat er geen andere parameters worden doorgegeven in de functie, identificeert de yeartodate()-functie aanvankelijk de herlaaddatum en daarom de grenswaarden voor het huidige kalenderjaar (vanaf 1 januari) die een booleaanse waarde van TRUE retourneren.
Elke transactie die plaatsvindt tussen 1 januari en 26 april, de datum van opnieuw laden, zal een booleaans resultaat voor TRUE retourneren. Een transactie die vóór het begin van 2022 plaatsvindt, retourneert een booleaans resultaat voor FALSE.
Voorbeeld 6 – Scenario
Overzicht
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Het load-script bevat:
Een gegevensset met een set transacties tussen 2020 en 2022 die wordt geladen in een tabel met de naam Transactions.
Het datumveld opgegeven in de DateFormat-systeemvariabele (MM/DD/YYYY) indeling.
De eindgebruiker wil een KPI-object dat de totale verkoop voor de overeenkomstige periode in 2021 weergeeft als het huidige jaar tot heden als de datum van de laatste keer dat er is geladen.
Maak de volgende aggregatiemeting om de totale verkoop te berekenen:
=sum(if(yeartodate(date,-1),amount,0))
Stel de Getalnotatie van de meting in op Geld.
De yeartodate()-functie retourneert een booleaanse waarde bij het evalueren van de productiedatums van elke transactie-id. Omdat er op 16 juni 2022 opnieuw is geladen, segmenteert de yeartodate-functie de periode van het jaar tussen 01/01/2022 en 06/16/2022. Maar omdat er een period_no-waarde van -1 in de functie is gebruikt, worden deze grenzen naar het vorige jaar verschoven. Daarom retourneert de yeartodate()-functie voor iedere transactie die tussen 01/01/2021 en 06/16/2021 plaatsvindt, een booleaanse waarde van TRUE en telt hij het bedrag op.
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!