In Qlik Sense, il valore booleano vero è rappresentato da -1 e il valore falso è rappresentato da 0.
La funzione inweek() utilizza l'argomento base_date per identificare in quale periodo di sette giorni cade la data. Il giorno iniziale della settimana si basa sulla variabile di sistema FirstWeekDay. Tuttavia, è possibile anche modificare il primo giorno della settimana utilizzando l'argomento first_week_day nella funzione inweek().
Dopo aver definito la settimana selezionata, la funzione restituisce risultati booleani quando si confrontano i valori delle date prescritte con quel segmento di settimana.
Casi di utilizzo
La funzione inweek() restituisce un risultato booleano. In genere, questo tipo di funzione viene utilizzato come condizione in un file if expression. La funzione inweek() restituisce un'aggregazione o un calcolo che dipende dal fatto che una data valutata si sia verificata nella settimana con la data selezionata dell'argomento base_date.
Ad esempio, la funzione inweek() può essere utilizzata per identificare tutte le apparecchiature prodotte in una determinata settimana.
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.
valori first_week_day
Giorno
Valore
Lunedì
0
Martedì
1
Mercoledì
2
Giovedì
3
Venerdì
4
Sabato
5
Domenica
6
Impostazioni locali
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. Per ulteriori informazioni, vedere Modifica delle impostazioni internazionali per la creazione di app e script.
Le impostazioni regionali predefinite nelle app si basano sul profilo utente. Queste impostazioni di formato regionale non riguardano la lingua visualizzata nell'interfaccia utente Qlik Cloud. Qlik Cloud verrà visualizzato nella stessa lingua del browser utilizzato.
Restituisce FALSE perché first_week_day è specificato come 3 (giovedì), il che rende il 12/01/2006 il primo giorno della settimana successiva a quella contenente il giorno 09/01/2006.
I seguenti argomenti possono aiutarti a lavorare con questa funzione:
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
date
week_day
in_week
Tabella dei risultati
data
week_day
in_week
01/02/2022
Sun
0
01/05/2022
Wed
0
01/06/2022
Thu
0
01/08/2022
Sat
0
01/09/2022
Sun
-1
01/10/2022
Mon
-1
01/11/2022
Tue
-1
01/12/2022
Wed
-1
01/13/2022
Thu
-1
01/14/2022
Fri
-1
01/15/2022
Sat
-1
01/16/2022
Sun
0
01/17/2022
Mon
0
01/18/2022
Tue
0
01/26/2022
Wed
0
01/27/2022
Thu
0
01/28/2022
Fri
0
01/29/2022
Sat
0
01/30/2022
Sun
0
01/31/2022
Mon
0
Il campo 'in_week' viene creato nell'istruzione di caricamento precedente utilizzando la funzione inweek(). Il primo argomento identifica il campo da valutare. Il secondo argomento è una data codificata, il 14 gennaio, che è il base_date. L'argomento base_date collabora con la variabile di sistema FirstWeekDay per identificare la settimana del comparatore. Un period_no di 0 — significa che la funzione non sta confrontando le settimane precedenti o successive alla settimana segmentata – è l'argomento finale.
La variabile di sistema determina che le settimane iniziano di domenica e terminano di sabato.FirstWeekDay Pertanto, gennaio viene suddiviso in settimane secondo lo schema seguente, con le date comprese tra il 9 e il 15 gennaio che forniscono il periodo valido per il calcolo inweek():
Qualsiasi transazione avvenuta tra il 9 e il 15 gennaio restituisce il risultato booleano di TRUE.
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:
Lo stesso set di dati contenente un insieme di transazioni per il 2022 viene caricato in una tabella denominata 'Transactions'.
La variabile di sistema FirstWeekDay che è impostata su 6 (domenica).
Un'istruzione di caricamento precedente che contiene i seguenti elementi:
La funzione inweek (), impostata come campo 'prev_week' che determina quali transazioni hanno avuto luogo in un'intera settimana prima della settimana del 14 gennaio 2022.
La funzione weekday(), impostata come campo 'week_day' che 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
Tabella dei risultati
data
week_day
prev_week
01/02/2022
Sun
-1
01/05/2022
Wed
-1
01/06/2022
Thu
-1
01/08/2022
Sat
-1
01/09/2022
Sun
0
01/10/2022
Mon
0
01/11/2022
Tue
0
01/12/2022
Wed
0
01/13/2022
Thu
0
01/14/2022
Fri
0
01/15/2022
Sat
0
01/16/2022
Sun
0
01/17/2022
Mon
0
01/18/2022
Tue
0
01/26/2022
Wed
0
01/27/2022
Thu
0
01/28/2022
Fri
0
01/29/2022
Sat
0
01/30/2022
Sun
0
01/31/2022
Mon
0
L'utilizzo di -1 come argomento period_no nella funzione inweek() sposta i confini della settimana del comparatore indietro di sette giorni interi. Con un period_no di 0 la settimana sarebbe compresa tra il 9 e il 15 gennaio. Eppure in questo esempio, il period_no di -1 sposta il confine iniziale e finale di questo segmento indietro di una settimana. I limiti di data diventano dal 2 gennaio all'8 gennaio.
Pertanto, qualsiasi transazione che si verifichi tra il 2 gennaio e l'8 gennaio restituirà il risultato booleano di 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:
Lo stesso set di dati contenente un insieme di transazioni per il 2022 viene caricato in una tabella denominata 'Transactions'.
La variabile di sistema FirstWeekDay che è impostata su 6 (domenica).
Un'istruzione di caricamento precedente che contiene i seguenti elementi:
La funzione inweek(), impostata come campo 'in_week' che determina quali transazioni hanno avuto luogo nella settimana del 14 gennaio 2022.
La funzione weekday(), impostata come campo 'week_day' che 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
in_week
Tabella dei risultati
data
week_day
in_week
01/02/2022
Sun
0
01/05/2022
Wed
0
01/06/2022
Thu
0
01/08/2022
Sat
0
01/09/2022
Sun
0
01/10/2022
Mon
-1
01/11/2022
Tue
-1
01/12/2022
Wed
-1
01/13/2022
Thu
-1
01/14/2022
Fri
-1
01/15/2022
Sat
-1
01/16/2022
Sun
-1
01/17/2022
Mon
0
01/18/2022
Tue
0
01/26/2022
Wed
0
01/27/2022
Thu
0
01/28/2022
Fri
0
01/29/2022
Sat
0
01/30/2022
Sun
0
01/31/2022
Mon
0
Utilizzando 0 come argomento first_week_day nella funzione inweek() si sostituisce la variabile di sistema FirstWeekDay e si imposta lunedì come primo giorno della settimana.
Pertanto, qualsiasi transazione che si verifichi tra il 10 e il 16 gennaio restituirà un risultato booleano di TRUE.
Esempio 4 - Esempio di oggetto grafico
Panoramica
Vengono utilizzati lo stesso set di dati e lo stesso scenario del primo esempio.
Tuttavia, in questo esempio, il set di dati è invariato e viene caricato nell'applicazione. Creare una misura nella tabella dei risultati per determinare quali transazioni sono state effettuate nella settimana del 14 gennaio 2022.
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere questo campo come dimensione:
date
Creare le seguenti misure:
=inweek (date,'01/14/2022',0), per calcolare se le transazioni sono avvenute nella stessa settimana del 14 gennaio.
=weekday(date), per mostrare quale giorno della settimana corrisponde a ciascuna data.
Tabella dei risultati
data
week_day
=inweek (date,'01/14/2022',0)
01/02/2022
Sun
0
01/05/2022
Wed
0
01/06/2022
Thu
0
01/08/2022
Sat
0
01/09/2022
Sun
-1
01/10/2022
Mon
-1
01/11/2022
Tue
-1
01/12/2022
Wed
-1
01/13/2022
Thu
-1
01/14/2022
Fri
-1
01/15/2022
Sat
-1
01/16/2022
Sun
0
01/17/2022
Mon
0
01/18/2022
Tue
0
01/26/2022
Wed
0
01/27/2022
Thu
0
01/28/2022
Fri
0
01/29/2022
Sat
0
01/30/2022
Sun
0
01/31/2022
Mon
0
La misura 'in_week' viene creata nel grafico utilizzando la funzione inweek(). Il primo argomento identifica il campo da valutare. Il secondo argomento è una data codificata, il 14 gennaio, che è il base_date. L'argomento base_date collabora con la variabile di sistema FirstWeekDay per identificare la settimana del comparatore. Un period_no di 0 rappresenta l'argomento finale.
La variabile di sistema determina che le settimane iniziano di domenica e terminano di sabato.FirstWeekDay Pertanto, gennaio viene suddiviso in settimane secondo lo schema seguente, con le date comprese tra il 9 e il 15 gennaio che forniscono il periodo valido per il calcolo inweek():
Qualsiasi transazione avvenuta tra il 9 e il 15 gennaio restituisce il risultato booleano di TRUE.
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'.
La tabella contiene i seguenti campi:
ID prodotto
tipo di prodotto
data di produzione
prezzo di costo
Si è determinato che, a causa di un errore delle apparecchiature, i prodotti fabbricati nella settimana del 12 gennaio erano difettosi. L'utente finale vorrebbe un grafico che visualizzi, per settimana, lo stato dei prodotti fabbricati "difettosi" o "non difettosi" e il costo dei prodotti fabbricati in quella settimana.
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere questo campo come dimensione:
=weekname(manufacture_date)
Creare le seguenti misure:
=if(only(inweek(manufacture_date,makedate(2022,01,12),0)),'Defective','Faultless'), per identificare quali prodotti sono difettosi e quali non lo sono utilizzando la funzione inweek().
=sum(cost_price), per mostrare la somma dei costi di ciascun prodotto.
Procedere come indicato di seguito:
Impostare la misura Formattazione numero su Denaro.
La funzione inweek() restituisce un valore booleano quando valuta le date di produzione di ciascun prodotto. Per qualsiasi prodotto fabbricato nella settimana del 12 gennaio, la funzione inweek() restituisce un valore booleano TRUE e contrassegna i prodotti come "difettosi". Per tutti i prodotti che restituiscono un valore pari a FALSE, e che quindi non sono stati prodotti in quella settimana, vengono contrassegnati come "non difettosi".
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!