No Qlik Sense, o valor booleano “true” é representado por -1, e o valor falso é representado por 0.
A função inweektodate() usa o parâmetro base_date para identificar uma data limite máxima de um segmento de semana, bem como sua data correspondente para o início da semana, que se baseia na variável do sistema FirstWeekDay (ou no parâmetro first_week_day definido pelo usuário). Assim que o segmento dessa semana tiver sido definido, a função retornará resultados booleanos ao comparar os valores de data prescritos com esse segmento.
Quando usar
A função inweektodate() retorna um resultado booleano. Normalmente, esse tipo de função será usado como uma condição em uma expressão if. Isso retornará uma agregação ou cálculo, dependendo de se uma data avaliada ocorreu durante a semana em questão, até e incluindo uma data específica.
Por exemplo, a função inweektodate() pode ser usada para calcular todas as vendas feitas durante uma semana especificada até uma determinada data.
Argumentos
Argumento
Descrição
timestamp
A data que você deseja comparar com base_date.
base_date
Data que é usada para avaliar a semana.
period_no
A semana pode ser deslocada por period_no. period_no é um inteiro, em que o valor 0 indica a semana que contém base_date. Os valores negativos em period_no indicam semanas precedentes e os valores positivos indicam semanas subsequentes.
first_week_day
Por padrão, o primeiro dia da semana é domingo (conforme determinado pela variável de sistema FirstWeekDay), começando à meia-noite entre sábado e domingo. O parâmetro first_week_day substitui a variável FirstWeekDay. Para indicar a semana que começa em outro dia, especifique um sinalizador entre 0 e 6.
Para uma semana começando na segunda-feira e terminando no domingo, use um sinalizador de 0 para segunda-feira, 1 para terça-feira, 2 para quarta-feira, 3 para quinta-feira, 4 para sexta-feira, 5 para sábado e 6 para domingo.
Exemplos de funções
Exemplo
Interação
inweektodate('01/12/2006', '01/12/2006', 0)
Returna TRUE.
inweektodate('01/12/2006', '01/11/2006', 0)
Retorna FALSE.
inweektodate('01/12/2006', '01/18/2006', -1)
Returna FALSE. Como period_no é especificado como -1, os dados efetivos com base nos quais timestamp é medido são 01/11/2006.
inweektodate('01/11/2006', '01/12/2006', 0, 3 )
Retorna FALSE, já que first_week_day está especificado como 3 (quinta-feira), o que torna 01/12/2006 o primeiro dia da semana seguinte à semana que contém 01/12/2006.
Estes tópicos podem ajudar você a trabalhar com essa função:
A menos que especificado de outra forma, os exemplos neste tópico usam o seguinte formato de data: MM/DD/AAAA. O formato de data é especificado na instrução SET DateFormat no seu script de carregamento de dados. A formatação de data padrão pode ser diferente no seu sistema devido às suas configurações regionais e outros fatores. Você pode alterar os formatos nos exemplos abaixo para atender às suas necessidades. Ou pode alterar os formatos no seu script de carregamento para corresponder a esses exemplos. Para obter mais informações, consulte Modificando configurações regionais para aplicativos e scripts.
As configurações regionais padrão nos aplicativos são baseadas no perfil do usuário. Essas configurações de formato regional não estão relacionadas ao idioma exibido na interface do usuário do Qlik Cloud. O Qlik Cloud será exibido no mesmo idioma do navegador que você está usando.
Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova guia.
O script de carregamento contém:
Um conjunto de dados contendo um conjunto de transações para o mês de janeiro de 2022, que é carregado em uma tabela denominada "Transactions".
O campo de dados fornecido no formato TimestampFormat='M/D/YYYY h:mm:ss[.fff]'.
A criação de um campo, in_week_to_date, que determina quais transações ocorreram na semana até 14 de janeiro de 2022.
A criação de um campo adicional, chamado weekday, usando a função weekday(). Esse novo campo é criado para mostrar qual dia da semana corresponde a cada data.
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
date
week_day
in_week_to_date
Tabela de resultados
date
week_day
in_week_to_date
2022-01-02 12:22:06
Dom
0
2022-01-05 01:02:30
Qua
0
2022-01-06 15:36:20
Qui
0
2022-01-08 10:58:35
Sáb
0
2022-01-09 08:53:32
Dom
-1
2022-01-10 21:13:01
Seg
-1
2022-01-11 00:57:13
Ter
-1
2022-01-12 09:26:02
Qua
-1
2022-01-13 15:05:09
Qui
-1
2022-01-14 18:44:57
Sex
-1
2022-01-15 06:10:46
Sáb
0
2022-01-16 06:39:27
Dom
0
2022-01-17 10:44:16
Seg
0
2022-01-18 18:48:17
Ter
0
2022-01-26 04:36:03
Qua
0
2022-01-27 08:07:49
Qui
0
2022-01-28 12:24:29
Sex
0
2022-01-30 11:56:56
Dom
0
2022-01-30 14:40:19
Dom
0
2022-01-31 05:28:21
Seg
0
O campo in_week_to_date é criado na instrução de carregamento anterior usando a função inweektodate(). O primeiro argumento fornecido identifica qual campo está sendo avaliado. O segundo argumento é uma data codificada para 14 de janeiro, que é a base_date que identifica qual semana segmentar e que define o limite final desse segmento. Um period_no de 0 é o argumento final, o que significa que a função não está comparando semanas anteriores ou posteriores à semana segmentada.
A variável de sistema FirstWeekDay determina que as semanas começam em um domingo e terminam em um sábado. Portanto, janeiro seria dividido em semanas de acordo com o diagrama abaixo, com as datas entre 9 e 14 de janeiro fornecendo o período válido para o cálculo de inweekdodate():
Qualquer transação que ocorra entre 9 e 14 de janeiro retorna um resultado booleano de TRUE. As transações antes e depois das datas retornam um resultado booleano de FALSE.
Exemplo 2: period_no
Visão geral
Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova guia.
O script de carregamento contém:
O mesmo conjunto de dados e cenário do primeiro exemplo.
A criação de um campo, prev_week_to_date, que determina quais transações ocorreram uma semana inteira antes do término do segmento de semana em 14 de janeiro de 2022.
A criação de um campo adicional, chamado weekday, usando a função weekday(). Ele é criado para mostrar qual dia da semana corresponde a cada data.
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
date
week_day
prev_week_to_date
Tabela de resultados
date
week_day
prev_week_to_date
2022-01-02 12:22:06
Dom
-1
2022-01-05 01:02:30
Qua
-1
2022-01-06 15:36:20
Qui
-1
2022-01-08 10:58:35
Sáb
0
2022-01-09 08:53:32
Dom
0
2022-01-10 21:13:01
Seg
0
2022-01-11 00:57:13
Ter
0
2022-01-12 09:26:02
Qua
0
2022-01-13 15:05:09
Qui
0
2022-01-14 18:44:57
Sex
0
2022-01-15 06:10:46
Sáb
0
2022-01-16 06:39:27
Dom
0
2022-01-17 10:44:16
Seg
0
2022-01-18 18:48:17
Ter
0
2022-01-26 04:36:03
Qua
0
2022-01-27 08:07:49
Qui
0
2022-01-28 12:24:29
Sex
0
2022-01-30 11:56:56
Dom
0
2022-01-30 14:40:19
Dom
0
2022-01-31 05:28:21
Seg
0
Um valor de period_no -1 indica que a função inweektodate () compara o segmento de trimestre de entrada com a semana anterior. O segmento de semana equivale inicialmente a um período entre 9 e 14 de janeiro. period_no então desloca o limite inicial e final desse segmento para uma semana antes, fazendo com que os limites de data se tornem de 2 a 7 de janeiro.
Portanto, qualquer transação que ocorra entre 2 e 8 de janeiro (sem incluir 8 de janeiro) retornará um resultado booleano de TRUE.
Exemplo 3: first_week_day
Visão geral
Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova guia.
O script de carregamento contém:
O mesmo conjunto de dados e cenário do primeiro exemplo.
A criação de um campo, in_week_to_date, que determina quais transações ocorreram na semana até 14 de janeiro de 2022.
A criação de um campo adicional, chamado weekday, usando a função weekday(). Ele é criado para mostrar qual dia da semana corresponde a cada data.
Neste exemplo, consideramos segunda-feira o primeiro dia da semana.
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
date
week_day
in_week_to_date
Tabela de resultados
date
week_day
in_week_to_date
2022-01-02 12:22:06
Dom
0
2022-01-05 01:02:30
Qua
0
2022-01-06 15:36:20
Qui
0
2022-01-08 10:58:35
Sáb
0
2022-01-09 08:53:32
Dom
0
2022-01-10 21:13:01
Seg
-1
2022-01-11 00:57:13
Ter
-1
2022-01-12 09:26:02
Qua
-1
2022-01-13 15:05:09
Qui
-1
2022-01-14 18:44:57
Sex
-1
2022-01-15 06:10:46
Sáb
0
2022-01-16 06:39:27
Dom
0
2022-01-17 10:44:16
Seg
0
2022-01-18 18:48:17
Ter
0
2022-01-26 04:36:03
Qua
0
2022-01-27 08:07:49
Qui
0
2022-01-28 12:24:29
Sex
0
2022-01-30 11:56:56
Dom
0
2022-01-30 14:40:19
Dom
0
2022-01-31 05:28:21
Seg
0
Usando 0 como argumento first_week_day na função inweektodate(), o argumento da função substitui a variável do sistema FirstWeekDay e define segunda-feira como o primeiro dia da semana.
Portanto, qualquer transação que ocorra entre 10 e 14 de janeiro retornará um resultado booleano de TRUE, enquanto as transações com datas fora desses limites retornarão um valor de FALSE.
Exemplo 4: Exemplo de objeto de gráfico
Visão geral
Abra o editor de carregamento de dados e adicione o script de carregamento abaixo em uma nova guia.
O script de carregamento contém o mesmo conjunto de dados e cenário do primeiro exemplo. No entanto, neste exemplo, o conjunto de dados inalterado é carregado no aplicativo. O cálculo que determina quais transações ocorreram na semana até 14 de janeiro de 2022 é criado como uma medida no objeto de gráfico.
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esse campo como uma dimensão: date.
Para calcular se as transações ocorreram na mesma semana até 14 de janeiro, crie a seguinte medida:
=inweektodate(date,'01/14/2022',0)
Para mostrar qual dia da semana corresponde a cada data, crie uma medida adicional:
=weekday(date)
Tabela de resultados
date
week_day
in_week_to_date
2022-01-02 12:22:06
Dom
0
2022-01-05 01:02:30
Qua
0
2022-01-06 15:36:20
Qui
0
2022-01-08 10:58:35
Sáb
0
2022-01-09 08:53:32
Dom
-1
2022-01-10 21:13:01
Seg
-1
2022-01-11 00:57:13
Ter
-1
2022-01-12 09:26:02
Qua
-1
2022-01-13 15:05:09
Qui
-1
2022-01-14 18:44:57
Sex
-1
2022-01-15 06:10:46
Sáb
0
2022-01-16 06:39:27
Dom
0
2022-01-17 10:44:16
Seg
0
2022-01-18 18:48:17
Ter
0
2022-01-26 04:36:03
Qua
0
2022-01-27 08:07:49
Qui
0
2022-01-28 12:24:29
Sex
0
2022-01-30 11:56:56
Dom
0
2022-01-30 14:40:19
Dom
0
2022-01-31 05:28:21
Seg
0
O campo in_week_to_date é criado como uma medida no objeto de gráfico usando a função inweektodate(). O primeiro argumento fornecido identifica qual campo está sendo avaliado. O segundo argumento é uma data codificada para 14 de janeiro, que é a base_date que identifica qual semana segmentar e que define o limite final desse segmento. Um period_no de 0 é o argumento final, o que significa que a função não está comparando semanas anteriores ou posteriores à semana segmentada.
A variável de sistema FirstWeekDay determina que as semanas começam em um domingo e terminam em um sábado. Portanto, janeiro seria dividido em semanas de acordo com o diagrama abaixo, com as datas entre 9 e 14 de janeiro fornecendo o período válido para o cálculo de inweekdodate():
Qualquer transação que ocorra entre 9 e 14 de janeiro retorna um resultado booleano de TRUE. As transações antes e depois das datas retornam um resultado booleano de FALSE.
Exemplo 5: Cenário
Visão geral
Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova guia.
O script de carregamento contém:
Um conjunto de dados que é carregado em uma tabela denominada Products.
Informações sobre o ID do produto, data de fabricação e preço de custo.
Foi identificado que, devido a um erro de equipamento, os produtos fabricados na semana de 12 de janeiro estavam com defeito. O problema foi resolvido em 13 de janeiro. O usuário final deseja um objeto de gráfico que mostre, por semana, o status que indica se os produtos fabricados estão "com defeito" ou "sem defeito", bem como o custo dos produtos fabricados naquela semana.
A função inweektodate() retorna um valor booleano ao avaliar as datas de fabricação de cada um dos produtos. Para os casos que retornam um valor booleano de TRUE, ela marca os produtos como 'Defective'. Para qualquer produto que retorne um valor de FALSE e, portanto, não tenha sido fabricado na semana até 12 de janeiro, ela marca os produtos como ‘Faultless’.
Esta página ajudou?
Se você encontrar algum problema com esta página ou seu conteúdo - um erro de digitação, uma etapa ausente ou um erro técnico - informe-nos como podemos melhorar!