inweektodate - funzione dello script e del grafico
Questa funzione restituisce True se timestamp ricade all'interno della parte della settimana contenente base_date fino a includere l'ultimo millisecondo di base_date.
In Qlik Sense, il valore booleano vero è rappresentato da -1 e il valore falso è rappresentato da 0.
La funzione inweektodate() utilizza il parametro base_date per identificare una data limite massima di un segmento settimanale, nonché la data corrispondente per l'inizio della settimana, che si basa sulla variabile di sistema FirstWeekDay (o sul parametro first_week_day definito dall'utente ). Una volta che questo segmento di settimana viene definito, la funzione restituisce un risultato booleano quando si confrontano i valori di data prescritti con quel segmento.
Casi di utilizzo
La funzione inweektodate() restituisce un risultato booleano. In genere, questo tipo di funzione viene utilizzato come condizione in un'espressione if. Questa restituisce un'aggregazione o un calcolo che dipende dal fatto che una data valutata si sia verificata nella settimana in questione fino a includere una data specifica.
Ad esempio, la funzione inweektodate() può essere utilizzata per calcolare tutte le vendite effettuate durante una settimana specificata fino a una data particolare.
Argomenti
Argomento
Descrizione
timestamp
La data da confrontare con base_date.
base_date
La data utilizzata per valutare la settimana.
period_no
La settimana può essere differita mediante period_no. period_no è un numero intero, in cui il valore 0 indica la settimana che contiene base_date. I valori negativi di period_no indicano le settimane precedenti, mentre i valori positivi indicano le settimane successive.
first_week_day
Per impostazione predefinita, il primo giorno della settimana è domenica (come determinato dalla variabile di sistema FirstWeekDay), a partire dalla mezzanotte tra sabato e domenica. Il parametro first_week_day sostituisce la variabile FirstWeekDay. Per indicare un altro giorno per l'inizio della settimana, specificare un contrassegno con valore da 0 a 6.
Per una settimana che inizia il lunedì e termina la domenica, usare il contrassegno 0 per lunedì, 1 per martedì, 2 per mercoledì, 3 per giovedì, 4 per venerdì, 5 per sabato e 6 per domenica.
Esempi di funzioni
Esempio
Interazione
inweektodate('01/12/2006', '01/12/2006', 0)
Restituisce TRUE.
inweektodate('01/12/2006', '01/11/2006', 0)
Restituisce FALSE.
inweektodate('01/12/2006', '01/18/2006', -1)
Restituisce FALSE. Perché period_no è specificato come -1, la data effettiva con cui viene misurato timestamp è 01/11/2006.
inweektodate('01/11/2006', '01/12/2006', 0, 3 )
Restituisce FALSE, poiché il valore first_week_day è specificato come 3 (giovedì), rendendo 01/12/2006 il primo giorno della settimana successiva alla settimana che include 01/12/2006.
I seguenti argomenti possono aiutarti a lavorare con questa funzione:
Se non diversamente specificato, gli esempi di questo argomento utilizzano il seguente formato di data: MM/GG/AAAA. Il formato della data viene specificato nell'istruzione SET DateFormat nello script di caricamento dei dati. La formattazione predefinita della data potrebbe essere diversa nel proprio sistema, a causa delle impostazioni regionali e di altri fattori. È possibile modificare i formati degli esempi seguenti in base alle proprie esigenze. In alternativa, è possibile modificare i formati nel proprio script di caricamento per adattarli a questi esempi.
Le impostazioni regionali predefinite delle app si basano sulle impostazioni regionali del sistema del computer o del server in cui risulta installato Qlik Sense. Se il server Qlik Sense a cui si accede è impostato in Svezia, l'editor caricamento dati utilizzerà le impostazioni regionali svedesi per date, ora e valuta. Queste impostazioni di formato regionale non riguardano la lingua visualizzata nell'interfaccia utente Qlik Sense. Qlik Sense verrà visualizzato nella stessa lingua del browser utilizzato.
Esempio 1 - Nessun argomento aggiuntivo
Panoramica
Aprire l'editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.
Lo script di caricamento contiene:
Un set di dati contenente un insieme di transazioni per il mese di gennaio 2022, caricato in una tabella denominata Transactions.
Il campo dati fornito nel formato TimestampFormat='M/D/YYYY h:mm:ss[.fff]'.
La creazione di un campo, in_week_to_date, che determina quali transazioni sono avvenute nella settimana fino al 14 gennaio 2022.
La creazione di un campo aggiuntivo, denominato weekday, utilizzando la funzione weekday(). Questo nuovo campo viene creato per mostrare quale giorno della settimana corrisponde a ciascuna data.
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
date
week_day
in_week_to_date
Tabella dei risultati
data
week_day
in_week_to_date
2022-01-02 12:22:06
Sun
0
2022-01-05 01:02:30
Wed
0
2022-01-06 15:36:20
Thu
0
2022-01-08 10:58:35
Sat
0
2022-01-09 08:53:32
Sun
-1
2022-01-10 21:13:01
Mon
-1
2022-01-11 00:57:13
Tue
-1
2022-01-12 09:26:02
Wed
-1
2022-01-13 15:05:09
Thu
-1
2022-01-14 18:44:57
Fri
-1
2022-01-15 06:10:46
Sat
0
2022-01-16 06:39:27
Sun
0
2022-01-17 10:44:16
Mon
0
2022-01-18 18:48:17
Tue
0
2022-01-26 04:36:03
Wed
0
2022-01-27 08:07:49
Thu
0
2022-01-28 12:24:29
Fri
0
2022-01-30 11:56:56
Sun
0
2022-01-30 14:40:19
Sun
0
2022-01-31 05:28:21
Mon
0
Il campo in_week_to_date viene creato nell'istruzione caricamento precedente utilizzando la funzione inweektodate(). Il primo argomento fornito identifica il campo da valutare. Il secondo argomento è una data codificata per il 14 gennaio, che è il valore base_date che identifica la settimana da segmentare e definisce il limite finale di quel segmento. Un valore period_no uguale a 0 è l'argomento finale, il che significa che la funzione non confronta le settimane precedenti o successive alla settimana segmentata.
La variabile di sistema determina che le settimane iniziano di domenica e terminano di sabato.FirstWeekDay Pertanto, gennaio viene suddiviso in settimane secondo il diagramma seguente, con le date comprese tra il 9 e il 14 gennaio che forniscono il periodo valido per il calcolo inweekdodate():
Qualsiasi transazione avvenuta tra il 9 e il 14 gennaio restituisce il risultato booleano TRUE. Le transazioni prima e dopo quelle date restituiscono il risultato booleano FALSE.
Esempio 2 – period_no
Panoramica
Aprire l'editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.
Lo script di caricamento contiene:
Vengono utilizzati lo stesso set di dati e lo stesso scenario del primo esempio.
La creazione di un campo, prev_week_to_date, che determina quali transazioni sono avvenute nella settimana precedente al segmento della settimana che termina il 14 gennaio 2022.
La creazione di un campo aggiuntivo, denominato weekday, utilizzando la funzione weekday(). Questo mostra quale giorno della settimana corrisponde a ciascuna data.
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
date
week_day
prev_week_to_date
Tabella dei risultati
data
week_day
prev_week_to_date
2022-01-02 12:22:06
Sun
-1
2022-01-05 01:02:30
Wed
-1
2022-01-06 15:36:20
Thu
-1
2022-01-08 10:58:35
Sat
0
2022-01-09 08:53:32
Sun
0
2022-01-10 21:13:01
Mon
0
2022-01-11 00:57:13
Tue
0
2022-01-12 09:26:02
Wed
0
2022-01-13 15:05:09
Thu
0
2022-01-14 18:44:57
Fri
0
2022-01-15 06:10:46
Sat
0
2022-01-16 06:39:27
Sun
0
2022-01-17 10:44:16
Mon
0
2022-01-18 18:48:17
Tue
0
2022-01-26 04:36:03
Wed
0
2022-01-27 08:07:49
Thu
0
2022-01-28 12:24:29
Fri
0
2022-01-30 11:56:56
Sun
0
2022-01-30 14:40:19
Sun
0
2022-01-31 05:28:21
Mon
0
Il valore period_no di -1 indica che la funzione inweektodate () confronta il segmento del trimestre di input con la settimana precedente. Il segmento della settimana inizialmente corrisponde a una data compresa tra il 9 e il 14 gennaio. Il valore period_no quindi sposta sia il limite di inizio che di fine di questo segmento a una settimana prima, facendo sì che i limiti della data siano definiti tra il 2 e il 7 gennaio.
Pertanto, qualsiasi transazione che si verifichi tra il 2 e l'8 gennaio (non includendo lo stesso 8 gennaio) restituirà il risultato booleano TRUE.
Esempio 3 – first_week_day
Panoramica
Aprire l'editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.
Lo script di caricamento contiene:
Vengono utilizzati lo stesso set di dati e lo stesso scenario del primo esempio.
La creazione di un campo, in_week_to_date, che determina quali transazioni sono avvenute nella settimana fino al 14 gennaio 2022.
La creazione di un campo aggiuntivo, denominato weekday, utilizzando la funzione weekday(). Questo mostra quale giorno della settimana corrisponde a ciascuna data.
In questo esempio viene utilizzato il domenica come primo giorno della settimana.
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
date
week_day
in_week_to_date
Tabella dei risultati
data
week_day
in_week_to_date
2022-01-02 12:22:06
Sun
0
2022-01-05 01:02:30
Wed
0
2022-01-06 15:36:20
Thu
0
2022-01-08 10:58:35
Sat
0
2022-01-09 08:53:32
Sun
0
2022-01-10 21:13:01
Mon
-1
2022-01-11 00:57:13
Tue
-1
2022-01-12 09:26:02
Wed
-1
2022-01-13 15:05:09
Thu
-1
2022-01-14 18:44:57
Fri
-1
2022-01-15 06:10:46
Sat
0
2022-01-16 06:39:27
Sun
0
2022-01-17 10:44:16
Mon
0
2022-01-18 18:48:17
Tue
0
2022-01-26 04:36:03
Wed
0
2022-01-27 08:07:49
Thu
0
2022-01-28 12:24:29
Fri
0
2022-01-30 11:56:56
Sun
0
2022-01-30 14:40:19
Sun
0
2022-01-31 05:28:21
Mon
0
Utilizzando 0 come argomento first_week_day nella funzione inweektodate(), l'argomento della funzione sostituisce la variabile di sistema FirstWeekDay e imposta il lunedì come primo giorno della settimana.
Pertanto, qualsiasi transazione che si verifichi tra il 10 e 15 gennaio restituirà un risultato booleano TRUE, mentre le transazioni con una data che non rientra in questi limiti restituiranno il valore FALSE.
Esempio 4 - Esempio di oggetto grafico
Panoramica
Aprire l'Editor di caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.
Lo script di caricamento contiene lo stesso set di dati e lo stesso scenario del primo esempio. Tuttavia, in questo esempio, il set di dati invariato viene caricato nell'applicazione. Il calcolo che determina quali transazioni sono avvenute nella settimana fino al 14 gennaio viene creato come misura in un oggetto grafico.
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere questo campo come dimensione: date.
Per calcolare se le transazioni sono avvenute nella stessa settimana fino al 14 gennaio, creare la misura seguente:
=inweektodate(date,'01/14/2022',0)
Per mostrare quale giorno della settimana corrisponde a ciascuna data, creare una misura aggiuntiva:
=weekday(date)
Tabella dei risultati
data
week_day
in_week_to_date
2022-01-02 12:22:06
Sun
0
2022-01-05 01:02:30
Wed
0
2022-01-06 15:36:20
Thu
0
2022-01-08 10:58:35
Sat
0
2022-01-09 08:53:32
Sun
-1
2022-01-10 21:13:01
Mon
-1
2022-01-11 00:57:13
Tue
-1
2022-01-12 09:26:02
Wed
-1
2022-01-13 15:05:09
Thu
-1
2022-01-14 18:44:57
Fri
-1
2022-01-15 06:10:46
Sat
0
2022-01-16 06:39:27
Sun
0
2022-01-17 10:44:16
Mon
0
2022-01-18 18:48:17
Tue
0
2022-01-26 04:36:03
Wed
0
2022-01-27 08:07:49
Thu
0
2022-01-28 12:24:29
Fri
0
2022-01-30 11:56:56
Sun
0
2022-01-30 14:40:19
Sun
0
2022-01-31 05:28:21
Mon
0
Il campo in_week_to_date viene creato come misura nell'oggetto grafico utilizzando la funzione inweektodate(). Il primo argomento fornito identifica il campo da valutare. Il secondo argomento è una data codificata per il 14 gennaio, che è il valore base_date che identifica la settimana da segmentare e definisce il limite finale di quel segmento. Un valore period_no uguale a 0 è l'argomento finale, il che significa che la funzione non confronta le settimane precedenti o successive alla settimana segmentata.
La variabile di sistema determina che le settimane iniziano di domenica e terminano di sabato.FirstWeekDay Pertanto, gennaio viene suddiviso in settimane secondo il diagramma seguente, con le date comprese tra il 9 e il 14 gennaio che forniscono il periodo valido per il calcolo inweekdodate():
Qualsiasi transazione avvenuta tra il 9 e il 14 gennaio restituisce il risultato booleano TRUE. Le transazioni prima e dopo quelle date restituiscono il risultato booleano FALSE.
Esempio 5 – Scenario
Panoramica
Aprire l'editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.
Lo script di caricamento contiene:
Un set di dati che viene caricato in una tabella chiamata Products.
Informazioni relative all'ID prodotto, alla data di produzione e al prezzo di costo.
Si è determinato che, a causa di un errore delle apparecchiature, i prodotti fabbricati nella settimana del 12 gennaio erano difettosi. Il problema è stato risolto il 13 gennaio. L'utente finale desidera un oggetto grafico che visualizzi, per settimana, se i prodotti fabbricati sono "difettosi" o "senza difetti" e il costo dei prodotti fabbricati quella settimana.
La funzione inweektodate() restituisce un valore booleano quando valuta le date di produzione di ciascun prodotto. Per coloro che restituiscono il valore booleano TRUE, contrassegna i prodotti come 'Defective'. Per qualsiasi prodotto che restituisce il valore FALSE, e quindi non realizzato nella settimana fino al 12 gennaio, contrassegna i prodotti come ‘Faultless’.
Hai trovato utile questa pagina?
Se riscontri problemi con questa pagina o con il suo contenuto – un errore di battitura, un passaggio mancante o un errore tecnico – facci sapere come possiamo migliorare!